2011-01-06 8 views
2

おはよう!私はStackOverflowとWebを約24時間検索していますが、まだ答えは見つかりませんでした。私は、経験豊富なAPIユーザーが私に指摘してくれる簡単なものがないことを願っています。GoogleアナリティクスAPI - .NET経由のフィルタリング - だからこそ!

.NETライブラリを使用してGoogleアナリティクス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 

...結果をフィルタリングしたいと思います。私が得るすべてはmaddeningly漠然と「400不正な要求」エラーで

filters=ga:[email protected] 

:私は、URLエンコードを必要としない、単一の非常に単純なフィルタを試してみました。

DataQuery query = new DataQuery(URL); 
... 
query.Filters = "ga:city==Minsk" 

等号を%3Dとしてエンコードすると、同じ結果が得られます。これは、エラーメッセージに従って、 "ga:city%253D%253DMinsk"に変換されます。私は一重引用符 "Minsk"を試して、それを二重引用符で囲みました。運がない。

私は困惑。何か案は?ありがとう!

答えて

3

見つけました。フィルタは、クエリで実際に表現されているディメンションとメトリックと「互換性がある」必要があります。 Gaを落とす:訪問者は私が必要としたフィルタのほとんどを適用することができましたが、ga:pagePathとga:campaignの組み合わせは何らかの理由でga:visits ...では許可されません。ここに細部はありますが、警告を受けてください:あなたはクロスアイになるかもしれません。

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:[email protected]/splash", 
    "ga:[email protected]_test", 
    "ga:[email protected]", 
    "ga:[email protected] asia pacific pte ltd" 
    // ... 
    } 
); 

私のフィルタは次のように構成されています。

関連する問題