Trackingprobleme mit Google Analytics

Hematek-Solutions

Gut bekanntes Mitglied
26. März 2012
188
22
Paderborn
Firma
Hematek GmbH
Hallo zusammen,

um auf die ursprüngliche Problematik zurück zu kommen.... Wir haben nach langen Recherchen nun folgendes feststellen können. Sobald sich ein Apostroph im Artikelnamen oder im Kategorienamen befindet, werden Bestellungen in Analytics nicht getrackt. Daraufhin haben wir den Support kontaktiert und folgende Rückmeldung bekommen.

Vielen Dank für das freundliche Telefonat. Wie soeben besprochen möchte ich Ihnen hiermit noch einmal den Grund für die nicht angezeigten Produkte mit Apostrophen schriftlich aufführen.
Das Problem mit Apostrophen (und auch mit Anführungsstrichen) ist, dass diese den Java Script-Code brechen. Ich bitte Sie deshalb, Zeichen wie diese in Ihren Produktnamen, den Kategorienamen oder weiteren Datenfeldern zu vermeiden. Ebensowenig sollten Sie nicht-alphanumerische Zeichen in numerische Felder einfügen sowie Währungsidentifikatoren (wie das Dollar-Zeichen) in das Kosten-, das Versand- oder in das Steuerfeld einfügen.


Dies ist zwar keine 100%ige Lösung des Problems, konnten dadurch aber ca. 5% mehr Bestellungen tracken.
 

Xantiva

Sehr aktives Mitglied
28. August 2016
1.795
316
Düsseldorf
Ich habe mir den JTL Code noch nicht angesehen, aber dass man Produktnamen mit Apostrophen vermeiden sollte ist doch Unsinn. Wenn solche Zeichen im original Artikelnamen vorkommen, dann muss eine Anwendung damit umgehen können (meine Meinung). Da sollte ein einfaches "addslashes()" reichen. In meinen bisherigen Code (anderes Shop-System) steht:
PHP:
        $addItem[] = sprintf("_gaq.push(['_addItem','%s','%s','%s','%s','%s','%s']);\n",
                        $last_order,
                        $order['products_id'],
                        addslashes($order['products_name']),
                        addslashes($order['categories_name']),
                        $order['products_price'],
                        $order['products_quantity']);


Versuche es ansonsten mal mit dem Smarty Modifier escape
HTML:
{$articleTitle|escape:'javascript'}
(Ersetze $articleTitle mit der korrekten Variablen.)
 

snyer

Aktives Mitglied
6. November 2016
65
6
Nochmal eine Frage zur Einbindung des Snippets von martinwolf:
Muss ich den Code der bereits in der footer.tpl vorhanden ist (in meinem Fall das Evo Theme "Paper") ersetzen, oder ergänzen?
 

smithy

Aktives Mitglied
24. August 2016
12
0
Hallo,

vielen Dank für die sehr gute Erklärung. Wenn ich nun das Amazon Pay plugin verwende, dann läuft der ganze Bestellvorgang ja leider über /lpacheckout. Irgend eine Idee, wie man hier ein Tracking einbauen kann? Die Variable Steps ist auf jeden Fall nicht gefüllt. Am Ende kann man nur /lpacomplete tracken und so feststellen, dass jemand via Amazon Pay eingekauft hat. Nicht optimal.
Danke
 

smithy

Aktives Mitglied
24. August 2016
12
0
Hallo,

zum Tracking hätte ich noch eine Frage. Wenn man nun Bezahlung vor Bestellung bei paypal auf nein setzt, dann wird am Ende die Seite bestellabschluss.php gar nicht aufgerufen. Muss ich mir in dem Fall eine weitere Conversion erstellen?

Danke
 

Conny

Sehr aktives Mitglied
7. September 2009
571
61
Hi,

ich habe das Problem, dass bei mir das GA.JS nicht geladen wird.

im Footer.tpl habe ich folgendes
Code:
{if $Einstellungen.global.global_google_analytics_id}
         <script type="text/javascript">
            var _gaq = _gaq || [];
            _gaq.push(['_setAccount', '{$Einstellungen.global.global_google_analytics_id}']);
            _gaq.push(['_gat._anonymizeIp']);
            _gaq.push(['_trackPageview']);

            (function() {ldelim}
               var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
               ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
               var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
            {rdelim})();
         </script>
      {/if}

Wenn ich die Seite aufrufe bekomme ich folgedes

firefox_2017-06-26_09-47-48.png

Was könnte das sein ?
URL: www.Number-One.de
 

Conny

Sehr aktives Mitglied
7. September 2009
571
61
Hi, ich habe mal den Browse ohne zusätzliche Plugins aufgerufen. Dort habe ich das selbe Problem
 

ag-websolutions.de

Sehr aktives Mitglied
29. Dezember 2009
14.548
233
Es geht um den Shop in deiner Signatur?

Da klappt aber bei mir alles

upload_2017-6-26_14-31-59.png

PS: Ich gehe jetzt davon aus, dass die brandfree-Option gekauft wurde für den Shop?
 

Conny

Sehr aktives Mitglied
7. September 2009
571
61
Habe es eben mal im Chrome probiert. Da geht es. Aber im FF komischer weise noch das selbe Problem
 

Stephs182

Sehr aktives Mitglied
21. Januar 2015
268
28
Luckau NL
AW: Trackingprobleme mit Google Analytics



Ja das Ziel schon, aber während des Checkouts über die bestellvorgang.php gibt es keine eindeutige URL für jeden einzelnen Step. Im Standard erkennst du nicht ob sich ein Kunde in der Auswahl der Zahlungsart, Versandart oder auf der Bestätigung befindet.



Hier muss die Einbindung von Analytics angepasst werden. In Hypnos hab ich das wie folgt umgesetzt:

Code:
{if $Einstellungen.global.global_google_analytics_id}
    {* define funnel track *}
    {assign var=funnelTrack value=$smarty.server.REQUEST_URI}
    {* specify unique parameter for checkout steps *}
    {if isset($step)}
        {assign var=funnelTrack value="`$smarty.server.PHP_SELF`?step=`$step`"}
    {/if}
   
    <!-- Google Analytics -->
    <script>   
        (function(i,s,o,g,r,a,m){ldelim}i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ldelim}
        (i[r].q=i[r].q||[]).push(arguments){rdelim},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)
        {rdelim})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
        ga('create', '{$Einstellungen.global.global_google_analytics_id}', 'auto');
        ga('send', 'pageview', '{$funnelTrack|lower|replace:" ":"_"}');
    </script>
    <!-- End Google Analytics -->
{/if}

Es wird stehts der exakte URI übergeben und im Checkout dann die URL mit Step als Parameter. Den Trichter dann so anlegen wie im Screenshot zu sehen.
Den Anhang 19481 betrachten

Ansich finde ich das ne super Sache. Nun nutzen wir leider nicht mehr das alte Tracking von Analytics, sondern schon das "Neue" und ich bin mir unsicher, ob die Anpassung noch greift. Gerade in Bezug auf die letzte Zeile.. er überträgt zwar richtig, doch kann Analytics das dann auch noch richtig sehen?

Code:
{if !empty($Einstellungen.global.global_google_analytics_id)}
       {* define funnel track *}
    {assign var=funnelTrack value=$smarty.server.REQUEST_URI}
    {* specify unique parameter for checkout steps *}
    {if isset($step)}
        {assign var=funnelTrack value="`$smarty.server.PHP_SELF`?step=`$step`"}
    {/if}
       {literal}
<!-- Global Site Tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id={/literal}{$Einstellungen.global.global_google_analytics_id}{literal}"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', '{/literal}{$Einstellungen.global.global_google_analytics_id}{literal}', { 'anonymize_ip': true });
  gtag('send', 'pageview', '{/literal}{$funnelTrack|lower|replace:" ":"_"}{literal}');
 
</script>
{/literal}
 

Conny

Sehr aktives Mitglied
7. September 2009
571
61
Hat denn schon jemand dass ganze umgesetzt auf das neue Checkout (nur noch 3 Schritte) ?
Irgendwie kann ich die Schritte jetzt nicht mehr anhand der URL unterscheiden.
 

Ähnliche Themen