2017-09-19 2 views
0

Die Integration von Salesforce Community mit Universal Google Analytics wurde gerade begonnen (Anfänger in beiden). Hinzufügen von GA-Integrationscode im Tag. Heruntergeladener GA-Debugger für Chrome. Browser: Chrome. Hier ist der Code im Tag:Google Analytics - Ereignistreffer funktionieren nicht nach 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> 

Später im Code, den wir Anrufe tätigen Ereignisse zu verfolgen. Nachdem ich „ga (function (Tracker) {“ Codeabschnitt diese Anrufe Ereignisse zu verfolgen, funktionieren nicht mehr (zur Arbeit) hinzugefügt haben.

Was oben? Vielen Dank mit dem Code falsch ist

Antwort

1

Wenn Sie die sendHitTask für den Tracker setzen, überschreiben Sie diese, dh Sie entfernen die normale Aufgabe, die Daten an Google Analytics sendet, und ersetzen sie durch Ihre eigenen Hits, die Sie verfolgen, wird nicht an GA gesendet.

Stattdessen, bevor Sie die sendHitTask setzen, müssen Sie die exi erhalten stechen Sie einen und führen Sie diese Funktion zuerst in Ihrer neuen sendHitTask Funktion aus.

Von documentation for adding to a task folgt ein Code, um dies zu tun. Bevor Sie Ihren tracker.set Anruf, müssen Sie hinzufügen:

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

Dann in Ihrer Funktion, die Sie sendHitTask sind zuweisen, werden Sie diese Funktion aufrufen müssen:

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

Diese Antwort ist korrekt, um "Ereignisse nicht gesendet" Problem zu lösen. Aber siehe auch nächste Antwort von Eike, die mir geholfen hat, userId richtig zu bekommen. –

1

Sie haben Ihre verkrüppelt sendHitTask, weil die Methode, die Sie zum Überschreiben angegeben haben, kein Senden ausführt - Sie haben es durch eine Funktion ersetzt, die etwas an die Konsole anmeldet und sonst nichts.

Wenn Sie sich die example in the documentation anschauen, sehen Sie, dass dort die ursprüngliche sendHitTask in einer Variablen gespeichert und innerhalb der benutzerdefinierten Funktion aufgerufen wurde.

Sie können das Objekt ga innerhalb der Aufgabe auch nicht verwenden. Sie greifen über das Modell, das an die Aufgabe übergeben wird, auf die Eigenschaften Ihres Verfolgers zu.

So würden Sie so etwas wie

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); 
    }); 
}); 

Ungeprüfte benötigen, damit es Zwicken brauchen könnte, aber im Grunde, dass es sein sollte.

Sie könnten auch die Verwendung von customTask verwenden, um benutzerdefiniertes Verhalten hinzuzufügen, obwohl es das gleiche Ergebnis liefert.

+0

Vielen Dank, Prev Antwort ist korrekt zu beheben "Ereignisse nicht gesendet" Problem. Aber vielen Dank für Ihre Antwort, es hat mir geholfen, userId richtig zu bekommen. Ich habe für beide gestimmt. –

Verwandte Themen