У меня проблема с Magento, у меня есть несколько блоков CMS, которые добавляют товары в корзину, некоторые из них являются страницами продвижения, другие похожи на страницу конструктора продуктов, которая добавляет несколько продуктов (которые являются королем компонентов для создания других вещей) корзину, и я хотел бы знать, используют ли клиенты эти страницы, можно ли добавить аналогичный «utm», который будет отображаться на моем бэкэнде, говоря «этот пользователь использовал эту страницу / кампанию utm / что угодно»?
Должно быть, что-то делать с сессиями, верно? Но кроме этого, я невежественен.
Возможно, вы захотите заглянуть в Google Tagmanager for Analytics и DataLayers. Для этого есть все виды расширений, хотя вы можете реализовать их самостоятельно. То есть посмотри на это
Используя слои данных, вы можете отслеживать каждого пользователя на всех страницах, выводя нужные вам данные в нужное вам место.
Это немного сложно обернуть голову, но это, безусловно, лучший способ отслеживать и записывать действия ваших клиентов.
В настоящее время я реализую это по той же причине, вызывая пользовательский файл .phtml в заголовке и определяя теги для каждой страницы, используя PHP, как показано ниже:
<!-- Start GTM phtml -->
<?php if(Mage::getURL('checkout/onepage/success') == Mage::helper('core/url')->getCurrentUrl()) { ?>
<!-- GTM: Succes -->
<script>
dataLayer.push({
'ecommerce': {
'purchase': {
'actionField': {
'id': 'T12345',
'affiliation': 'xxx',
'revenue': 'xxx',
'tax': 'xxx',
'shipping': 'xxx'
},
'products': [{
'name':'productname',
'id':'123',
'price':'25.95',
'brand':'brandname',
'category':'clothing',
'quantity':'1'
},
{
'name':'productname',
'id':'345',
'price':'10.95',
'brand':'brandname',
'category':'apparel',
'quantity':'2'
}]
}
}
});
</script>
<?php } ?>
<?php if(Mage::getURL('checkout/cart') == Mage::helper('core/url')->getCurrentUrl()) { ?>
<!-- GTM: Cart -->
<?php } ?>
<?php if (strpos(Mage::helper('core/url')->getCurrentUrl(),'men') != false ) : ?>
<!-- GTM: Men -->
<?php endif; ?>
<?php if($this->getRequest()->getControllerName()=='product') ://do something ?>
<!-- GTM: All Products -->
<script>
dataLayer.push({
'event':'addToCart',
'ecommerce': {
'currencyCode':'EUR',
'add':{
'products':[{
'name': 'Productname',
'id': '1234',
'price':'15.00'
'brand':'brandname'
'quantity':1
}]
}
}
});
</script>
<?php endif; ?>
<?php if (strpos(Mage::helper('core/url')->getCurrentUrl(),'woman/running') != false ) : ?>
<!-- GTM: Woman Running -->
<script>
dataLayer.push({
'ecommerce': {
'purchase': {
'actionField': {
'id': 'T12345',
'affiliation': 'BK',
'revenue': 'BK',
'tax': 'BK',
'shipping': 'BK'
},
'products': [{
'name': 'Productname',
'id': '1234',
'price':'15.00'
'brand':'brandname'
'quantity':1
},
{
'name': 'Productname',
'id': '1234',
'price':'15.00'
'brand':'brandname'
'quantity':1
}]
}
}
});
</script>
<?php endif; ?>
<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=XXX-XXXXXX"height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','XXX-XXXXXX');</script>
<!-- End Google Tag Manager -->
Как вы видите, я использую разные проверки, чтобы вызвать слои на определенных страницах. Это могут быть точные URL-адреса или URL-адреса, содержащие ключевое слово (например, «man»).
Идея состоит в том, чтобы заменить все переменные динамической информацией из Magento ( echo $_product->getName();
а также такие)
И хорошее место для начала, конечно же, Сам Google Документы
Других решений пока нет …