Philipp Kontsarenko
5 564

Инструкция: 3 простых шага для настройки отслеживания внутреннего промо в Universal Analytics

Аналитик и SEO-специалист Константин Швацкий опубликовал в своем блоге пошаговую инструкцию о том, как настроить отслеживание эффективности баннеров и промо-материалов на сайте при помощи инструментов Universal Analytics.

Когда у меня появилась задача проанализировать внутреннее промо одного клиентского сайта, я поступил опрометчиво: разметил ссылки UTM-метками. Почему опрометчиво? Потому что как только посетитель кликнет по размеченному элементу (баннеру, ссылке), система будет ассоциировать все его действия на сайте с новым источником трафика, поскольку посчитает, что начат новый сеанс. Привязки действий посетителя (в том числе и достижений целей) к первоначальному источнику уже не будет. 

Чуть позже я обнаружил свою ошибку и в поисках альтернативного решения наткнулся на статью « Как настроить Google Analytics для отслеживания внутреннего промо». Статья описывает два способа настройки Google Analytics, при помощи которых можно начать отслеживать внутреннее промо без потери данных об источниках переходов. Проблема в том, что эти способы работают для сайтов, которые используют классическую версию Google Analytics (библиотека ga.js). Аналитикам, использующим Universal Analytics (библиотека analytics.js), автор рекомендует самостоятельно модифицировать предлагаемые в статье решения. 

Один из комментаторов предложил альтернативу самостоятельной модификации кода старой версии — плагин расширенной электронной торговли (Enhanced Ecommerce) для analytics.js. О настройке плагина для отслеживания внутренних рекламных акций мы и поговорим. 

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

1. Включаем электронную торговлю в нашем рабочем представлении

Для этого в интерфейсе Universal Analytics переходим в раздел «Администратор» (Admin), выбираем нужное нам представление (View) и переходим в «Настройки электронной торговли» (E-commerce Settings):

На открывшейся странице нажимаем переключатель «Включите электронную торговлю» (Enable E-commerce) и кликаем по «Далее» (Next step):

Нажимаем переключатель «Включение отчетов для расширенной электронной торговли» (Enable Enhanced E-commerce Reporting) и кликаем по кнопке «Отправить» (Submit):

2. Подготавливаем страницу с промо-материалами к отслеживанию

Теперь, чтобы настроить отслеживание, модифицируем код Universal Analytics нашей страницы с учетом количества промо-материалов, их расположения и принадлежности к конкретным рекламным акциям. 

Сначала установим плагин расширенной электронной торговли, потому что в стандартной версии библиотеки analytics.js отслеживание расширенной электронной торговли не предусмотрено. Чтобы загрузить плагин, используем следующую команду:

 ga('require', 'ec'); 

Выполняем команду после того, как создали объект трекера, но до того, как задействуем функции расширенной электронной торговли. То есть код Universal Analytics нашей страницы станет таким:

 <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-XXXXXXXX-X', 'auto'); ga('require', 'ec'); ga('send', 'pageview'); </script> 

Затем передаем данные о показах промоматериалов. Для этого регистрируем показы при загрузке страницы и передаем их с начальным просмотром экрана командой ec:addPromo объекта promoFieldObject. Код Universal Analytics станет таким:

 <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-XXXXXXXX-X', 'auto'); ga('require', 'ec'); ga('ec:addPromo', { // Детали о первом промоматериале, передаваемые через объект promoFieldObject. 'id': 'PROMO_1', // id промоакции. Обязательное поле (string). 'name': 'Spring Sale', // Название промоакции (string). 'creative': 'spring_banner1', // Материал (string). 'position': 'banner_slot1' // Позиция материала (string). }); ga('ec:addPromo', { // То же, но для второго материала. 'id': 'PROMO_1', 'name': 'Spring Sale', 'creative': 'spring_banner2', 'position': 'banner_slot2' }); ga('ec:addPromo', { // Детали о третьем материале. 'id': 'PROMO_1', 'name': 'Spring Sale', 'creative': 'spring_banner3', 'position': 'banner_slot3' }); ga('send', 'pageview'); </script> 

Для отслеживания кликов по промо-материалам сначала идентифицируем материал, по которому кликнули, а затем посылаем действие типа promo_click вместе с событием. Для этого напишем функцию, которую будем вызывать каждый раз, когда происходит промо-клик:

 <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-XXXXXXXX-X', 'auto'); ga('require', 'ec'); ga('ec:addPromo', { // Детали о первом промоматериале, передаваемые через объект promoFieldObject. 'id': 'PROMO_1', // id промоакции. Обязательное поле (string). 'name': 'Spring Sale', // Название промоакции (string). 'creative': 'spring_banner1', // Материал (string). 'position': 'banner_slot1' // Позиция материала (string). }); ga('ec:addPromo', { // То же, но для второго материала. 'id': 'PROMO_1', 'name': 'Spring Sale', 'creative': 'spring_banner2', 'position': 'banner_slot2' }); ga('ec:addPromo', { // Детали о третьем материале. 'id': 'PROMO_1', 'name': 'Spring Sale', 'creative': 'spring_banner3', 'position': 'banner_slot3' }); ga('send', 'pageview'); </script> 

Вставляем эту функцию внутрь конструкции head страницы и вызываем ее, когда пользователи кликают по баннерам:

 //Пример страницы для нашей весенней распродажи. <html> <head> <title>Tracking promo-traffic</title> // Код Universal Analytics, который загружает плагин расширенной электронной торговли и отправляет данные о показах промоматериалов <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-XXXXXXXX-X', 'auto'); ga('require', 'ec'); ga('ec:addPromo', { 'id': 'PROMO_1', 'name': 'Spring Sale', 'creative': 'spring_banner1', 'position': 'banner_slot1' }); ga('require', 'ec'); ga('ec:addPromo', { 'id': 'PROMO_1', 'name': 'Spring Sale', 'creative': 'spring_banner2', 'position': 'banner_slot2' }); ga('require', 'ec'); ga('ec:addPromo', { 'id': 'PROMO_1', 'name': 'Spring Sale', 'creative': 'spring_banner3', 'position': 'banner_slot3' }); ga('send', 'pageview'); </script> //Функция, которую мы будем вызывать каждый раз, когда пользователи кликают по промоматериалам <script type='text/javascript'> function onPromoClick (id, name, creative, position) { ga('ec:addPromo', { 'id': id, 'name': name, 'creative': creative, 'position': position }); ga('ec:setAction', 'promo_click'); ga('send', 'event', 'Internal Promotions', 'click', name); } </script> </head> <body> <h1>Tracking promo-traffic</h1> // Когда происходит событие onclick одного из промоматериалов, вызываем нашу функцию onPromoClick и передаем в нее параметры: id промоакции, название промоакции, название промоматериала, позиция промоматериала. <p>Первый баннер</p> //Первый промобаннер-ссылка <a href="/first-item/" onclick="onPromoClick('PROMO_1', 'Spring Sale', 'spring_banner1', 'banner_slot1');"><img src="first-creative.jpg"></a> <p>Второй баннер</p> //Второй промобаннер-ссылка <a href="/second-item/" onclick="onPromoClick('PROMO_1', 'Spring Sale', 'spring_banner2', 'banner_slot2');"><img src="second-creative.jpg"></a> <p>Третий баннер</p> //Третий промобаннер-ссылка <a href="/third-item/" onclick="onPromoClick('PROMO_1', 'Spring Sale', 'spring_banner3', 'banner_slot3');"><third-creative.jpg"></a> </body> </html> 

Привет от Капитана Очевидности:

  1. Не забудьте, что на месте UA-XXXXXXXX-1 должен стоять ваш идентификатор отслеживания.
  2. Адреса ссылок на продвигаемые промо-баннерами страницы и ссылки на промо-баннеры в нашем примере нужны для наглядности, их я просто выдумал. 
  3. Пример страницы не такой сложный, как может показаться на первый взгляд. Поэтому если вам нужно настроить отслеживание промо на сайте с большим количеством страниц, то придется попросить помощи у квалифицированного разработчика и... показать ему эту статью.

3. Просматриваем отчеты и анализируем эффективность внутреннего промо

Готово. Теперь открываем нашу страницу и кликаем по понравившемуся баннеру или баннерам (я, например, открыл страницу и кликнул по третьему баннеру). Затем возвращаемся в Google Analyitcs, переходим на вкладку «Отчеты» и идем в «Конверсии», «Электронная торговля», «Маркетинг», «Внутренняя кампания» (Conversions, E-commerce, Marketing, Internal Promotion):

В таблице отчета видим данные по внутренним кампаниям нашего сайта. По умолчанию основной параметр таблицы — «Название внутренней кампании» (Internal Promotion Name). Мы можем выбрать основным другой параметр, чтобы сегментировать данные по нему, либо добавить к основному параметру дополнительный. Например, если добавить в качестве дополнительного параметр «Объявление внутренней кампании» (Internal Promotion Creative), то мы получим такую таблицу:

Теперь мы видим в таблице данные по просмотрам, кликам и CTR объявлений наших кампаний (на скриншоте я выделил данные по нашей весенней распродаже) и по конверсиям, которые посетители совершили после кликов по объявлениям.

Мы можем изменить способ представления данных, кликнув по одной из кнопок вверху справа над таблицей:

Представление данных после клика по кнопке «Распределение» (Percentage)

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


Присылайте собственные кейсы, в результате которых вам удалось заметно улучшить (или, наоборот, ухудшить) показатели проекта. Интересные эксперименты обязательно попадут на страницы рубрики Growth Hacks.

#кейсы #инструкция

Статьи по теме
Как настроить Google Analytics для отслеживания внутреннего промо
{ "author_name": "Philipp Kontsarenko", "author_type": "self", "tags": ["\u043a\u0435\u0439\u0441\u044b","\u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f"], "comments": 16, "likes": 14, "favorites": 5, "is_advertisement": false, "section_name": "default", "id": "7469", "is_wide": "1" }
{ "is_needs_advanced_access": false }

Комментарии Комм.

Популярные

По порядку

0

Прямой эфир

Подписаться на push-уведомления
[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } } ]