Клиент — мы не можем увеличивать рекламный бюджет на контекстную рекламу, так как не видим «расход/доход», а лиды не все конвертируются в продажи.
Агентство — внедряйте AmoCRM, будем интегрировать с Google Analytics
Клиент — у нас нет такого объема лидов, это дорого, долго и сложно
Агентство — ок, тогда мы не можем ничего сделать
С помощью webhook пушим лиды в Google Sheets через Zapier, а из Google Sheets пушим данные в Google Analytics с помощью того же Zapier.
Какие у нас могут быть источники лидов?
У 80% сервисов есть такая функция, как webhook, например, при звонке на динамический номер, коллтрекинг отправляет данные о посетителе на URL, который мы укажем.
Мы можем помочь вам настроить контекстную рекламу, оставьте заявку или напишите в чат.
Какой URL нам указывать? — Нам нужен механизм, который может принять данные, выбрать из них, что нам нужно, и вставить их в Google Sheets в виде новой строки. Эту задачу выполнит сервис Zapier, будучи коннектором.
Далее нам нужен механизм, который будет проверять изменения в Google Sheets и при изменениях отправлять строки в Google Analytics.
Итого:
Источник > Zapier > Google Sheets > Zapier > Google Analytics
Логичнее всего будет начать с источников, давайте на реальном примере реализуем связку. В нашем случае в качестве источников выступает коллтрекинг Roistat и формы на сайте.
Переходим на сайт zapier.com и регистрируемся, нажимаем Make a Zap!
После этого откроется рабочее окно, давайте разберемся в интерфейсе:
Выбираем встроенный коннектор:
Нажимаем Catch Hook и Save + Continue:
Переходим на вкладку Set Up Webhook и копируем URL для приема вебхук, пусть пока лежит в буфере.
Переходим на Set Up Options и нажимаем Continue:
Теперь нам предлагают сделать тестовый запрос по вебхуку, мы параллельно открываем ROIstat и переходим в настройки сценария коллтрекинга:
Внутри вставляем наш URL, применяем и сохраняем сценарий, теперь нужно зайти на сайт и совершить тестовый звонок. Надеюсь, что коллтрекинг у вас работает корректно.
По документации ROISTAT вебхук передает следующие данные
После звонка вы увидите в Zapier, что он получил вебхук, нужно нажать Continue и сделать следующий виджет.
Задаем название для коннектора Get from ROISTAT, пока не забыли. В поиске вводим и выбираем Google Sheets
Далее во вкладке Find or Create Row выбираем Lookup Spreadsheet Row:
Далее подключаем свой аккаунт в Gmail:
Создаем у себя в Google Drive новую таблицу, где у нас будут храниться все данные и вводим названия колонок. В нашем случае это:
Далее в Zapier во вкладке Edit Options выбираем название созданной таблицы и внутреннюю вкладку в ней:
Нужно понимать, что по коллтрекингу у нас есть повторные звонки, и было бы неправильно создавать новые лиды (строки), которые дублируют предыдущие. Для этого перед каждым добавлением строки (лида) мы по колонке Контакт (номер телефона) ищем, есть ли в ней уже такой номер телефона, который мы хотим добавить. Напомню, что номер телефона мы до этого уже получили по вебхуку.
Далее в поле Lookup Column указываем название колонки, в которой будем искать дубль, а в поле Lookup Value само значение, которое будем искать:
Далее ставим галочку на Create Google Sheets Spreadsheet Row if it doesn’t exist yet? (Хотите ли вы добавлять новую строку, если дубль не найден?)
Теперь у нас автоматически появляются колонки из таблицы, которые мы создали ранее. Для каждой колонки нам нужно выбрать значение и вебхука, которое мы получили ранее. То есть, потом эти значения будут вставляться в колонки, которые мы сейчас выберем.
Нажимая на поле, у нас появляется выпадающий список с название поля и значением, которые содержит вубхук из Роистата.
Например, в колонку «Дата» мы хотим вставлять значение «Date» вебхука, и так нужно сделать для каждого поля:
Нажимаем Continue и отправляем тестовую строку Fetch & Continue:
Колонка | Вебхук |
---|---|
Источник лида | Звонок (это константа) |
Дата | Date |
Имя | |
Контакт | Caller |
Google Client ID | google_client_id |
Источник | marker |
URL | landing_page |
Выручка | |
Статус сделки | |
Качество лида | |
Комментарий (если есть) |
Все, теперь Zapier предлагает нам активировать коннектор, что мы с радостью делаем. Первый коннектор готов:
У нас есть таблица, в которую поступают новые лиды, теперь нужно научить клиента взаимодействовать с ней и фиксировать продажи.
Для этого ранее мы создали 4 колонки:
Колонка | Описание |
---|---|
Выручка | Сумма сделки |
Статус сделки | Фиксированный набор статусов |
Качество лида | Фиксированный набор значений |
Комментарий (если есть) | Произвольное поле |
С выручкой все понятно, как сделать фиксированный набор значений, для этого создаем отдельный лист и для каждого поля делаем набор значений для выбора:
Нажимаем правой кнопкой мыши на ячейку статуса и выбираем Data validation:
Появляется окно с настройками, в нем нажимаем на табличку, чтобы выбрать значения для выбора:
Выбираем диапазон статусов:
Все, теперь у нас в поле «Статус» есть фиксированный набор:
Аналогично делаем с колонкой «Качество лида» и выбираем грейдинг лида, лучше делать это в цифрах.
Далее отправляем клиенту такую вот инструкцию по взаимодействию с таблицей.
Для этого создаем новый коннектор Make a Zap!
Задаем имя коннектора Google Sheets to Google Analytics, выбираем Google Sheets в качестве виджета, как делали ранее, но теперь выбираем не создание новой строки, а New or Updated Spreadsheet Row (Проверка новых или обновленных строк):
Выбираем аккаунт, как делали ранее, повторяться не будем, далее выбираем тот же документ на Google Drive, лист и Trigger Column (Триггер-колонка). Суть в том, что коннектор каждые 15 минут проверяет лист и смотрит на триггер-колонку, в нашем случае, это «Статус сделки», если значение в ней изменилось, то он отправляет данные в Google Analytics.
Например, у нас был лид, мы добавили по нему статус «Продано», коннектор видит это и отправляет данные в Analytics. Ок, но как отправлять только при изменении на «Продано» и не отправлять «В обработке»?
Нужно сделать условия и фильтры:
Тестируем виджет, нажимаем Fetch & Continue, чтобы получить данные для создания следующего виджета.
В качестве следующего виджета выбираем Filter:
Выбираем Only continue if..
Выбираем в первом поле колонку «Статус сделки», далее (Text) Contains и «Продано»,
Итого у нас получается условие:
Но нам нужно отправлять данные в Google Analytics в 3-х случаях: «Отказ», «Продано» и «Думают». Сейчас мы отправляем только при «Статус сделки» = «Продано», поэтому добавляем еще два условия OR на «Отказ» и «Думают».
Нажимаем Fetch & Continue и видим, что он проверил последнюю строку и говорит, что она не подходит ни под одно условие, нам так и нужно, так как у нас нет условия на статус «В обработке».
Наш следующий виджет, это Google Analytics:
Выбираем Create a Measurement:
Авторизация через аккаунт, далее выбираем ваши Account (аккаунт) и Property (сам счетчик), для Type (тип) выбираем Event Tracking:
Далее задаем параметры события:
Event Category (Категория события) — Пишем константу «Статус сделки»
Event Action (Действие события) — Передаем значение
Event Label (Просто еще одно поле) — Передаем показатель качества лида
Event Value (Сумма, которую принесло событие) — Просто цифра, в нашем случае, мы хотим передать сумму сделки.
Custom User ID (Google Client ID) — без этого значения GA не поймет, с какого канала пришел клиент, то есть мы не сможем понять, что изначально клиент пришел с контекста.
Нажимаем Continue и Send Test To Google Analytics, важно заметить, что мы не увидим событие в Google Analytics, так как коннектор отправляет запрос в дебаг-моде, это как бы тестовый режим GA, чтобы не портить реальную статистику тестами.
В ответ мы получим такое окно, нам важно, чтобы valid было равно true, это значит, что запрос в GA валидный.
Если есть проблемы, то можно поискать их в hit, это сам запрос, который был составлен.
Активируем коннектор:
Меняем значение последней строки в таблице на «Продано»:
Переходим на домашнюю страницу Dashboard в Zapier и у нашего нового коннектора нажимаем Run (запустить):
Появится уведомление, что коннектор обнаружил уведомления в 2-х строках и отправил 2 события в GA:
Проверим, что GA получил эти события:
Создаем цель в GA на событие «Статус сделки» — «Продано»:
Создаем аналогичные цели для других статусов:
Теперь мы полностью завершили цикл и сделали сквозную аналитику, но у нас по-прежнему не учитываются лиды из форм на сайте.
Для этого ставим разработчику проекта задачу сделать webhook при отправке форм с сайта, это простая задача, которая не требует много времени.
Перед постановкой задачи вы должны учитывать несколько моментов.
Процедура аналогична настройке коннектора для ROIStat, поэтому постараемся без подробных описаний. Создаем новый коннектор Make a Zap и выбираем Webhooks виджет, в нем Catch Hook:
Ссылку для приема вебхуков отдаем разработчику, нажимаем Continue и в разделе Edit Options тоже Continue, далее нам предлагают протестировать URL, для этого нужно как-то эмитировать вебхук — заходим на hurl.it
Вставляем URL в поле Destination и выбираем POST из выпадающего списка:
Далее в блоке Parameters нажимаем Add Parameters и добавляем параметры (колонки), которые мы хотим передавать, в значениях указываем тестовые значения и нажимаем Launch Request.
Ниже получаем:
Это значит, что запрос ушел и был принят, теперь в Zapier нажимаем OK, I did this:
Следующий виджет, это Google Sheets, в нем выбираем Create Spreadsheet Row:
Далее выбираем Gmail аккаунт, документ и лист внутри, как делали ранее. Во вкладке Edit Template указываем соответствие между поступающим запросом с колонками в таблице:
Далее тестируем и смотрим, как в GS появится новая строка с лидом. После того, как мы убедились, что коннектор работает, можно еще раз отправить вебхук с hurl.it
hurl.it
Копируем запрос:
Заходим на Hit Builder, вставляем запрос и нажимаем Validate hit:
При добавлении нового столбика все настройки сбиваются в виджетах. Можно смотреть историю работы коннекторов в Task History
Создаем отчет:
Настраиваем:
Учтите, что события в отчете будут отображаться с задержкой минут 15.