web-dev-qa-db-de.com

Wie lautet die Kunden-ID, wenn Tracking-Daten über das Messprotokoll an Google Analytics gesendet werden?

Ich möchte das neue Messprotokoll von Google zum Senden von Tracking-Ereignissen von meinem Server anstelle von JavaScript verwenden.

Auf dieser Seite wird angegeben, dass die Client-ID erforderlich ist: https://developers.google.com/analytics/devguides/collection/protocol/v1/devguide#required

Und diese Seite ist optional: https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#visitor

Außerdem ist das in diesen Dokumenten definierte Format unterschiedlich - die erste Seite gibt eine Ganzzahl als Beispiel an und sagt nur, dass es sich um einen "eindeutigen Wert" handelt, während der zweite Link angibt, dass es sich um eine UUID handeln soll.

Wie kann Google den Besucher mit einer vorhandenen Besuchersitzung verknüpfen, wenn ich Benutzer-IDs oder generierte UUIDs in meinem Back-End sende? Es scheint, als müsste ich den internen Verweis von GA auf einen vorhandenen Benutzer abrufen.

Jede Hilfe wird gebeten - danke!

55
Alan Illing

Integer oder UUID

Das cid entspricht dem zweiten Wert im Cookie _utma, Wenn Sie das Javascript-Tracking verwenden. Bei js tracking handelt es sich um eine zufällige Ganzzahl (generiert von Math.round(2147483647 * Math.random())). Es wird jedoch als Zeichenfolge gespeichert und gesendet. Sie können also beide Formate (Ganzzahl oder UUID) verwenden.

Erforderlich/Optional

Bei der js-Verfolgung wird eine mit einer fehlenden Benutzer-ID gesendete Anfrage von Analytics-Servern ignoriert. Nehmen wir also an, dass es erforderlich ist.

Webbesucher mit Messprotokollaktionen verknüpfen

Wenn Sie Ihren Back-End-Benutzer mit einem Besucher verknüpfen möchten, der zuvor mit Analytics-Javascript ga.js Verfolgt wurde, können Sie den Wert cid aus dem Cookie _utma Abrufen. Aber ich empfehle es nicht. Bei jeder Änderung (Änderung des Terminals oder Browsers, Bereinigung von Cookies usw.) verlieren Sie die Verbindung zu den vorherigen Aktionen Ihres Kunden.

pdate

Das analytics.js War nicht vorhanden, als die Frage gestellt wurde. cid ist jetzt im Cookie gespeichert _ga. Sie können es in Javascript bekommen mit:

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

Ab diesem Zeitpunkt erhalten Sie, wenn Sie die clientId wie im obigen Code vom Tracker erhalten, keine UUID, sondern zwei zufällige 32-Bit-Ganzzahlen im Format "X.Y". Diese Implementierung kann sich in Zukunft auf die UUID ändern.

Oder setzen Sie es mit Ihrem eigenen Wert (wie eine vom Backend generierte UUID):

ga('create', 'UA-XXXXX-Y', {'clientId': 'your_client_id'});
53
greg

In Rails:

  def save_google_analytics_client_id
    if current_user && cookies["_ga"]
      client_id = cookies["_ga"].split(".").last(2).join(".")
      if current_user.google_analytics_client_id != client_id
        current_user.google_analytics_client_id = client_id
        current_user.save
      end
    end
  end
6
Jason

Ich verwende Node mit Express- und Universal-Analytics-Modul und habe mich dafür entschieden, die im _ga-Cookie eingebettete CID zu verwenden, anstatt meine eigene CID-Serverseite zu generieren.

meine server.js sieht so aus ...

app.use(function(req, res, next) {
  if(req.session && (!req.session.cid) && req.cookies._ga){
    //Use the cid already embedded in the _ga cookie and save to session so I can access from socket routes
    var gaSplit = req.cookies._ga.split('.');
    req.session.cid = gaSplit[2] + "." + gaSplit[3];
  };
  next();
});  

Dann später kann ich das tun ..

ua = require('universal-analytics')
var visitor = ua('UAXXX', req.session.cid)

HTH

3