функция обратного вызова событий отправки google analytics
Я пытаюсь отправить событие go Google analytics после регистрации пользователя и до он перенаправляется. Я использую менеджер тегов Google и univerasl js.
во-первых, я пытаюсь использовать случае dataLayer
3 ответов
наконец-то понял. Это довольно сложно и не описано в документах. В моем случае я использую Google Tag Manager, поэтому мне пришлось сделать некоторые обходные пути, чтобы успешно запустить событие и получить обратный вызов.
во-первых, мы должны сделать параметр ClientID, который требуется при любом событии, отправленном на серверы Google. На самом деле он хранится в куки, но Google не рекомендует брать его непосредственно оттуда.
вот как Google рекомендует его получить, но это не работает если вы используете Диспетчер тегов Google.
ga(function(tracker) {
var clientId = tracker.get('clientId');
});
вместо этого вы должны получить ClientId из метода getAll.
var clientId = ga.getAll()[0].get('clientId');
после, вы должны создать новый трекер
ga('create', 'UA-XXX-YYY', {
'clientId': clientId
});
и после этого мы можем послать событие:
ga('send', 'event', {
'eventCategory': 'YOUR Category Name', //required
'eventAction': 'YOUR Action name', //required
'eventLabel': 'YOUR Label',
'eventValue': 1,
'hitCallback': function() {
console.log('Sent!!');
//callback function
},
'hitCallbackFail' : function () {
console.log("Unable to send Google Analytics data");
//callback function
}
});
из аналитического документа Google https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#hitCallbackNews
// Alerts the user when a hit is sent.
ga('send', 'pageview', {
'hitCallback': function() {
alert('hit sent');
}
});
вы можете редактировать hitCallback
функции для вашей.
или
// Use a timeout to ensure the execution of critical application code.
ga('send', 'pageview', {'hitCallback': criticalCode});
setTimeout(criticalCode, 2000);
// Only run the critical code once.
var alreadyCalled = false;
function criticalCode() {
if (alreadyCalled) return;
alreadyCalled = true;
// Run critical code here...
}
здесь вы можете определить свои функции (criticalCode
) В приведенном выше примере, который может обеспечить данные, отправленные в Google Analytic, а затем работать с вашим кодом.
для лучшего понимания api аналитики, fyr: https://developers.google.com/analytics/devguides/collection/analyticsjs/command-queue-reference
из документов: https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced#hitCallback
ga('send', 'pageview', {
'page': '/my-new-page',
'hitCallback': function() {
alert('analytics.js done sending data');
}
});
в этом примере объект field name настраивает как параметр page, так и параметр hitCallback. Как только трекер завершит отправку данных, пользователю будет показано окно предупреждения.
вы можете использовать hitCallback для событий, просмотров страниц и т. д..