下午好!我已经在 StackOverflow 和网络上搜索了大约 24 小时,但还没有找到答案。我希望我遗漏了一些简单的东西,有经验的 API 用户可以为我指出。
我正在使用其 .NET 库查询 Google Analytics API。此请求有效:
https://www.google.com/analytics/feeds/data?start-index=1&max-results=500&dimensions=ga:date&end-date=2011-01-06&ids=ga:________&metrics=ga:visitors,ga:visits&start-date=2011-01-06
...但我想过滤结果。我尝试过一个非常简单的过滤器,不需要 URL 编码:
filters=ga:city!@Minsk
我得到的只是令人抓狂的模糊“400 bad request”错误。我使用等于运算符得到相同的结果:
DataQuery query = new DataQuery(URL);
...
query.Filters = "ga:city==Minsk"
如果我将等号编码为 %3D,则同上。根据错误消息,这会被翻译为“ga:city%253D%253DMinsk”。我尝试过单引号“Minsk”,并双引号它;运气不好。
我被难住了。有任何想法吗?谢谢!
最佳答案
找到了。事实证明,过滤器必须与查询中实际表达的维度和指标“兼容”。删除 ga:visitors 允许我应用我需要的大部分过滤器,尽管出于某种原因 ga:visits 不允许 ga:pagePath 和 ga:campaign 的组合...。这是详细信息,但请注意:您最终可能会斗鸡眼。
http://code.google.com/apis/analytics/docs/gdata/gdataReferenceValidCombos.html
哦,使用 .NET 库,您不需要在过滤器中对等号或空格进行编码。我的过滤器结构如下:
private static readonly string Filter = string.Join
(
";", new string[]
{
"ga:city!=Simi Valley", // URL encoding is handled for you
"ga:pagePath!@/splash",
"ga:pagePath!@static_test",
"ga:networkLocation!@spring",
"ga:networkLocation!@equinix asia pacific pte ltd"
// ...
}
);
希望这对某人有帮助!
关于.net - Google Analytics API - 通过 .NET 过滤 - 非常接近!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4618446/