2016-03-24 13 views
0

Gibt es eine Möglichkeit, Google Analytics client_id über JavaScript an Piwik zu senden? Eigentlich kann ich die Google-Client-ID mit dem folgenden Code-Schnipsel greifen wie in der offiziellen Dokumentation beschrieben:Senden Sie Google Analytics client_id an Piwik

ga(function(tracker) { 
     var clientId = tracker.get('clientId'); 
    }); 

ich das Problem glauben würde, dass ga.js Google und Piwik Tracking-Code ausgeführt werden asynchron und ich bin nicht in der Lage um die client_id an Piwik zu senden. Ich habe in Piwik eine benutzerdefinierte Datei erstellt und den entsprechenden Code zu meinem Tracking-Skript hinzugefügt, aber Piwik sagt, dass der Wert nicht definiert ist. Ich habe versucht, statische IDs (z. B. test123) zu senden, und es funktioniert gut.

Ich habe versucht, Piwik Tracking-Code nach Seite geladen mit window.onload Funktion, aber es hat nicht funktioniert. Ich habe auch versucht zu warten, bis clientId Variable generiert wird, aber es hat auch nicht funktioniert. Ich habe versucht, die Async-Option für beide Tracking-Skripte ohne Glück zu drehen.

Ich habe chrome's timeline debug, um zu sehen, wann die einzelnen Tracking Codes geladen wurden, aber selbst wenn Piwiks js Code später geladen wurde, wurde die client_id nicht an meinen Server übergeben.

Eine Idee, wie kann ich diese Informationen an meinen eigenen Server senden, um es in Piwik zu verarbeiten? Wenn jemand eine andere Debug-Möglichkeit erwähnen kann, die mir helfen kann, das Problem zu identifizieren, wäre das auch großartig.

+0

Sie können den Ratschlag von Google ignorieren, nicht direkt auf den Cookie zuzugreifen und ihn über JS in Ihrer piwik-Funktion zu lesen, bevor Sie die Daten senden. –

+0

@EikePierstorff Danke für deinen Kommentar! Gerade endete mit der gleichen Schlussfolgerung. Bereits an der Lösung arbeiten. Werde es hier posten, sobald ich damit fertig bin. – g0m3z

Antwort

0

Wie von EikePierstorff erwähnt, wäre eine bessere Lösung, Googles client_id aus dem gespeicherten Cookie zu lesen. Sie können den Inhalt des Google Analytics-Cookies abrufen, indem Sie Folgendes eingeben:

document.cookie.valueOf('_ga') 

Es enthält den Inhalt des Cookies. Jedes Element im Cookie ist durch ein Semikolon getrennt (;). Ich habe den folgenden Code die client_id zu lesen:

function getClientId(){ 
     var cookie_val_array = document.cookie.valueOf('_ga').split(';'); 
      for (i=0; i < cookie_val_array.length; i++){ 
      if(cookie_val_array[i].indexOf('_ga=') >= 0){ 
       client_id = cookie_val_array[i].split('.')[2] + '.' + cookie_val_array[i].split('.')[3]; 
      } 
     } 
     return client_id; 
    } 

Und ich habe den folgenden Code, um es zu Piwik passieren:

_paq.push(['setCustomDimension', customDimensionId = 1, customDimensionValue = getClientId()]); 

Hinweis: Sie sollten eine benutzerdefinierte Dimension in Piwik creted haben und Ihre Benutzerdefinierte Dimension kann eine andere ID haben.

Nur wenige Dinge, die Ich mag würde markieren:

  • Wenn dies das erste Mal ist, dass Sie laufen Google Analytics-Code-Snippet auf Ihre Seite und das Cookie nicht erzeugt noch dieser Code ein geben Error. Also müssen Sie damit umgehen, wenn Sie wollen.

  • Google kann das Format und den Inhalt seines Cookies ändern, also überprüfen Sie bitte den Inhalt des Cookies, bevor Sie mit dem Lesen der Werte beginnen.

Verwandte Themen