Сделать передачу цели "Звонок" в Яндекс Метрику
Сделать передачу цели "Звонок" в Яндекс Метрику, аналогично как здесь http://help.roistat.com/pages/viewpage.action?pageId=5177354
Answer
По моим данным, Яндекс.Метрика пока что не позволяет привязывать цели к своему же собственному ClientID. Как только такая возможность у них появится, мы сразу реализуем.
ОЧЕНЬ НУЖНО! Так как Директ можно автоматически оптимизировать по целям из Метрики. А также, некоторые возможности Метрики очень удобны для аналитики сегментов посетителей.
Есть 2 варианта как фиксировать звонки в Метрике:
1) В момент начала звонка (нужен вебхук на начало звонка!) - сервер отправляет в браузер (по вебсокету или long-polling) с соответствующей сессией (кому выделен номер, куда звонят) - уведомление о звонке (если такая сессия ещё активна). И далее модуль Роистат отправляет в Метрику событие, которое будет задано в настройках. Причем я бы отправлял несколько событий: "Звонок", "Уникальный звонок" (только для 1го звонка с этого номера), "Уникальный лид" (только 1й звонок или заявка из формы). Минусы - будут учетны не все звонки, а только если сессия в браузере ещё активна.
2) (Не пробовал, нужно эксперементировать) Метрика с недавних пор позволяет загружать через API "параметры пользователей". Это не Цели, но по крайней мере можно "пометить" всех пользователей, которые достигли какого-то статуса сделок. (звонок, лид, встреча, продажа и т.д.). Минус - это не Цели, поэтому возможности анализа в Метрике ограниченны.
В настройках сценария добавили webhook в начале звонка.
Подойдёт ли такая реализация? Сейчас webhook отправляется для каждого входящего звонка.
Большое спасибо за это нововведение! Вебхук на начало звонка передает roistat_visit? Если да, то тогда просто будет отправить сообщение в соответствующую сессию браузера и там уже отправить цель в Метрику.
Да, информация о номере визита передаётся в вебхук. Подробнее: http://help.roistat.com/pages/viewpage.action?pageId=4587904
Ого, вижу что -то круто появилось.
Получается, теперь Метрика может отслеживать конверсию по звонкам?
А как настроить этот webhook? может что готовое или около того есть..
Ого, вижу что -то крутое появилось.
Получается, теперь Метрика может отслеживать конверсию по звонкам?
А как настроить этот webhook? может что готовое или около того есть..
Нужно самому программировать - и серверный и браузерный скрипт. Наличие веб-хука на начало звонка - это только 30% от задачи "Отправлять в метрику событие Звонок"
Написали в Яндекс.Метрику. У них пока не реализована функциональность передачи оффлайн-конверсий, без этого мы не можем передавать цель "Звонок".
Как только у них появится такая возможность, мы примемся за реализацию.
Что-то они и не сильно хотят эту функциональность делать :)
Как я и писал выше, технически ВОЗМОЖНО передавать цель Звонок в Метрику, но только для 60-80% пользователей, которые звонят не отходя от браузера.
Я пользовался коллтрекингом Колибри и они прекрасно передавали в яндекс метрику эти данные от звонков. Я прописал определенный JS событие. Я просто прописал идентификатор цели который они мне сообщили. Почему не возможно сделать так в ройстат?
Посмотрел ещё раз документацию Яндекс.Метрики. К сожалению, пока нет возможности передавать цель по API, а для офлайн-событий - это единственно возможный вариант.
Не единственный, а самый правильный.
Я уже писал, как можно отправлять в Метрику событие Звонок для 60-80% звонков.
Вот алгоритм:
1) Когда сервер "выдает номер" браузеру, он запоминает соответствие "id-сессии" => "тел номер" , в базе или временном файле.
2) Скрипт в браузере устанавливает постоянное соединения с сервером, для получений извещений о звонках (по вебсокету или long-polling)
3) В момент начала звонка (срабатывает вебхук на начало звонка) - сервер вычисляет наиболее вероятную сесиию (кто звонит), и отправляет в браузер с этой сессией (кому выделен номер) - уведомление о звонке (если такая сессия ещё активна).
4) Если этот браузер сейчас на сайте, то скрипт в браузере - получает извещение о звонке и отправляет в Метрику событие, которое будет задано в настройках, или исполняет колбэк функцию, заданную пользователем.
Реализация с comet понятна, но я думаю, вы понимаете, почему она не рассматривается.
1. Точность гарантированно далека от 100%. Я даже не берусь судить будет она там 90 или 50. Она всегда будет неизвестной. При этом не только из-за того, что не все юзеры будут держать браузер открытым, но и из-за того, что кроссдоменное взаимодействие через ajax поддерживается не всеми браузерами и не у всех включено (даже если сервер отдает все заголовки и тп). То есть накладываются еще технические ограничения.
Принимать управленческие решения на основе неизвестной (и гарантированно низкой) точности данных к сожалению нельзя. Если бы мы говорили о том, что лучше это, чем ничего — то да. Но есть точные цифры в том же Ройстате, есть точные цифры в отправленных в GA целях. На их фоне рандомные цифры в метрике просто бесполезны.
2. В контексте первого пункта стоимость реализации этой задачи довольно высока. То есть это не просто экспериментальный флажок добавить. Это провести серьёзную техническую работу. Сделать comet на своем сайте и сделать comet для кроссдоменной аналитики под высокими нагрузками — это не одно и то же.
Но я думаю вы не очень-то и хотели, чтобы мы делали через comet, так что я просто набросил ответочку. =)
Евгений, по моему мнение программиста, не всё так сложно, как Вы описываете.
Я бы сделал так:
1) По поводу якобы "дорогостоящей" реализации. Можно сделать проще. Вместо не-кроссбраузерного comet-ajax-json можно использовать кроссдоменные jsop-запросы, на временный статический JS-файл. Например, в моей реализации, JS-скрипт в браузере раз в 5 секунд запрашивает с сервера файл "/temp/calltracking/callback-{$clientId}.js?rnd=...". Такие запросы легко обрабатываются через Nginx и не нагружают сервер. Если звонка не было, то файл пустой. Если звонок был, то сервер генерирует в этом месте JS-файл - c командой запуска колбэка, что-то вроде "CaltrackingComponent.triggerCall( {$callDataJson} )"
2) По поводу точности. Её можно измерять. Она во многом зависит от сайта, насколько он мотивирует на звонок сейчас. Судя по исследования провайдеров коллтрекинга 80% звонят в первые 15 минут. Можно предположить что 50-80% позвонят в первые минуты, пока браузер открыт. И эту точность МОЖНО измерять. Достаточно, лишь, чтобы JS скрипт из браузера сообщал серверу о том, что "событие звонка принято и обработано". Пример формулы: Точность = (Кол-во звонков онлайн / Кол-во звонков всего) на выборке (Последние 30 звонков)
3) По поводу управленческих решений. Метрика лично мне нравиться больше GA. Удобнее и функциональнее во многих моментах (например в GA нет удобной многоуровневой группировки параметров, только 2 уровня).
И мне нужна комплексная цель в Метрике "Уникальный лид" (звонок или заявка с уникальным номером телефона) для:
(1) аб-тестов (через параметры Метрики),
(2) автоматических стратегий в Директе,
(3) выделение сегментов в Метрике для использования в ретаргетинговых рекламных кампаниях,
(4) для поиска похожих аудиторий в Яндекс.Аудитории по сегменту Метрики
Думаю, есть и другие способы применения.
Да я понимаю, что отслеживаться будет лишь 50-80% лидов. Но на первое время, как мне кажется, этого достаточно, пока не наберутся данные по продажам в Роистат.
По крайней мере это гораздо лучше, чем отслеживание только заявок из форм (около 10-20% лидов).
Обратите внимание что этот топик уже набрал 15 лайков. Значит народу нужно.
Если мои пояснения подсказали вам, как сделать фичу дещевле и проще, то мы все ждем скорейшей реализации!
Если видите ещё какие-то проблемы - пишите. Может вместе найдем решение.
С jsonp всё правильно написали, так можно делать. Обратите внимание, что дорогой я эту фичу назвал именно в контексте получаемого от нее профита. В рамках профита, который она дает, она неадекватно дорога в реализации и поддержке на дистанции.
Голосуют люди за реализацию с высокой точностью. Но если я ошибаюсь, и наших пользователей действительно устроит неточная реализация, то конечно я готов пересмотреть свою оценку.
Пока что вы один =)
А как вам такой вариант: сделайте просто php скрипт (на который натравливать вебхук на начало звонка) и выложите его на гитхабе или у себя в справке, пусть юзеры на свой хостинг ставят и используют, Будет ли это дешевле в поддержке и безопасно в плане защиты интеллектуальной ценности от конкурентов?
А можете поподробнее описать по шагам, что я, как пользователь Roistat, должен сделать, чтобы у меня заработала передача звонков в метрику? А то я не уверен, что правильно вас понял.
Например,
1. Кладем php скрипт к себе на сервер
2. Копируем дополнительный JS код в HTML на сайт (этот код будет держать long polling и отправлять цели в метрику)
3. Прописываю адрес к php скрипту в настройках коллтрекинга в качестве вебхука на старт звонка
4. ...
4. Прописываем все настройки в конфиг файле, в том числе путь к папке с временными файлами (если нестандартный путь)
5. На сервере назначаем нужные права доступа к папке временных файлов.
То еcть php скипт - это комплекс файлов в отдельной папке, например:
[roistat-callhook]
- readme.md
- callhook.php
- config.php
- callhook.js
- RoistatCallhook.class.php
- usage-example.html
- [temp]
Указывать ID метрики нет смысла, так как найти все счетчики можно автоматически внутри JS-скрипта
Плюс еще для Long Polling устанавливаем push stream module для nginx =)
Но можно упростить и сделать просто polling, то есть слать 1 запрос раз в несколько секунд и не держать соединение открытым. Тогда дополнительная настройка nginx не понадобится.
Я как-то сомневаюсь, что многим людям это действительно нужно. Скорее всего те, кто готов настолько заморочиться, могут и сами написать себе такой скрипт. =)
Я не очень глубоко разбираюсь в разных видах "polling". Как правильно назвать то, что я предлагал ранее - раз в 5 секунд запрашивать с сервера статический js файл (в формате jsonp и без долгого соединения) из папки временных файлов?
В этом случае ничего на сервере ставить не нужно. И вся нагрузка ложиться на стандартный nginx.
В общем, я понял мысль. Не будем сейчас вдаваться в мелкие детали.
Пока что актуальна последняя фраза предыдущего сообщения. То есть мы считаем, что такая реализация подойдёт слишком маленькому проценту аудитории. Проблему большинства мы при этом не решим.
На прошлой неделе Яндекс добавили возможность отправлять цель по API. В течение пары недель сделаем возможность отправлять цель "Звонок" в Метрику.
Ну наконец-то Яндекс созрел для оффлайн-конверсий. Если не ошибаюсь, вот это API:
https://tech.yandex.ru/metrika/doc/api2/management/offline_conversion/upload-docpage/
Такая возможность стала особенно актуальна при настройке доп. фраз в директе по конверсионным целям.
Но похоже разработчики не особо рвутся ее внедрить.
Андрей, задача стоит в плане. Постараемся сделать этим летом, более точно сейчас сказать не могу.
Очень очень ждём в списке: https://tech.yandex.ru/metrika-calltracking/ ! Нужна эта возможность, чтобы корректировать ставки в Директе по сегменту "Достигшие цели". Не затягивайте, пожалуйста!
Работу над интеграцией заканчиваем. Скорее всего возможность передавать звонки в Метрику появится в течение пары недель.
В настройках сценария добавили возможность включить передачу звонков в Яндекс.Метрику:
Алена, инструкции пока нет. В Метрике ничего настраивать не нужно, звонки будут отображаться на вкладке "Звонки".
Добрый день.
Если вы про отправку целей в Яндекс Метрику, то должно работать. Напишите, пожалуйста, в нашу техподдержку, ребята вам помогут.
Customer support service by UserEcho
По моим данным, Яндекс.Метрика пока что не позволяет привязывать цели к своему же собственному ClientID. Как только такая возможность у них появится, мы сразу реализуем.