Google Analytics API - Filtrage via .NET - So Close!
-
30-09-2019 - |
Question
Bonjour! J'ai cherché StackOverflow et le web pendant environ 24 heures, et je ne l'ai pas trouvé une réponse encore. J'espère que je manque quelque chose de simple qu'un utilisateur API plus expérimenté peut signaler pour moi.
Je l'API Google interrogation Analytics à l'aide de leur bibliothèque .NET. Cette demande fonctionne:
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
... mais je voudrais filtrer les résultats. J'ai essayé un seul filtre très simple qui ne nécessite pas l'encodage URL:
filters=ga:city!@Minsk
Tout ce que je get est l'erreur exaspérante vague « 400 mauvaise demande ». Je reçois le même résultat en utilisant l'opérateur égal:
DataQuery query = new DataQuery(URL);
...
query.Filters = "ga:city==Minsk"
Même chose si j'encoder les signes égal en% 3D. Cela se traduit en « ga: ville% 253D% 253DMinsk », selon le message d'erreur. J'ai essayé une seule citation « Minsk », et double citant; pas de chance.
Je suis perplexe. Des idées? Merci!
La solution
trouvé. Il se avère que les filtres doivent être « compatibles » avec les dimensions et les mesures effectivement exprimées dans une requête. Dropping ga: les visiteurs m'a permis d'appliquer la plupart des filtres dont je avais besoin, bien que la combinaison de ga: pagePath et ga: campagne n'est pas permis avec ga: visites ... pour une raison quelconque. Voici les détails, mais attention:. Vous pouvez finir par loucher
http://code.google.com/apis/analytics/ docs / gdata / gdataReferenceValidCombos.html
Oh, et en utilisant la bibliothèque .NET vous ne avez pas besoin de coder le signe égal ou espaces dans vos filtres. J'ai structuré mes filtres comme ceci:
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"
// ...
}
);
Espérons que cela aide quelqu'un!