2017-09-19 3 views
0

L'intégration de Salesforce Community avec Universal Google Analytics vient tout juste de commencer (débutant dans les deux cas). Ajout d'un code d'intégration GA dans l'étiquette. Débogueur GA téléchargé pour Chrome. Navigateur: Chrome. Voici le code dans le tag:Google analytics - les hits d'événements ne fonctionnent pas après sendHitTask

<script> 
    (function(i,s,o,g,r,a,m) 
    {i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q|| 
    []).push(arguments)},i[r].l=1*new Date 
();a=s.createElement(o),m=s.getElementsByTagName(o) 
    [0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)}) 
    (window,document,'script','https://www.google- 
    analytics.com/analytics_debug.js','ga'); 

    window.ga_debug = {trace: true}; 
    ga('create', 'UA-xxxxxxxxx-x', 'auto');    

    ga('send', 'pageview');  

    ga(function(tracker) { 

     tracker.set('sendHitTask', function(model) { 

      var hitPayload = model.get ('hitPayload'); 

      console.log ('models payload: ' + hitPayload); 

      // need this section to get user id value to send to dimension 
      //ga('set', 'dimension3', tracker.get('userId'));       
    }); 
    });  

</script> 

Plus tard dans le code que nous faire des appels à suivre les événements. Après que j'ai ajouté « ga (function (tracker) { » section du code ces appels à suivre les événements ne fonctionnent plus (utilisé pour travailler).

Quel est le problème avec le code ci-dessus ? Merci

Répondre

1

Lorsque vous définissez le sendHitTask pour le suivi, vous le remplacez, c'est-à-dire que vous supprimez la tâche normale qui envoie des données à Google Analytics et les remplace par les vôtres. les hits que vous suivez ne seront pas envoyés à GA

Au lieu de cela, avant de définir le sendHitTask, vous devez obtenir l'exi. piquez-en un et exécutez cette fonction en premier dans votre nouvelle fonction sendHitTask.

De documentation for adding to a task, du code pour faire ceci suit. Avant tracker.set appel, vous devez ajouter:

// Grab a reference to the default sendHitTask function. 
var originalSendHitTask = tracker.get('sendHitTask'); 

Ensuite, dans votre fonction que vous assignant à sendHitTask, vous devrez appeler cette fonction:

// Send the normal request to Google Analytics 
originalSendHitTask(model); 
+0

Cette réponse est correcte pour résoudre le problème "événements non envoyés". Mais s'il vous plaît voir aussi la réponse suivante par Eike, cela m'a aidé à obtenir userId correctement. –

1

Vous avez estropié votre sendHitTask, car la méthode que vous avez fournie pour le remplacer ne fait aucun envoi - vous l'avez remplacé par une fonction qui enregistre quelque chose sur la console et rien d'autre.

Si vous regardez le example in the documentation, vous voyez qu'ils ont stocké l'original sendHitTask dans une variable et appelé dans la fonction personnalisée.

De même, vous ne pouvez pas utiliser l'objet ga dans la tâche, vous accédez aux propriétés de votre outil de suivi via le modèle transmis à la tâche.

Donc, vous avez besoin quelque chose comme

ga(function(tracker) { 
    // Grab a reference to the default sendHitTask function. 
    var originalSendHitTask = tracker.get('sendHitTask'); 

    tracker.set('sendHitTask', function(model) { 
    model.set('dimension3',model.get('userId')); 
    originalSendHitTask(model); 
    }); 
}); 

Untested il pourrait avoir besoin de peaufinage, mais au fond, cela devrait l'être.

Vous pouvez également utiliser la customTask pour ajouter un comportement personnalisé, bien que le résultat soit identique.

+0

Merci beaucoup, La réponse précédente est correcte pour résoudre le problème "événements non envoyés". Mais Merci beaucoup pour votre réponse aussi, cela m'a aidé à obtenir userId correctement. J'ai voté pour les deux. –