Ich habe mich damit schon viel herum geärgert, gerade mit den teils widersprüchlichen Angaben in den Leitfäden bei Google Devs und Fehlern in Tag Assistant etc.
Um nur einfach das Snippet vom GTM einzubinden, empfehle ich das direkt in nach "<head>" in die Datei /includes/header.php einzubauen. Es soll "unbedingt nach dem geöffneten head -Tag eingesetzt werden" heißt es.
Ich habe nicht die Zeit für ein vollständiges Tutorial, kann Dir aber schon mal ein paar Tipps geben, wenn es um Stolpersteine geht:
Wenn Du gtag.js nutzt, kann es gut sein, dass das Conversion Tracking nicht mehr geht, wenn GTM aktiv ist, da die beiden sich nicht vertragen. Dann muss das Conv. Tracking von Google Analytics über GTM laufen.
Dazu ist dieses Tutorial hilfreich:
Google Tag Manager: AdWords Conversion-TrackingNutze für die Implementierung Chrome mit den Extensions "Tag Assistant" und "Datalayer Checker" um zu sehen, ob Deine Änderungen auch funktionieren.
Für das Conv. Tracking über GTM musst Du die Daten aus dem jeweiligen Warenkorb in der Bestellabschlussseite in einem JavaScript "Data Layer" ausgeben. Da in den Code-Beispielen falsche Eigenschaftsnamen stehen, hier mein Script, welches ich über dem Code-Snippet des GTM in der includs/header.php inkludiere:
<?php // GOOGLE CONV. TRACKINGif (basename($PHP_SELF) == FILENAME_CHECKOUT_SUCCESS
) { require_once (DIR_FS_INC
.'get_order_total.inc.php'); $total = get_order_total
($last_order);?><?php //<!-- BOC Google Tag Manager Data Layer --> ?><script
> window
.dataLayer
= window
.dataLayer
|| [] dataLayer
.push
({ 'transactionId': '<?php echo $last_order; ?>', 'transactionAffiliation': '<?php echo $current_domain; ?>', 'transactionTotal': <?php echo number_format($total, 2, '.', ''); ?>,
'transactionTax':
<?php echo number_format($orders_total_tax["value"], 2, '.', ''); ?>,
'transactionShipping':
<?php echo number_format($orders_total_shipping["value"], 2, '.', ''); ?>,
'transactionProducts': [
<?php $countitems = 0; ?> <?php foreach ($order_data as $item) { ?> {
'sku': '
<?php echo $item["PRODUCTS_SKU"]; ?>',
'name': '
<?php echo $item["PRODUCTS_NAME"].' ('.$item["PRODUCTS_MODEL"].')'; ?>',
'category': '
<?php echo $item["CAT"]; ?>',
'price':
<?php echo number_format($item["PRODUCTS_SINGLE_PRICE"], 2, '.', ''); ?>,
'quantity': '
<?php echo $item["PRODUCTS_QTY"]; ?>'
}
<?php if($countitems != count($order_data) -1) echo ","; $countitems += 1; ?> <?php }; unset($item); ?> ]
});
</script>
<?php }; ?> Die Daten dafür habe ich mir in der /checkout_success.php aus der Datenbank geholt und in Smarty geschoben. Diesen Block habe ich vor dem Abschnitt "// GV Code" eingefügt:
$order_query = xtc_db_query
("SELECT categories_name, p.products_id, orders_products_id, products_model, products_name, products_price, products_quantity
FROM ".TABLE_ORDERS_PRODUCTS
." p, ".TABLE_PRODUCTS_TO_CATEGORIES
." ptc, ".TABLE_CATEGORIES_DESCRIPTION
." cd
WHERE p.products_id = ptc.products_id AND ptc.categories_id = cd.categories_id AND cd.language_id = 2 AND orders_id='".$last_order."'
GROUP BY p.products_id");$order_data = array ();while ($order_data_values = xtc_db_fetch_array
($order_query)) { $order_data[] = array ('PRODUCTS_MODEL' => $order_data_values['products_id'], 'PRODUCTS_SKU' => $order_data_values['products_model'], 'PRODUCTS_NAME' => $order_data_values['products_name'], 'CAT' => $order_data_values['categories_name'], 'PRODUCTS_SINGLE_PRICE' => $order_data_values['products_price'], 'PRODUCTS_QTY' => $order_data_values['products_quantity']);}$smarty->assign('order_data', $order_data); Wenn man dann bei GTM und GA alles richtig eingestellt hat, sollte das Conv. Tracking richtig laufen.
Darüber hinaus kann man noch einiges mehr damit machen, um bestimmte Daten nach GA zu bekommen (z.B. "Kaufverhalten" oder "Produktlistenleistung" analysieren).
Tut mir Leid, dass ich Dir kein komplettes Tutorial bieten kann, aber vielleicht hilft es Dir ja trotzdem weiter.