Client ID и отправка событий в Google Analytics с помощью Measurement Protocol

Tweet about this on TwitterShare on Google+Share on Facebook

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

Итак, представьте у вас есть лендинг, с помощью которого вы собираете заявки посетителей сайта. Часть становятся вашими клиентами. Можно создать CRM в которой обрабатывать эти заявки, а при получении от клиента оплаты, с помощью Measurement Protocol отправлять в Google Analytics событие, в параметре Value которого будет записана сумма полученного дохода.

Для этого нужно только сформировать ссылку и сделать по ней переход

http://www.google-analytics.com/collect?v=1&tid=UA-XXXX-Y&cid=123456.789123&t=event&ec=Платеж&ea=Оплата&el=Первый&ev=1000

v=1                                          // Версия протокола, здесь ничего не меняем
&tid=UA-XXXX-Y            // Идентификатор вашего Google Analytics
&cid=123456.789123   // Client ID – идентификатор посетителя. Как его получить, разберем ниже
&t=event                             // Тип хита. Оставляем без изменения
&ec=Платеж                   // Категория события. Обязательное значение
&ea=Оплата                    // Действие. Обязательное значение.
&el=Первый                   // Данное значение не является обязательным.
&ev=1000                       // Ценность события, здесь мы и передаем значение полученного дохода.

На основе этого события регистрируется достижение цели
revenue

Как получить Client ID – идентификатор посетителя?

Один из вариантов – создать скрытое поле отправляемой формы заказа, и в него копировать значение Client ID. Само значение получается с помощью следующей функции

			ga(function(tracker) {
var clientId = tracker.get('clientId');
});

Также можно воспользоваться Google Tag Manager

Создаем макрос типа “Собственный код JavaScript” следующего содержания:

		function(){ return ga.getAll()[0].get('clientId'); }
	

А вызов макроса вставить например в основном теге в виде пользовательской переменной

И если все было сделано правильно, можно создать соответствующий отчет

revenue2

Related posts:

Tweet about this on TwitterShare on Google+Share on Facebook

Client ID и отправка событий в Google Analytics с помощью Measurement Protocol: 19 комментариев

  1. Александр

    Здравствуйте, подскажите пожалуйста, не совсем понял кто или как должен происходить переход по ссылке.
    Или это уже нужно придумывать в самой CRM что-бы данные подставлялись и отправлялись или просто руками сделать подбор и просто в бить в адресе, так?

    Если я правильно понял то 1 отправка = 1 достижению цели т.е 1 транзакции?
    Заранее спасибо за ответ

    1. Олег Басманов Автор записи

      Здравствуйте.
      К примеру я в таблице гугл докса сделал мини CRM в ячейку которой вписал в виде формулы, в которой подставляется значение CID и суммы дохода
      =HYPERLINK("http://www.google-analytics.com/collect?v=1&tid=UA-XXXXX-XX&cid="&D18&"&t=event&ec=Платеж&ea=Оплата&el=Первый&ev="&F18;"send")
      Получилась ссылка, сделал переход по ней и событие отправилось. 1 переход — 1 отправка.
      Автоматическую переход-отправку думаю можно сделать, но это вопрос к программистам.

  2. Добров Константин

    Вопрос по google mesurent protocol.
    Имеем:
    День1 — Посетитель первый раз зашел на сайт (SEO)
    День2 — Посетитель второй раз зашел на сайт (Контекст)
    День3 — Третий раз зашел на сайт (Баннер) и оставил свои контакты (так же был сохранена кука «_ga»)
    День4 — Четвертый раз зашел на сайт (Прямой трафик)
    День5 — В GA был отправлен сигнал о покупки пользователем.
    День6 — Пользователь еще раз зашел на сайт (Email)
    День7 — Я смотрю статистику — откуда совершена транзакция?
    Что Я увижу? Какой источник привел ко мне покупателя?
    SEO? Контекст? Баннер? Прямой трафик? Email?

    1. Davlet

      Судя по моему тесту, источник для Client ID перезаписывается, т.к. источником пользователя, который зарегистрирован 21 октября (следовательно client ID записан в этот момент) в UA сегодня стоит UTM метка с рассылки, которая была 29 октября.

      Вопрос: Как сделать так, чтобы источник для ClientID не обновлялся?

      Если это невозможно, то посоветуйте, пожалуйста, как фиксировать первичный источник пользователя, чтобы правильно посчитать ROI каналов.

      1. Олег Басманов Автор записи

        В Аналитиксе источник в любом случае обновиться. Если только к ссылкам не добавлять UTM_NOOVERRIDE=1 по крайней мере источник рассылками не будет переписываться. Для остальных слчаев только в собственной таблице вести историю источников этого ID и все считать.

  3. Алексей

    Здравствуйте. Есть два вопроса по ClientId:
    1. Вы пишете, что значение ClientId предварительно получается с помощью функции:
    ga(function(tracker) {
    var clientId = tracker.get(‘clientId’);
    });
    То есть она должна срабатывать при загрузке страницы (помещаем в отдельный файл с js), а не при нажатии кнопки отправки?
    2. Значение ClientId необходимо отправить в CRM Битрикс24. ClientId необходимо копировать в скрытое поле через параметр Value=»»? А что нужно писать в значении параметра Value, чтобы ClientId скопировался и отправился в CRM?
    Форма:

    А затем передача в CRM по PHP:
    $postData = array(
    ‘IM_OTHER’ => $leadData[‘IM_OTHER’],
    );

    1. Олег Басманов Автор записи

      Здравствуйте. Прошу прощения за долгий ответ, надо будет что-то придумать с уведомлениями о появлении новых комментариев.
      1. я не программист и похоже, не правильно выразился, написав слово «предварительно». А для программиста это оказывается имеет большую разницу 🙂 Если функция может получать значение в момент отправки, тогда конечно нет смысла делать предварительное получение в момент загрузки страницы.
      Спасибо замечание, поправлю.
      2. Не смогу ответить в силу слабых познаний в программировании. Когда реализовывали такую схему, я работал с программистом и от меня требовалось только объяснить что я хочу получить

  4. Дмитрий

    За материал огромное спасибо! Но блять кавычки у clientId меня выбесили. Долго понять не мог, в чем ошибка.

    function(){ return ga.getAll()[0].get(clientId); }

    1. Олег Басманов Автор записи

      О, спасибо. Пришлось искать плагин на вставку кода. Иначе оказалось бесполезно — ставишь апострофы, а после сохранения получаешь кавычки

  5. Александр

    Здравствуйте. Как быстро появляються данные в отчетах переданные через М протокол?

    Если клиент отправил заявку 30. 06

    Оплата поступила 31.07

    А событие отправили в аналитику 30.08

    То получается что доход будет присвоен именно августу? 

  6. Александр

    Подскажите пожалуйста решение проблемы:

    При отправке заявки собраны CID, клиент оплатил, оплата поступила, данные в ГА переданы, но в отчетах доход присваивается как прямому трафику, хотя клиент отправил заявку с контекста. Метки есть, все размечено.

     

    1. Олег Басманов Автор записи

      Видел такую проблему — в том случае вмсто event отправлялся pageview

      &t=pageview

      . Если это не ваш случай, то напишите пример ссылки

        1. Александр

          Мой большой фейл, я почему то думал что это одно и тоже 🙁
          У меня настроена аналитика через GTM, техничски мы получаем это значение в момент загрузки страницы, но как его передать в момент отправки заявки? Т.е как запихнуть это значение в скрытое поле формы? Может сталкивались с таким.

          1. Олег Басманов Автор записи

            Это вопрос к программисту. Само значение получается с помощью функции

            			ga(function(tracker) {
            
            		var clientId = tracker.get('clientId');
            
            		});
  7. Виталий

    Вопрос. А как при изменение оплате клиентов (и изменения статус платежа на ОПЛАЧЕНО) передавать сумму сделки из Битрикс24 в GoogleAnalytics

    1. Олег Басманов Автор записи

      Незнаком с битрикс24. думаю этот вопрос нужно задать программисту специализирующемуся на этом продукте

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *