Google Analytics "Bestellungen tracken"

@seriewe schrieb:

Hallo zusammen,

ich habe sehr viel Zeit damit verbracht das Problem zu untersuchen und habe folgendes herausgefunden.  Beim purchase event wird die Variable window.contextToken als transaction_id verwendet, diese ist aber leer, somit kommen die Daten nie bei Analytics. Setze ich einen Pseudowert erhalte ich die Daten und den entsprechenden Event in Analytics!

Wir arbeiten mit version SW6.2.0  

Im Changelog-6.2 steht sogar das die id nun leer ist!

* Deprecated window.accessKey and window.contextToken, the variables contains now an empty string

Soll ein Fix kommen?

Danke für’s kümmern und debuggen!  Thumb-Up Thumb-Up Thumb-Up

Noch zwei Ergänzungen,

im aktuellen 6,2 branch platform/base.html.twig at 6.2 · shopware/platform · GitHub

{% block base_script_token %}
    
        {# @deprecated tag:v6.3.0 accessKey and contextToken will be removed #}
        window.accessKey = '';
        window.contextToken = '';
        window.apiAccessUrl = "{{ url('frontend.api-access') }}";
    
{% endblock %}

In der Development Version sind diese jedoch noch gesetzt: https://github.com/shopware/platform/blob/master/src/Storefront/Resources/views/storefront/base.html.twig

{% block base_script_token %}
    
        window.accessKey = '{{ context.salesChannel.accessKey }}';
        window.contextToken = '{{ context.token }}';
    
{% endblock %}

Damit ist ein möglicher WORKAROUND , bis ein fix kommt, folgenden Block in die base.html.twig des eigenen Theme einzubauen

{% block base_script_token %}
    {{parent()}}
    
        window.accessKey = '{{ context.salesChannel.accessKey }}';
        window.contextToken = '{{ context.token }}';
    
{% endblock %}

Ein weiteres Problem mit Analytics Purchase Tracking haben wir noch mit dem Plugin Custom Products festgestellt. Hier wird aus einem div mit der Klasse hidden-line-items-information für jedes hidden-line-item der Preis aus data-price genommen zum Übergeben an Analytics, bei Custom Products sind diese nicht richtig gesetzt und der Preis ist leer!

 

1 „Gefällt mir“

Moin zusammen!

Vielen Dank an der Stelle an @seriewe‍ für den Aufwand, den du dir gemacht hast! :slight_smile:

Ich habe mir die genannte Stelle einmal angesehen.
Leider hat das in meiner Testmaschine auch weiterhin keinen Einfluss darauf, ob die Bestellung durchgeht oder nicht - klappt bei mir merkwürdigerweise auch beim Ist-Zustand.
Nichtsdestotrotz ist das auf jeden Fall ungünstig und ich erstelle dafür auf jeden Fall eine interne Änderungs-Anfrage.

Warum das bei mir lokal keine Probleme macht, kann ich mir derweil auch nicht erklären - das sollte es nämlich.  Undecided

Liebe Grüße,
Shopware Patrick Stahl

@seriewe schrieb:

Noch zwei Ergänzungen,

im aktuellen 6,2 branch https://github.com/shopware/platform/blob/6.2/src/Storefront/Resources/views/storefront/base.html.twig

{% block base_script_token %}

    {# @deprecated tag:v6.3.0 accessKey and contextToken will be removed #}
    window.accessKey = '';
    window.contextToken = '';
    window.apiAccessUrl = "{{ url('frontend.api-access') }}";

{% endblock %}

In der Development Version sind diese jedoch noch gesetzt: https://github.com/shopware/platform/blob/master/src/Storefront/Resources/views/storefront/base.html.twig

{% block base_script_token %}

    window.accessKey = '{{ context.salesChannel.accessKey }}';
    window.contextToken = '{{ context.token }}';

{% endblock %}

Damit ist ein möglicher WORKAROUND , bis ein fix kommt, folgenden Block in die base.html.twig des eigenen Theme einzubauen

{% block base_script_token %}
{{parent()}}

    window.accessKey = '{{ context.salesChannel.accessKey }}';
    window.contextToken = '{{ context.token }}';

{% endblock %}

Ein weiteres Problem mit Analytics Purchase Tracking haben wir noch mit dem Plugin Custom Products festgestellt. Hier wird aus einem div mit der Klasse hidden-line-items-information für jedes hidden-line-item der Preis aus data-price genommen zum Übergeben an Analytics, bei Custom Products sind diese nicht richtig gesetzt und der Preis ist leer!

 

 

Interessant.
Ich glaube aber, dass die apiAccess Url unbedingt mit drin bleiben muss.
Das wird ua. von PayPal glaube ich genutzt.
Richtiger wäre daher denke ich (oder?!)

{% block base_script_token %}
    
        window.accessKey = '{{ context.salesChannel.accessKey }}';
        window.contextToken = '{{ context.token }}';
        window.apiAccessUrl = "{{ url('frontend.api-access') }}";
    
{% endblock %}

 

3 „Gefällt mir“

Ich habe jetzt mehrere Testinstallationen…

In wirklich keiner funktioniert das Bestellung tracking.

 

Ich habe diesen Code hinzugefügt… jetzt funktioniert es

            document.addEventListener("DOMContentLoaded", function(){
                    gtag("event", "purchase", {
                        transaction_id: '{{ context.token }}',
                        items: [
                            {% for lineitem in page.order.lineItems.elements %}
                            {% if lineitem.type == 'product' %}
                            {
                                "id": "{{ lineitem.productId }}",
                                "name": "{{ lineitem.label }}",
                                "quantity": {{ lineitem.quantity }},
                                "price": '{{ lineitem.unitPrice }}'
                            },
                            {% endif %}
                            {% endfor %}
                        ]
                    })
             
            });

 

Mit meinem Code von oben als Anpassung klappt das tracking.
Außer: Versandkosten, die werden leider nicht übertragen.

Niklas

Hi ADA,

kannst du mir sagen, wo du den Code genau eingebaut hast?

Wir würden gerne vorübergehend deine Lösung nutzen, bis Shopware das Problem gefixed hat. Ich verstehe jedoch nicht, wo der Code hin muss, damit er nur dann ausgelöst wird, wenn die Bestellung erfolgreich erstellt worden ist. 

Danke und Grüße
Kristian

Ich habe jetzt mehrere Testinstallationen…

In wirklich keiner funktioniert das Bestellung tracking.

 

Ich habe diesen Code hinzugefügt… jetzt funktioniert es

document.addEventListener(„DOMContentLoaded“, function(){
gtag(„event“, „purchase“, {
transaction_id: ‚{{ context.token }}‘,
items: [
{% for lineitem in page.order.lineItems.elements %}
{% if lineitem.type == ‚product‘ %}
{
„id“: „{{ lineitem.productId }}“,
„name“: „{{ lineitem.label }}“,
„quantity“: {{ lineitem.quantity }},
„price“: ‚{{ lineitem.unitPrice }}‘
},
{% endif %}
{% endfor %}
]
})

});

 

Hi,

das Tracking in 6.3.3 klappt soweit. Leider werden die Bestellungen teilweise mehrfach an Analytics übertragen…! Ich verstehe nicht wo das Problem liegt. Teilweise werden Bestellungen doppelt übrmeittelt, teilweise sogar 4 mal, siehe screenshot. Das ist eine Bestellung über 14,99€ die 4 mal in Analytics getrackt wurde.

Hat keiner das selbe Problem? [@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski „Moritz Naczenski“)‍ hast du hier Erfahrungen?

Hier gehts zum issue:

https://issues.shopware.com/issues/NEXT-12660

hat sonst keiner Probleme mit falschen Werten in Google Analytics ?

Hat keiner diese Probleme?!

Das ist wirklich ein ernsthaftes Problem…oder gibt hier keiner Geld für Werbung bei Google aus? Also wir würden schon gerne wissen was mit unseren 4000€ Werbekosten im Monat bei rum kommt…

Das Shopware Google Analytics Plugin erzeugt mehrere UUIDs für eine Bestellung. Die Transaktion ID für GA sollte die Bestellnummer sein, diese ist eindeutig und sollte das Problem beheben. Wenn nicht, muss eine Abfrage in die  purchase.event.js , die prüft, ob der Bestellbestätigungsseite schonmal aufgerufen wurde.

@Shyim‍ [@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski “Moritz Naczenski”)‍ [@Stephan Pohl](http://forum.shopware.com/profile/2/Stephan Pohl “Stephan Pohl”)‍

https://support.google.com/google-ads/answer/6386790?hl=de

Erster Satz:

Fügen Sie Ihrem Conversion-Tracking-Tag eine Transaktions-ID hinzu. Damit lässt sich vermeiden, dass Conversions doppelt erfasst werden.

In SW 5 wurde auch die OrderId genommen:

Tatsächlich nicht - nicht eine doppelte Bestellung soweit in Analytics  Undecided
Wir hatten am Anfang Probleme grundsätzlich mit dem Tracking (Verlauf oben) aber seit dem Update auf die aktuellste Version ist die eigene Anpassung nicht mehr notwendig und alles kommt an.

Ohne jetzt Werbung machen zu wollen - wir nutzen dieses Plugin für eine Anbindung an den Google Tagmanager: Google Tag Manager + Remarketing + Enhanced Ecommerce (SW6) | SEO Optimierung | Erweiterungen | Shopware Community Store

Im damit verbundenen Tagmanager-Container ist Analytics als Tag eingebunden. Wir haben dort zusätzlich noch etliche andere Tags definiert, die wir ansonsten alle in Shopware per Plugin einbauen müssten. Das o.g. Plugin funktioniert gut bei uns, es gibt auch keine Dopplungen oder andere komische Dinge.

@kanuma‍ vielleicht ist das ja auch für euch eine Alternative.

@TeichDatensysteme schrieb:

Tatsächlich nicht - nicht eine doppelte Bestellung soweit in Analytics  Undecided
Wir hatten am Anfang Probleme grundsätzlich mit dem Tracking (Verlauf oben) aber seit dem Update auf die aktuellste Version ist die eigene Anpassung nicht mehr notwendig und alles kommt an.

Hey! Sehr komisch… aber der von mir beschriebene Fehler ist soweit ja auch logisch. Es werden random ids vergeben, wieso? Die id sollte die orderid aus Shopware sein, damit kann es keine dopplungen geben.

seit der Umstellung auf sw6 können wir nichts mehr tracken, da nur Murks übertragen wird.

@kanuma‍ vielleicht ist das ja auch für euch eine Alternative.

Ich werde es mir mal anschauen. Danke.