Рубрика развивается при поддержке
Маркетинг
Roman Tsvigoun
1350

Как застройщик использует ClientID для построения сквозной аналитики

Группа ПСН уделяет огромное внимание анализу рекламных кампаний и старается извлечь максимальную эффективность от инвестиций в каждый канал коммуникации. В связи с этим мы стараемся выстроить грамотную систему аналитики.

В закладки

Сервис и задачи

Начнем с того, что в нашей компании используется сервис коллтрекинга Comagic. В нем у каждой заявки/звонка есть поле с ClientID Яндекс.Метрики и Google.Analytics. CllentID - это обезличенный идентификатор пользователя, который создается в Google.Analytics или в Яндекс.Метрике для каждого посетителя сайта. Именно благодаря данному идентификатору и определяется уникальный пользователь. Ниже пример полей с идентификаторами в Comagic:

ClientID в сервисе Comagic

Зная ClientID пользователя, можно посмотреть всю его историю и действия с первого посещения сайта в Google.Analytics и Яндекс.Метрике.

Пример отчета о действиях пользователя в Google.Analytics

Однако смотреть данные по каждому конкретному пользователю вручную не имеет смысла. Интереснее воспользоваться этими данными для получения первого касания пользователя с сайтом (FirstClick), чтобы оценить вклад первого источника рекламы в конверсию, так как в большинстве случаев эффективность рекламной кампании оценивается по последнему касанию (LastClick), не говоря уже о применении модели атрибуции.

Пути решения

Мы решили начать со сбора таких данных в Google.Analytics. Сначала мы добавили дополнительные поля в CRM. Соответственно, это ClientID Google.Analytics, дата и время первого касания и набор полей с разбором utm-меток. Настроили скрипт на сайте, который передает ClientID в специальный параметр Google.Analytics для взаимодействия в отчетах, а также добавляет ClientID в переменную при отправке онлайн-заявок.

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

Также можно воспользоваться Google.Analytics 360 Suite, который дает возможность «стримить» данные напрямую в Google.BigQuery– это облачное хранилище данных с высочайшей скоростью обработки огромных массивов. Как раз такое решение идеально подходит для нашей задачи. Данные по всем пользователям, которые были на сайте хранятся в независимом хранилище, также преимуществом можно считать возможность работы с BigQuery обычными SQL запросами и отсутствие возможных ограничений при подключении по API. Но стоимость инструмента Google.Analytics 360 Suite в этой цепочке достаточно высокая. Поэтому, мы решили воспользоваться сервисом Renta, который позволяет преобразовывать «сырые» данные из Google.Analytics в удобный табличный формат в Google.BiqQuery, и таким образом нам не нужно выкачивать весь «аналитикс», а достаточно забирать только данные с заданными параметрами.

Пример таблицы в Google.BigQuery

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

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

Следующим шагом обогатим данные используя Яндекс.Метрику и ClickHouse от Яндекса.

Также стоит отметить очень важный момент. Не во всех звонках может быть параметр ClientID, так как он присваивается при посещении сайта. А также может отсутствовать по причине нехватки динамических номеров у коллтрекинга. Поэтому важно обеспечить все рекламные кампании необходимым количеством динамических номеров, что существенно увеличит стоимость сервиса.

Сколько это стоит?

В основном все работы выполнялись инхаус, поэтому стоимость нашего решения - это по сути оплата двух сервисов: Google.BigQuery и Renta. Первый при нашем объеме трафика бесплатен, второй стоит 100 долларов в год. Comagic в эту стоимость не включаем, так как это основной инструмент для отдела маркетинга, который и раньше использовался на постоянной основе.

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

Надеемся, что данный материал будет полезен при построении сквозной аналитики в вашей отрасли.

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Roman Tsvigoun", "author_type": "self", "tags": ["\u044f\u043d\u0434\u0435\u043a\u0441_\u043c\u0435\u0442\u0440\u0438\u043a\u0430","\u0441\u043a\u0432\u043e\u0437\u043d\u0430\u044f_\u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430","\u043f\u0441\u043d","\u043c\u0430\u0440\u043a\u0435\u0442\u0438\u043d\u0433","google_analytics","comagic","clientid"], "comments": 9, "likes": 16, "favorites": 34, "is_advertisement": false, "subsite_label": "marketing", "id": 60749, "is_wide": false, "is_ugc": true, "date": "Mon, 11 Mar 2019 12:44:23 +0300", "is_special": false }
Какая реклама
приносит деньги?
0
{ "id": 60749, "author_id": 259201, "diff_limit": 1000, "urls": {"diff":"\/comments\/60749\/get","add":"\/comments\/60749\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/60749"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199113, "last_count_and_date": null }
9 комментариев
Популярные
По порядку
Написать комментарий...
1

Следил за client ID в сырой метрике на нескольких сайтах. Один и тот же идентификатор присваивается только одинаковым браузерам и устройствам. Ни разу не встретил такого, чтобы устройства или браузеры были разными. Сделал вывод, что кроссдевайс и кроссбраузер не работает. Был бы рад увидеть опровержения

Ответить
1

Всё так и есть. Как в GA, так и в Метрике есть проблема с кроссбраузерностью и кроссплатформой. Даже если провести простой эксперимент, зайти сначала с мобильного, потом с десктопа, то вряд ли в истории пользователей это будет один и тот же юзер. Хотя если просматривать выборочно разных пользователей, то можно увидеть заходы с мобильного устройства и десктопа. Пока это остается в рамках погрешности. В e-commerce это решается просто, достаточно присвоить user id при авторизации.

Ответить
1

Спасибо за статью. За последние годы очень многое сказано про сквозную аналитику, но есть системные насущные проблемы как идентификация клиента, который мог в пути на работу зайти по рекламе через мобильный в понедельник, закинуть в закладки и в пятницу вечером с ноутбука изучить сайт с того места где остановился, а заявку оставить с планшета или снова с мобильного через две недели (ну скажем продукт для B2B). Для яши и гугла это вообще 3 сессий, а для маркетолога теперь это 3 разных придурковатых пользователя: первый почему то ушёл с 4 блока сайта, а другой сразу спустился на 5 блок, а третьи вообще зашёл и сразу заказал. Тут маркетолог становится бесполезным т.к. собранная сквозная аналитика не правильная (спасибо, конечно, что вы рассказали очередной вариант собрать эту информацию).

К проблеме анонимности добавляются боты. Рекомендую тулом https://botfaqtor.ru/ проверить свои сайты. Удивительно, но факт в более 96% она правильные результаты дала - для себя мы отметили, что она рабочая и скоро на платную переведемся. Но, я тут больше про результаты хочу сказать, что от сайта к сайту от 20 до 50% боты ходят. Они парсят новый контент для своего блога, конкуренты заказали черный маркетинг, чтобы ваш сайт спустить в выдаче, а себя поднять - не важно. Важно, что полученные данные сквозной аналитики снова разбавляются системной проблемой анонимности и маркетолог снова идёт курить т.к. не понимает чего же этот чувак хотел когда написал запрос и кликнул рекламу и ушёл через пару секунд. Надо сайт переделывать? Тексты менять? А/В тесты через сторонние сервисы?

Проблем до сих довольно много в digital мире и вижу только, что в массе нас гиганты вроде яндекса или гугла ведут по пути максимального выгодного им, а толпа digital агентов доят своих клиентов не давая профессиональный результат. Печально как то это ((

Ответить
0

Айдар, а вы ставили блокировку ботов? Я туда два сайта добавил, потом на один зашел через инстаграм и он определил меня как бота. Досадно было очень=(( Поэтому отказался от их услуг

Ответить
1

Не тем скриптом, что от них. Надо просто их скрипт переделать "Извините, вы очень подозрительны для нашего сайта. Мы ничем не хотим вас задеть, если вы человек, но просьба кликнуть тут капчу гугла - я не робот"..."Ой спасибо - вы человек"...там текст не помню уже итоговый...вообще блокировать ботов это дело десятое. Бизнесу нужны продажи ) Но их вариант не считаю готовым решением. Нам больше для анализа их сервис нужен.

Ответить
1

Очень интересно описали ваши инструменты.
спасибо )

Ответить
1

А вы можете посмотреть всю воронку относительно конкретного источника?
Я имею в виду, что вот вы забрали Client ID, посмотрели first click, сравнили данные с CRM, увидели тех, кто совершил целевое действие (заявка, звонок), а вот дальше как?
Только в отдельный отчёт ручками собирать для каждого канала целевых клиентов и смотреть как они двигаются по воронке?
По опыту: заявок может быть много с какого то канала, а на выходе мы имеем, что креатив был неправильный. Условно у нас квартира стоит 15 млн, а там написали 5 млн. Звонков куча, канал отрабатывает отлично, каждый третий целевой, а на выходе мы имеем, что денег у данной ЦА неть.

Как эту проблему решали?

Ответить
0

Что касается firstclick, то это интересно смотреть только на уровне ДДУ, а не целевых звонков. А если говорить про анализ каналов, то тут мы используем другой отчет, где смотрим траты по каждому рекламному источнику и динамику обращений по дням с общей воронкой обращений в брони в рамках одного источника по заданному периоду. Как раз на таком графике можно увидеть отклонения от нормы, идут ли целевые звонки, которые конвертируются в брони или "звоночки", которых много и со всплесками по дням и в итоге никуда не конвертируются. А дальше уже можно анализировать глубже до уровня креативов.

Ответить
0

Всплеск «звоночков» по дням - это не всегда плохо или фрод. Тут же тоже огромное количество факторов влияет. Если мы говорим про соц сети, то изменение таргетов тоже сильно влияет на количество звонков. Или может быть такая история, что люди оставляли заявки на звонок и их прозвонили одним днём. Причём часть может быть целевыми, а часть нет.

Анализ вплоть до креативов - это конечно очень интересно, но начинать надо с анализа отдела продаж, если вдруг есть какие то вопросы к каналу:)

Ответить
{ "page_type": "article" }

Прямой эфир

[ { "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": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "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" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cgxmr", "p2": "gnwc" } } } ] { "page_type": "default" }