API Google Analytics - Фильтрация через .NET - так близко!

StackOverflow https://stackoverflow.com/questions/4618446

  •  30-09-2019
  •  | 
  •  

Вопрос

Добрый день! Я искал 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. Это переводится в «ГА: City% 253D% 253Dminsk», в соответствии с сообщением об ошибке. Я пробовал одну цитирующую "Минск" и дважды цитирую; неудачно.

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

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top