Google Analytics API -.NET経由のフィルタリング - とても近い!
-
30-09-2019 - |
質問
こんにちは! StackoverflowとWebを約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エンコードを必要としない非常にシンプルなフィルターを1つ試しました。
filters=ga:city!@Minsk
私が得るのは、気が狂うほど曖昧な「400バッドリクエスト」エラーだけです。 Equals Operatorを使用して同じ結果が得られます。
DataQuery query = new DataQuery(URL);
...
query.Filters = "ga:city==Minsk"
等しいサインを%3Dとしてエンコードする場合。これは、エラーメッセージに従って、「GA:City%253d%253dminsk」に翻訳されます。私は単一引用の「Minsk」を試して、それを二重に引用しました。運はありません。
私は困惑しています。何か案は?ありがとう!
解決
それを見つけた。フィルターは、実際にクエリで表現されている寸法とメトリックと「互換性がある」必要があることがわかります。 GAのドロップ:訪問者は、必要なフィルターのほとんどを適用することができましたが、GA:PagePathとGA:キャンペーンの組み合わせはGA:訪問者では許可されていません...何らかの理由で。詳細は次のとおりですが、注意してください。
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"
// ...
}
);
これが誰かを助けることを願っています!