Выполните функцию JavaScript сразу после того, как Google Analytics создаст / обновит все свои куки - PullRequest
1 голос
/ 15 октября 2011

Как создать веб-страницу для выполнения функции JavaScript сразу после Google Analytics создает / обновляет все свои файлы cookie и загружает DOM страницы.

Можно ли это сделать с помощью jQuery? Как?

Эта функция получает информацию из файлов cookie GA. Я пытался выполнить функцию при загрузке страницы DOM, но иногда GA еще не создал свои куки.

Ответы [ 2 ]

3 голосов
/ 15 октября 2011

Здесь есть 2 элемента: во-первых, DOM готов с jQuery. Это просто:

$(document).ready(function(){
//do something
});

Чтобы убедиться, что ваша функция выполняется после Google Analytics создала свои файлы cookie (после неявного выполнения initData()), нужно передать функцию в очередь массива _gaq, чтобы она получила выполняется после вызова _trackPageview.

Например:

_gaq.push(["_trackPageview"]);
_gaq.push(function(){
    //when this executes, the google analytics cookies definitely exist
});

Таким образом, вы можете поместить следующее в любое место на странице ниже _gaq.push(["_trackPageview"]) (или после любого вызова _gaq, который инициирует файлы cookie; чаще всего, _trackPageview, _trackEvent и _setCustomVar.

_gaq.push(function(){
    //do something
});

Теперь, чтобы убедиться, что функция и выполняется после того, как DOM Ready и , что initData() вызывается неявно, вы можете сделать это:

_gaq.push(function(){
    $(document).ready(function(){
        //do something
    });
});

Или:

$(document).ready(function(){
    _gaq.push(function(){
        //do something
   });
});

Они оба делают то, что вы ищете, хотя звучит так, будто первый лучше соответствует вашей ментальной модели того, чего вы пытаетесь достичь.

0 голосов
/ 18 мая 2018

Чтобы завершить / обновить @ Yahel ответ относительно синтаксиса, вы должны написать:

ga(function(tracker) {
  console.log(tracker.get('clientId'));
});

Источник: developers.google.com

...