Отслеживание электронной торговли в Google Analytics
Добавлено: 08.04.2019, 14:04
Всем привет.
Подключил в Google Analytics отслеживание электронной торговли для сайта и столкнулся с проблемой дублирования заказов.
На страницу оформленного заказа (order.tpl) добавил специальный скрипт (см.ниже), информация о заказах стала успешно появляться в GA, однако заметил, что количество товаров в некоторых заказах в системе больше, чем реально оформлено на сайте.
Была уверенность, что при перезагрузке страницы с заказом или открытии его по ссылке из письма-подтверждения, выполненный скрипт дубля не создаст, так как Google Analytics будет сопоставлять их по transaction_id, однако оказалось, что это не совсем так.
Дубли не создаются, однако в имеющиеся в базе GA заказы, при каждом обновлении страницы добавляется еще один набор товаров из этого заказа.
Скрипт добавленный на страницу выглядит так:
Подскажите, где лучше разместить этот скрипт, чтобы при оформлении заказа он выполнялся всего один раз?
Подключил в Google Analytics отслеживание электронной торговли для сайта и столкнулся с проблемой дублирования заказов.
На страницу оформленного заказа (order.tpl) добавил специальный скрипт (см.ниже), информация о заказах стала успешно появляться в GA, однако заметил, что количество товаров в некоторых заказах в системе больше, чем реально оформлено на сайте.
Была уверенность, что при перезагрузке страницы с заказом или открытии его по ссылке из письма-подтверждения, выполненный скрипт дубля не создаст, так как Google Analytics будет сопоставлять их по transaction_id, однако оказалось, что это не совсем так.
Дубли не создаются, однако в имеющиеся в базе GA заказы, при каждом обновлении страницы добавляется еще один набор товаров из этого заказа.
Скрипт добавленный на страницу выглядит так:
Код: Выделить всё
<script>
{literal}
gtag('event', 'purchase', {
'transaction_id': '{/literal}{$order->id}{literal}',
'value': {/literal}{$order->total_price}{literal},
'items': [
{/literal}{foreach $purchases as $purchase}{literal}
{
'id': '{/literal}{$purchase->variant->id}{literal}',
'name': '{/literal}{$purchase->product_name|escape}{literal}',
'variant': '{/literal}{$purchase->variant_name|escape}{literal}',
'quantity': {/literal}{$purchase->amount|escape}{literal},
'price': '{/literal}{$purchase->variant->price}{literal}'
},
{/literal}{/foreach}{literal}
]
});
{/literal}
</script>
Подскажите, где лучше разместить этот скрипт, чтобы при оформлении заказа он выполнялся всего один раз?