IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

APIs Google Discussion :

Récupérer le clientId de Universal Analytics


Sujet :

APIs Google

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Récupérer le clientId de Universal Analytics
    Bonjour à tous !

    Voilà maintenant pas mal de temps que je me creuse la tête et que je parcoure le web en quête de ma réponse, alors peut-être allez-vous pouvoir m'aider !

    Voilà mon problème :
    J'utilise Google Universal Analytics, et je souhaite récupérer le "client id" de mes visiteurs pour le ré-utiliser dans l'un de mes scripts chargé par la suite.
    A l'URL suivante, https://developers.google.com/analyt...ns#getClientId, on peut voir que Google nous fournit ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ga(function(tracker) {
      var clientId = tracker.get('clientId');
    });
    Comment récupérer "clientId" en dehors de "ga" ?

    Si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ga(function(tracker) {
      var clientId = tracker.get('clientId');
      console.log(clientId);
    });
    Pas de problème, le clientId s'affiche bien.

    Par contre, si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ga(function(tracker) {
      var clientId = tracker.get('clientId');
      console.log(clientId);
    });
    console.log(clientId);
    La deuxième tentative d'affichage ne fonctionne pas ...

    Si vous avez une idée de comment récupérer cette valeur par la suite ... merci !

  2. #2
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 30
    Points : 56
    Points
    56
    Par défaut
    Et si tu déclares ta variable en tant que variable globale avant ton appel ?

    Sinon tu peux aussi appelé ta couche métier dans la fonction anonyme que tu déclares.
    Il n'y a pas de problème ; il n'y a que des solutions. L'esprit de l'homme invente ensuite le problème.

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 048
    Points : 44 562
    Points
    44 562

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Tu te doutes bien que j'ai déjà testé, et cela ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var clientId = 'toto';
    ga(function(tracker) {
      clientId = tracker.get('clientId');
      console.log('test 1 : '+clientId);
    });
    console.log('test 2 : '+clientId);
    Résultat :
    test 1 : 123456.123456 (-> exemple de clientId)
    test 2 : toto

    Idem en précisant "window.clientId = ..."

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Floww14 Voir le message
    Et si tu déclares ta variable en tant que variable globale avant ton appel ?

    Sinon tu peux aussi appelé ta couche métier dans la fonction anonyme que tu déclares.
    Peux-tu développer stp ?

    Déclarer la variable en tant que variable globale ne change rien, puisque la fonction n'est pas directement à la suite de la déclaration de ma variable mais au sein de "ga" :/

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 30
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par Genstor Voir le message
    Résultat :
    test 1 : 123456.123456 (-> exemple de clientId)
    test 2 : toto

    Idem en précisant "window.clientId = ..."
    L'exécution de la fonction anonyme est surement asynchrone, du coup ton print affiche la valeur avant modification (hypothèse vérifiable avec un sleep avant l'affichage).

    Pourquoi as-tu besoin de sortir cette variable ? Tu dois lancer un traitement avec cette variable j'imagine ? Pourquoi ne pas appeler directement ta fonction en y passant ton clientId ?
    Il n'y a pas de problème ; il n'y a que des solutions. L'esprit de l'homme invente ensuite le problème.

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 048
    Points : 44 562
    Points
    44 562
    Par défaut
    Comme l'a indiqué Floww14, la fonction est asynchrone, ce qui signifie que tu ne peux pas disposer du résultat immédiatement après avoir lancé la fonction.

    Un classique AJAX : utiliser les données au bon moment !

    en gros il te faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ga(function(tracker) {
      var clientId = tracker.get('clientId');
      fonction_a_executer_au_retour( clientId);
    });

Discussions similaires

  1. [Python 2.X] Comment accéder voire récupérer les données de google analytics ?
    Par MichaelREMY dans le forum Réseau/Web
    Réponses: 0
    Dernier message: 25/06/2015, 09h03
  2. Récupérer statistiques Google Analytics Addthis
    Par spot08 dans le forum APIs Google
    Réponses: 1
    Dernier message: 21/06/2009, 23h01
  3. Récupérer 10 nb différents avec un calcul aléatoire
    Par BXDSPORT dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2002, 02h35
  4. Réponses: 11
    Dernier message: 23/07/2002, 14h33
  5. Comment récupérer une adresse MAC ?
    Par psau dans le forum Développement
    Réponses: 7
    Dernier message: 19/07/2002, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo