10. Oktober 2014 FPW

Google Analytics eCommerce Tracking mit Afterbuy

Bei unserem Kunden Eidertal Vermessungstechnik standen wir vor der Aufgabe, das Analytics eCommerce Tracking in einem Afterbuy-Shop zu implementieren. Wir waren davon ausgegangen, dass Afterbuy so etwas mit ein paar Klicks ermöglicht, aber das war ein Irrtum. Also haben wir uns die nötigen Informationen selbst beschafft und diese Aufgabe gelöst. Um anderen vielleicht das Suchen zu ersparen, veröffentlichen wir hier unsere Lösung.

Im Header der Seite muss der Universal Analytics Code enthalten sein. Dieser wird um die Zeile

ga('require', 'ecommerce');

ergänzt, so dass der komplette Code dann so aussieht:

<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','//www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-????????-?', 'auto');
ga('set', 'anonymizeIp', true);
ga('require', 'ecommerce');
ga('send', 'pageview');
</script>

Die ? sind durch die eigene ID zu ersetzen. Im Template “Bestellstatusanzeige” wird der folgende Code einmal hinter ‘afterorder” und einmal hinter ‘afterquickorder’ platziert.

<script type="text/javascript">
try {

<xsl:variable name="orderid" select="AID"/>
<xsl:text disable-output-escaping="yes">ga('ecommerce:addTransaction', {'id': '</xsl:text>
<xsl:value-of select="$orderid"/>
<xsl:text disable-output-escaping="yes">', 'affiliation': 'SHOPNAME', 'revenue': '</xsl:text>
<xsl:value-of select="FullAmount/@RealNumber"/>
<xsl:text disable-output-escaping="yes">', 'tax': '</xsl:text>
<xsl:value-of select="Tax/@RealNumber"/>
<xsl:text disable-output-escaping="yes">', 'shipping': '</xsl:text>
<xsl:value-of select="ShippingCost/@RealNumber"/>
<xsl:text disable-output-escaping="yes">'});</xsl:text>

<xsl:for-each select="ItemList/Item">
  <xsl:text disable-output-escaping="yes">ga('ecommerce:addItem', {'id': '</xsl:text>
  <xsl:value-of select="$orderid"/>
  <xsl:text disable-output-escaping="yes">', 'sku': '</xsl:text>
  <xsl:value-of select="ProductID"/>
  <xsl:text disable-output-escaping="yes">', 'name': '</xsl:text>
  <xsl:value-of select="ProductName"/>
  <xsl:text disable-output-escaping="yes">', 'category': '', 'price': '</xsl:text>
  <xsl:value-of select="UnitPrice/@RealNumber"/>
  <xsl:text disable-output-escaping="yes">', 'quantity': '</xsl:text>
  <xsl:value-of select="ProductQuantity"/>
  <xsl:text disable-output-escaping="yes">'});</xsl:text>
</xsl:for-each>

ga('ecommerce:send');
} catch(err) {}
</script>

Der String “SHOPNAME” ist durch den eigenen Shopnamen (bzw. die Domain) zu ersetzen. Das war’s dann auch schon. Damit funktioniert die Erfassung der Transaktionen, eine wichtige Voraussetzung für eine vernünftige Auswertung von Werbemaßnahmen.

Tagged: , , , ,

Schröder & Wendt - Wir freuen uns auf Sie!

Ihre Anfragen beantworten wir kurzfristig - meist noch am gleichen Tag. Versprochen!