как проверить, установлена ​​ли пользовательская переменная Google Analytics (область сеанса)

Я пытаюсь отслеживать типы пользователей в области сеанса, используя пользовательские переменные. При каждой загрузке страницы я хочу проверить, существует ли переменная GA, и если она не установлена ​​в одно из 3 значений на основе файла cookie (посетитель, регистрация, премиум).

 TrackUser: function () {
        var index = 5; //slot 5
        var scope = 2; //set scope to session level
        var key = "UserType";
        var value;
        if (_gaq != undefined) {
            _gaq.push(function () { //this is async
                var pageTracker = _gat._getTrackerByName();    //Gets the default tracker.
                var vis = pageTracker._getVisitorCustomVar(5); //this should return the 'usertype' if its been set
                //if no GA variable exists then lets set it
                if (vis == undefined) {    // !? THIS IS ALWAYS 'undefined' ?!

                    value = getUserType(); //get the users type

                    //send custom var to GA
                    _gaq.push(['_setCustomVar',
                     index,   // This custom var is set to slot #1.  Required parameter.
                     key,     // The name acts as a kind of category for the user activity.  Required parameter.
                     value,   // This value of the custom variable.  Required parameter.
                     scope    // Sets the scope to session-level.  Optional parameter.
                    ]);
                }
            });
            }

    }

Эта функция вызывается прямо перед отправкой события отслеживания '_trackEvent', поэтому может случиться так, что она не завершится до вызова '_trackEvent'. Тем не менее, не будет ли он отправлен при загрузке следующей страницы?

Или я неправильно понимаю, как GA использует файлы cookie с пользовательскими переменными?

Кстати: если есть более простой способ получить пользовательскую переменную (возможно, без отправки запроса в Google), это было бы идеально.

Обновлять

Прочитав дополнительную документацию, я понял, что _getVisitorCustomVar возвращает пользовательские переменные только в том случае, если они установлены в «области действия посетителя» (3). Google, по-видимому, отслеживает переменные «области сеанса» (2) на своем сервере и не устанавливает файлы cookie на стороне клиента. Пока я не найду более элегантное решение, я просто устанавливаю собственный файл cookie сеанса, чтобы проверить, отправил ли я информацию в GA о типе пользователя.


person NSjonas    schedule 24.09.2012    source источник


Ответы (1)


Получить значения «Область посещения» можно только из вызова API Google _getVisitorCustomVar.

person NSjonas    schedule 04.12.2012