Google Analytics API - Фильтрация через .NET - так близко! - PullRequest
2 голосов
/ 06 января 2011

Добрый день!Я искал в StackOverflow и в Интернете около 24 часов и пока не нашел ответа.Я надеюсь, что мне не хватает чего-то простого, на что может указать более опытный пользователь API.

Я запрашиваю API Google Analytics, используя их библиотеку .NET.Этот запрос работает:

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 неверных запросов".Я получаю тот же результат, используя оператор равенства:

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

То же самое, если кодировать знаки равенства как% 3D.Это переводится в "ga: city% 253D% 253DMinsk", согласно сообщению об ошибке.Я пробовал заключать в кавычки "Минск" и ставить двойные кавычки;не повезло.

Я в тупике.Есть идеи?Спасибо!

1 Ответ

3 голосов
/ 13 января 2011

Нашел это.Оказывается, что фильтры должны быть «совместимы» с измерениями и показателями, фактически выраженными в запросе.Отказ от 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"
    // ...
    }
  );

Надеюсь, это кому-нибудь поможет!

...