2016-04-12 2 views
0

I Node.js-Code haben, die ein bisschen wie folgt aussieht:Wie wird nach einer sehr großen Liste von URLs mit dem Google Analytics API gefiltert?

analytics.data.ga.get({ 
    metrics: 'ga:pageviews,ga:users', 
    dimensions: 'ga:date', 
    filters: urlPaths.map(path => `ga:pagePath==${path}`).join(','), 
    'start-date': '30daysAgo', 
    'end-date': 'yesterday', 
    // sort: '-ga:date', 
    'max-results': 30, 
}, (err, response) => { 
    if (err) return next(err) 
    res.json(response) 
}) 

Wo urlPaths kann ein potenziell ein sehr großes Array sein.

Um etwas Kontext zu geben, habe ich eine Website, wo jeder Benutzer Bilder hochladen kann, die am Ende ihre eigene eindeutige URL (z. B. /file/:some_unique_hash) haben und ich meine Analytics-Daten pro Benutzer filtern könnte. Die einzige Möglichkeit, dies jetzt zu tun, besteht darin, die Liste der von einem Nutzer hochgeladenen Datei herauszunehmen und eine potenziell sehr große URL-Liste an den Filterparameter der Google Analytics-API zu übergeben.

Es wäre viel einfacher, wenn jeder URL den Benutzernamen des Benutzers vorangestellt wäre (z. B. /:some_username/:some_file), da dies mir erlauben würde, einfach eine Regex an den Filter zu übergeben. Aber ich glaube leider nicht, dass ich die URL-Struktur ändern kann.

Ich glaube, eine Lösung bestünde darin, zusätzliche Daten an GA weiterzuleiten, indem sie mit ihrem clientseitigen Skript bestimmte Seitenansichten als "zugehörig" zu einem Benutzer "kennzeichnen" und diese benutzerdefinierte Variable dann verwenden, um GA-Daten herauszufiltern. Ist das möglich? Weitere Vorschläge zur Lösung dieses Problems?

+0

"urlPaths kann möglicherweise ein sehr großes Array sein" nicht wirklich, weil Sie darauf beschränkt sind, wie lange ein String Filter dauert Ich denke, die maximale Länge, wenn Speicher dient 2000. – DaImTo

+2

Ich denke Die Option wäre, beim Einfügen der Daten in Google Analytics eine benutzerdefinierte Dimension hinzuzufügen und dann die benutzerdefinierte Dimension zu filtern. – DaImTo

+0

"nicht wirklich, weil Sie darauf beschränkt sind, wie lange ein String-Filter dauern wird" Ja, das ist das Problem ... "fügen Sie eine benutzerdefinierte Dimension hinzu, wenn Sie die Daten in Google Analytics einfügen", was meine vorgeschlagene Lösung war. Haben Sie einen Beispielcode oder eine Referenz für die Dokumentation? –

Antwort

1

Ich löste dieses Problem, indem ich in Google Analytics eine benutzerdefinierte Dimension "Author" erstellte und diese Dimension für alle meine /file/... Seitenansichten festlegte. Ich kann dann beim Abrufen von Daten mithilfe der Google Analytics-Core-API nach der Dimension "Verfasser" filtern. Hier ist ein Link, der geholfen hat: http://www.vsellis.com/add-author-tracking-google-analytics-wordpress-website/

+0

Nützlicher Tipp, aber dies ist eine Möglichkeit, die Treffer über JS zu beschriften, nicht um eine Liste von URLs hochzuladen. – MichaelD

Verwandte Themen