it-swarm.com.de

Ist es möglich, Google Analytics-Code in eine externe JS-Datei einzufügen?

var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

try 
{
    var pageTracker = _gat._getTracker("UA-XXXXXXX-1");
    pageTracker._trackPageview();
}
catch(err) {}

Wäre es möglich, dieses Skript aus einer externen JS-Datei aufzurufen? Ich wollte zu etwas wie:

<script type="text/javascript" src="googleanalytics.js" ></script>

und eine davon auf jede meiner HTML-Seiten setzen.
Der Code, den ich oben habe, befindet sich in googleanalytics.js
Googles Anweisungen lauteten, den Code auf jeder Seite einzufügen. Das Problem dabei ist, dass es schwieriger ist, den Tracking-Code zu ändern. (Wir verwenden unterschiedliche Tracking-Codes für unsere DEV- und PROD-Seiten.).
Ich habe es ausprobiert und es scheint nicht zu funktionieren.
Stimmt etwas damit nicht? Oder gibt es noch etwas, das das Problem verursacht?

Wichtige FYI Bitte beachten Sie, dass wir IE6 und 8-Browser verwenden (ja, ich weiß, keine Notwendigkeit, mir zu sagen)

28
Nikko

Ja das ist möglich Wenn es nicht funktioniert, ist noch etwas los.

Nur ein Gedanke, Google Analytics ist in der Regel etwa einen Tag hinter dem Berichtswesen zurück. Wenn Sie Änderungen vornehmen, dauert es einige Zeit, bis Sie wissen, dass es funktioniert. Was ich gerne mache, ist eine Seite zu besuchen, die nicht sehr oft besucht wird, um mir zu versichern, dass ich mein Tracking richtig eingerichtet habe.

Sie können auch versuchen, den Link zu einem absoluten Link in Ihrem <script -Tag zu machen. Möglicherweise wird der Analysecode an der falschen Stelle gesucht.

14
Jason

Können Sie Ihre serverseitige Sprache nicht verwenden, um den Code unten auf jeder Seite auszugeben? Habe eine Funktion wie output_ga () und rufe das auf. Auf diese Weise können Sie es an einem Ort ändern.

4
Draemon

Ich bin auf diesen Beitrag gestoßen, als ich versucht habe, ein ähnliches Problem zu lösen. Nachdem ich weiter gesucht habe, bin ich auf einen anderen Beitrag gestoßen, der für mich funktioniert hat:

Verwenden von asynchronem Google Analytics-Code aus einer externen JS-Datei

Ich musste das var _gaq außerhalb der Funktion verschieben, in der es sich befand, damit es global wurde.

Hoffe das hilft!

3
Airn5475

Dies funktioniert, wenn Sie das Skript auf die gleiche Weise in zwei Skripts unterteilen, wie Google Analytics das herkömmliche Skript in zwei Skript-Tags unterteilt hat.

1
Mattis Kopstad

ich habe einen einfachen Weg, dies zu tun ... Da analytische js asynchron ist, wird es kein Problem geben ...

füge den folgenden Code in jede js-Datei ein (Hinweis: Der verwendete Code ist neuer Analysecode, der von Google Analytics bereitgestellt wird.)

var imported = document.createElement('script');
imported.src = 'https://www.googletagmanager.com/gtag/js?id=UA-12xxxxxxx-1';
document.head.appendChild(imported);


window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.Push(arguments);}
gtag('js', new Date());

gtag('config', 'UA-12xxxxxxx-1');
1

Wrap Google Code in Funktion und auf jeder Seite ausführen;)

0
usoban

@ Nikko

Ein möglicher Grund ist, dass das Konto GA mit der alten Analyse erstellt wurde. Sie müssen also den herkömmlichen Analysecode ga.js (_gaq.Push) verwenden. Ich habe eine Inkompatibilität bei der Verwendung der neuen Datei "analytics.js" mit dem traditionellen Konto "GA" auf der Website "GA" festgestellt. Die Treffer werden nicht angezeigt, daher musste ich die traditionelle ga.js verwenden.

Sie können auch eine Rückruffunktion festlegen, um sicherzustellen, dass die Treffer erfolgreich gesendet werden, wie unten dargestellt:

//traditional way
_gaq.Push(['_set', 'hitCallback', function() {
  console.log("%c ga.js finished sending pageview data to analytics %s ", "color:black; background: pink", pageviewUrl);
}]);

//new analytics way
ga('send', 'pageview', {
            'page': pageviewUrl,
            'hitCallback': function() {
                console.log("%c analytics.js done sending data. pageview url = %s ", "color: black, background: pink", pageviewUrl);
            }
        });

dabei ist pageviewUrl = die URL der Site

Hoffentlich hilft das!

0
Carmela

Google Analytics dynamisch hochladen:

function loadGoogleAnalytics(){
    var ga = document.createElement('script'); 
    ga.type = 'text/javascript'; 
    ga.async = true;
    ga.src = 'https://www.googletagmanager.com/gtag/js?id=UA-XXXXXX-XX';

    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(ga, s);
}

loadGoogleAnalytics(); //Create the script  

window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.Push(arguments);}
gtag('js', new Date());

gtag('config', 'UA-XXXXXX-XX');

Vergessen Sie nicht, XXXXXX-XX durch Ihre Konto-ID zu ersetzen.

0
Keinan Goichman