Я пытаюсь отслеживать типы пользователей в области сеанса, используя пользовательские переменные. При каждой загрузке страницы я хочу проверить, существует ли переменная 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 о типе пользователя.