web-dev-qa-db-fra.com

comment obtenir l'ID client Google analytics

Lorsque vous créez une nouvelle instance d'analytics.js en exécutant

ga('create', 'UA-XXXXXXX-Y', {'cookieDomain': 'none'});

GA crée un identifiant client unique. Je veux récupérer cet identifiant et l'utiliser à mes propres fins, mais je ne peux trouver que setter pour ce paramètre mais je ne trouve aucune méthode getter pour l'obtenir.

GA l'envoie plus tard dans un paramètre appelé &cid=123123.232323

Est-ce que quelqu'un sait comment l'obtenir?

30
user2979757

Google en a documentation sur l'obtention de l'ID client .

Ressemble à ça:

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

Je l'ai déjà utilisé auparavant:

ga.getAll()[0].get('clientId');

[~ # ~] edit [~ # ~] : Si vous avez plus d'un tracker sur la page, il peut être probable qu'à l'index 0 il n'est pas celle que vous voulez, donc une fonction alternative devrait être la suivante:

function() {
  try {
    var trackers = ga.getAll();
    var i, len;
    for (i = 0, len = trackers.length; i < len; i += 1) {
      if (trackers[i].get('trackingId') === "ID-PROPERTY") {
        return trackers[i].get('clientId');
      }
    }
  } catch(e) {}  
  return 'false';
}

où ID-PROPERTY est l'ID de votre propriété (c'est-à-dire UA-XXXXX-XX).

68
Blexy

Créez d'abord l'objet Google Analytics ga pour créer un objet tracker, en lui passant une fonction "Ready callback", puis utilisez le tracker pour appeler Autres méthodes.

La file d'attente de commandes ga () fournit une interface pour faire presque tout ce que vous devez faire avec la bibliothèque analytics.js.

"function (tracker)" est une fonction de rappel à invoquer lorsque la bibliothèque d'analyse est entièrement chargée et prête à interagir avec. La fonction est invoquée avec l'objet de suivi par défaut comme premier argument. Si aucun outil de suivi par défaut n'a été créé, le premier argument est/retournera non défini.

Remarque: lorsque la fonction de rappel est invoquée, toutes les méthodes d'objet ga sont disponibles pour utilisation. Y compris celui que vous voulez tracker.get ('clientId')

Remplacez A-XXXXX-Y dans le code ci-dessous par votre code UA de Google Analytics.

// Queues a tracker object for creation.
ga('create', 'UA-XXXXX-Y', 'auto');

// Once the tracker has been created, log the
// client ID to the console.
ga(function(tracker) {
  console.log(tracker.get('clientId'));
  /* Your other code here */
});

Alternativement pour les lignes 1 et 2, utilisez le code ci-dessous pour créer un tracker nommé.

// Queues a named tracker object for creation.
ga('create', 'UA-XXXXX-Y', 'auto', 'myTracker');
6
Craig Gjerdingen

Bien que l'auteur ait explicitement déclaré qu'il utilise Javascript, d'autres (comme moi) peuvent rechercher un moyen d'obtenir ces informations côté serveur, comme PHP.

J'ai trouvé que vous pouvez facilement vérifier le cookie _ga, qui ressemble à:

_ga=GA1.3.475128143.1522318100

Dans l'exemple ci-dessus, l'ID utilisateur est "475128143.1522318100".

Donc, en PHP je peux le récupérer rapidement comme:

$gaUserId = preg_replace("/^.+\.(.+?\..+?)$/", "\\1", @$_COOKIE['_ga']);

Vous pouvez également utiliser Javascript pour récupérer le cookie sur une seule ligne, sans utiliser les fonctions ga ():

var gaUserId = document.cookie.match(/_ga=(.+?);/)[1].split('.').slice(-2).join(".")

Cela fonctionne pour moi.

4
Alexandre T.