API de Google Analytics - Filtrado a través de NET - tan cerca!
-
30-09-2019 - |
Pregunta
Buenas tardes! He estado buscando en la web StackOverflow y durante unas 24 horas ahora, y no he encontrado una respuesta aún. Espero que me falta algo simple que un usuario más experimentado API puede señalar para mí.
Estoy consultar la API de Google Analytics mediante su biblioteca .NET. Esta solicitud funciona:
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
... pero me gustaría para filtrar los resultados. He intentado un filtro muy sencillo simple que no requiere codificación URL:
filters=ga:city!@Minsk
Todo lo que consigo es el enloquecedoramente vago de error "400 Bad Request". Me sale el mismo resultado utilizando el operador de igualdad:
DataQuery query = new DataQuery(URL);
...
query.Filters = "ga:city==Minsk"
Lo mismo ocurre si codificar los signos de igualdad como% 3D. Esto se traduce en "ga: ciudad% 253D% 253DMinsk", de acuerdo con el mensaje de error. He tratado de un solo citar "Minsk", y haga doble citando a ella; sin suerte.
Estoy perplejo. ¿Algunas ideas? Gracias!
Solución
encontrado. Resulta que los filtros tienen que ser "compatible" con las dimensiones y las métricas de hecho expresados ??en una consulta. Dejar caer ga: visitantes me permitió aplicar la mayoría de los filtros que necesitaba, aunque la combinación de GA: pagePath y ga: campaña no se permite con ga: visitas ... por alguna razón. En detalle, pero debe saber que:. Puede terminar bizca
http://code.google.com/apis/analytics/ docs / gdata / gdataReferenceValidCombos.html
Ah, y el uso de la biblioteca .NET que no es necesario para codificar señales es igual o espacios en los filtros. Estructuré mis filtros de la siguiente manera:
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"
// ...
}
);
Espero que esto ayude a alguien!