У меня был этот скрипт, отправляющий событие покупки GA, работающий нормально, но затем я переключился на Google Tag Manager, и скрипт больше не работает.
Логика в том, что когда кто-то покупает услугу, онВы перенаправлены на страницу с благодарностью, где данные транзакции заполняются в URL из платы PHP.
Затем этот скрипт запускается на этой странице и читает URL, чтобы назначить информацию о транзакции и отправить в аналитику.:
var pkg,
value,
ID = window.location.href.split("=")[1];
if (window.location.href.indexOf("starter") > -1) {
value = 150;
pkg = "Starter";
} else if (window.location.href.indexOf("professional") > -1) {
value = 250;
pkg = "Professional";
} else if (window.location.href.indexOf("entrepreneur") > -1) {
value = 350;
pkg = "Entrepreneur";
} else {
value = 0;
pkg = "error";
}
if (value > 0) {
// Google Analytics Ecommerce Tracking
gtag('event', 'purchase', {
"transaction_id": ID,
"value": value,
"currency": "USD",
"items": [
{
"id": pkg,
"name": pkg,
"quantity": 1,
"price": value
}
]
});
}
В GTM у меня есть этот сценарий в качестве тега "custom html".
Если я проведу тестовый платеж и заполню страницу URL / благодарности, я получу консольошибка, говорящая, что gtag () не является функцией.
Итак, я попробовал ga (), которая не выдает ошибку, но также не отправляет событие.
Затем я прочиталнасчет dataLayer, поэтому я попытался обернуть его вместо ga () / gtag ():
dataLayer.push({
'event', 'purchase', {
"transaction_id": ID,
"value": value,
"currency": "USD",
"items": [
{
"id": pkg,
"name": pkg,
"quantity": 1,
"price": value
}
]
}
});
И это дало мне ошибку javascript.Кажется, мне также может понадобиться поместить пустую переменную dataLayer где-нибудь на странице, но я не уверен, как это работает.
Есть идеи?Альтернативно, я должен вместо этого отправлять это событие через PHP?(никогда не использовал PHP с GA, поэтому не был уверен).