Google Analytics - одностраничный сайт - отслеживание кликов - PullRequest
2 голосов
/ 24 августа 2011

Сайт, о котором идет речь http://getstefan.com

Это сайт с одной страницей портфолио, и я попытался с помощью jQuery добавить отслеживание кликов в Google Analytics к каждому тегу привязки на сайте в надежде отследить, где люди нажимают. Существует скрипт, который добавляет уникальный идентификатор для каждой привязки на странице, поэтому я установил тайм-аут, чтобы убедиться, что отслеживание кликов в Google Analytics будет установлено после назначения идентификатора. Вот так:

jQuery(window).load(function(){
        setTimeout(loadOnClick,8000)
    });

    function loadOnClick() {
        jQuery('a').each(function(){
            jQuery(this).attr("onclick", "_gaq.push(['_trackEvent', 'anchor', 'click', '" + jQuery(this).attr('id') + "']);" );
        });
    }

Что приводит к созданию ссылки следующим образом:

<a href="http://getstefan.com/wp-content/themes/inc v2/downloads/CV-StefanHinck-FR.pdf" id="cv" onclick="_gaq.push(['_trackEvent', 'anchor', 'click', 'cv']);"></a>

Все выглядит хорошо. Проблема в том, что когда я смотрю на аналитику, единственные зарегистрированные клики помечаются как «без названия»

Кто-нибудь знает, что я здесь не так делаю?

Ответы [ 3 ]

2 голосов
/ 23 июля 2012

Могу ли я предложить немного более компактную версию?

Кроме того, это не относится к id якоря, оно использует href, может подойти для базовых сценариев (т. Е. Еслидве ссылки направляют пользователя на один и тот же URL-адрес, и вы не будете знать, какая ссылка внесла количество посещений.) Если вы добавите id s к своим якорям, просто замените .attr('href') на .attr('id').

jQuery(document).ready(function() {
    jQuery('a').click(function() {
        _gaq.push(['_trackEvent', 'anchor', 'click', jQuery(this).attr('href')]);
    });
});  
2 голосов
/ 23 июля 2012

Помимо хорошего сообщения @Babak Naffas, помните, что _gaq.push вызов инициирует HTTP-запрос.

Если ваш сервер работает быстро, вполне возможно, что ссылка, по которой щелкнул пользователь, загружается до вызова Google Analytics, и в этом случае ничего не будет отслежено.

2 голосов
/ 24 августа 2011

Первый У ваших якорей нет назначенного идентификатора, поэтому код делает именно то, что должен сообщать «неопределенный» в качестве значения для чего-то, что не существует.Например,

<a class="entry-link" href="http://getstefan.com/portfolio/interior-design-logo/"></a>

Секунда , не используйте таймер.

jQuery(window).load(function(){
        setTimeout(loadOnClick,8000)
    });

следует заменить на

jQuery(document).ready(function(){
        loadOnClick();
    });

, чтобы выне нужно ждать 8 секунд и может просто назначить все, когда DOM готов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...