Events (Ereignisse) doppelt

Derzeit Tracke ich mein View_Item so es erscheint aber im Echtzeitbericht nicht als Ereignisse sondern als PageView.

<script>
window._paq = window._paq || [];
var productInfo = {{VAR_ECommerce-Items}};

window._paq.push(['setEcommerceView',
    productInfo[0].item_id,
    productInfo[0].item_name,
    productInfo[0].item_category,
    productInfo[0].price
]);
</script>

Wenn ich es so umändere:

<script>
window._paq = window._paq || [];
var productInfo = {{VAR_ECommerce-Items}};

window._paq.push(['setEcommerceView',
    productInfo[0].item_id,
    productInfo[0].item_name,
    productInfo[0].item_category,
    productInfo[0].price
]);

window._paq.push(['trackEvent', 'eCommerce', 'Produktansicht', productInfo[0].item_name
]);
</script>

Dann sind es zwar als Ereignisse im Echtzeitbericht aber diese immer doppelt und danach noch als PageView.

Wenn ich es so mache:

<script>
window._paq = window._paq || [];
var productInfo = {{VAR_ECommerce-Items}};

window._paq.push(['setEcommerceView',
    productInfo[0].item_id,
    productInfo[0].item_name,
    productInfo[0].item_category,
    productInfo[0].price
]);

window._paq.push(['trackPageView']);
</script>

Dann ist es auch nicht besser!

Wo ist mein Fehler?

Hallo,
weil … alle _paq.push sowie alle bei jedem Webpage-Aufruf getriggert werden. Es fehlt eine Regel, wann(!) diese getriggert werden sollen.

Beispiel: _paq.push(['trackEvent' ...) wird zum Beispiel in einem <a href="..." onclick="_paq.push(['trackEvent' 'Link', 'Click', this.href]);">Link</a> verwendet. Wenn der Link angeklickt wird, dann wird dies als Matomo-Event getrackt.

Es ist auch möglich Event-Tracking mittels einer JavaScript-Regel zu gestalten:

if (value === true) {
  _paq.push(['trackEvent' 'Kategorie', 'Element', 'Value');
}

Da musst du dich über JavaScript schlau machen.

Naja normal sollte doch eigentlich das “setEcommerceView” eigentlich ein Ereigniss auslösen oder?

Nein, setEcommerceView ist für die Ansichten bei Produkten und kein Ereignis :

-)

Also zweite Spalte von rechts … für die Konversionsrate benötigt

Danke @Thomas_Zeithaml

wie bekomme ich es hin das das Ereignis nicht doppelt kommt?

image

Also hier hat der Besucher eine Kategorie angeschaut und dann auf ein Produkt geklickt was dann das Ereignis doppelt auslöste und dann den den Seitenbesuch anzeigt.

dies wurde im TagManager mit diesen Code gemacht:

<script>
window._paq = window._paq || [];
var productInfo = {{VAR_ECommerce-Items}};

window._paq.push(['setEcommerceView',
    productInfo[0].item_id,
    productInfo[0].item_name,
    productInfo[0].item_category,
    productInfo[0].price
]);

window._paq.push(['trackEvent', 'eCommerce', 'Produktansicht', productInfo[0].item_name
]);
</script>

Das schaut nicht falsch aus. Man müsste das mal im Tag Manager Debugger anschauen, warum das zweimal gefeuert wird. Wie gesagt, setEcommerceView erzeugt keine Seitenansicht oder Ereignis - sondern nur ein View auf Produkt / Kategorieebene. Dein TrackEvent feuert das Ereignis ab. Ich vermute, es wird an zwei Stellen getriggert. Das sieht man sehr schön im Tag Manager - also im Debug-Modus.

Also im TagManager sehe ich das das view_item 2x gefeuert wird, mir ist aber nicht klar wieso.

Ich habe den Trigger view_item nur 1x genutzt und habe wie oben gesagt auch nur einmal den TAG_view-item am laufen.

Wie kann es dennoch sein das es 2x kommt.

Hier die Config das TAG:

Hier die Config des Trigger:

Hier der Datalayer aus dem TagManager:

Vielleicht hilft das?

Es bestehen immer die Möglichkeiten erstens den Seitenquelltext zu prüfen (über das Kontextmenü im Browser) und zweitens die Netzwerkanalyse im Browser-Inspektor zu überwachen, bei der jedes Triggern von Matomo als Request an Matomo zu sehen ist.

Ich mache das etwas anders …

Ich befülle im Quellcode den Datalayer - also außerhalb vom Tag-Manager:

<script>
window._mtm = window._mtm || [];
window._mtm.push({'productInfos':{'sku': '8182790134362', 'name': 'GoPro Hero 4 Silver', 'price': 429.99, 'category': 'Kameras'}});
</script>

und dann halt die Werte richtig füllen

Im Tag Manager habe ich nur eine Variable mit dem Datalayer angelegt.

Im Tag feuer ich bei einer Seitenansicht dann den EcommerceView ab - bei jeder Seitenansicht.

Ja so mache ich es auch.

Sehe da keinen Unterschied.

Also ich habe es bei mir nochmal verglichen!

Wenn ich es so mache:

<script>
window._paq = window._paq || [];
var productInfo = {{VAR_ECommerce-Items}};

window._paq.push(['setEcommerceView',
    productInfo[0].item_id,
    productInfo[0].item_name,
    productInfo[0].item_category,
    productInfo[0].price
]);

window._paq.push(['trackPageView']);

window._paq.push(['trackEvent', 'eCommerce', 'Produktansicht', productInfo[0].item_name
]);
</script>

Habe ich 5 Aufrufe der Seite in der Reihenfolge:
1 Pagetrack, 1 Ereigniss, 1 Pagetrack, 1 Ereigniss, 1 Pagetrack

Mach ich wie in der Doku:
Code direkt aus der Doku von der Matomo Seite:

// Push Product View Data to Matomo - Populate parameters dynamically
_paq.push(['setEcommerceView',
    "0123456789", // (Required) productSKU
    "Ecommerce Analytics Book", // (Optional) productName
    "Books", // (Optional) categoryName
    9.99 // (Optional) price
]);

// You must also call trackPageView when tracking a product view 
_paq.push(['trackPageView']);

bekomme ich 2 Pagetrack

Wenn ich nur den “setEcommerceView” nutze dann habe ich nur 1 Pagetrack was ja okay wäre.

@Thomas_Zeithaml

scheinbar wird der also doch als Pagetrack mit gezählt und nicht nur für die “Statistik”

Wer kann das auch so bestätigen?

trackPageView - sendet die Seitenansicht an Matomo.

Die Reihenfolge und die Anzahl der Trigger ist also wichtig. :wink:

  1. setEcommerceView - ohne Trackview
  2. Standard Seitenansicht mit Trackviwe

Bei den Tags kannst du unten die Reihenfolge beeinflußen.
Leider kann ich so nur raten von außen.

Kann ich jetzt so nicht bestätigen.
Weil auch nur das “setEcommerceView” ohne Event und ohne “trackPageView” sehe ich ja auch in der Echtzeit Ansicht.

Ich werde es mal bei mir nur noch so lassen also nur das “setEcommerceView” zu pushen. Bis ich das wirklich verstehe. :slight_smile: