функция обратного вызова событий отправки 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 для событий, просмотров страниц и т. д..