Как настроить коллтрекинг с помощью Google Analytics, Twilio и PHP

Автор: | 31.07.2026

«Половина денег, которые я трачу на рекламу, расходуется впустую. Проблема в том, что я не знаю, какая именно половина».

— Джон Ванамейкер

Уважаемый Сол Гудман, эсквайр,

Прежде всего, хочу выразить восхищение вашей невероятно эффективной рекламой. Я не могу проехать по улицам Альбукерке, сесть на автобусную остановку или посмотреть любимые шоу на AMC, не увидев одно из ваших вездесущих объявлений «Лучше звоните Солу».

Судя по, скажем так, «экономной» производственной стоимости ваших рекламных роликов, вы, похоже, человек, который стремится выжать максимум пользы из каждого доллара маркетингового бюджета. Вы, вероятно, задавались вопросами вроде: «Действительно ли эти билборды генерируют лиды, или лучше потратить деньги на ещё один ночной телеэфир?»

Должно быть, это раздражает, ведь вы используете один и тот же номер телефона во всех объявлениях, и не можете ответить на эти вопросы. Именно поэтому важен коллтрекинг — он помогает понять, как лучше распределить ограниченный маркетинговый бюджет. К счастью, с помощью Twilio и нескольких десятков строк кода вы можете отслеживать телефонные номера в рекламе через Google Analytics менее чем за десять минут.

Если вы хотите глубже погрузиться в тему коллтрекинга и создать собственную панель аналитики, ознакомьтесь с этими подробными руководствами:

— Коллтрекинг на JavaScript с Node / Express

— Коллтрекинг на PHP с Laravel

— Коллтрекинг на Python с Flask

— Коллтрекинг на Ruby on Rails

Но если вы просто хотите быстро запустить базовую систему за десять минут с помощью Google Analytics, продолжайте читать. Для начала вам понадобится бесплатный аккаунт Twilio и сервер, на котором можно разместить PHP-файл.

Коллтрекинг от Twilio работает путём привязки уникальных телефонных номеров к каждому объявлению (или типу объявлений), которые вы хотите отслеживать.

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

На более низком уровне система коллтрекинга, построенная на Twilio и Google Analytics, выглядит так:

— Потенциальный клиент звонит на номер Twilio из рекламы.

— Twilio отправляет HTTP-запрос на скрипт, который вы настроили в личном кабинете.

— Ваш скрипт извлекает номер телефона, на который позвонили, из параметров HTTP-запроса Twilio, а затем сопоставляет этот номер с типом рекламы (в нашем случае мы жёстко закодируем эти соответствия).

— Ваш скрипт отправляет собственный HTTP-запрос в Google Analytics через Measurement Protocol API, чтобы зарегистрировать офлайн-событие «Звонок из рекламы X».

— Ваш скрипт возвращает три строки XML для Twilio, чтобы переадресовать входящий звонок на ваш основной стационарный номер.

Для реализации этого мы пойдём от обратного и сначала разберёмся, как переадресовать номер Twilio на стационарный телефон. Затем зарегистрируем входящий звонок как событие в Google Analytics.

Я увидел на билборде, что номер вашего офиса — (505) 503-4455*.

Зайдите в панель управления Twilio и купите два телефонных номера с кодом региона 505. Не беспокойтесь, в каталоге Twilio есть много легко запоминающихся номеров, ведь многие ваши клиенты:

а) испытывают снижение когнитивных способностей и

б) не имеют доступа к Google в тот момент, когда отчаянно в вас нуждаются.

Например, посмотрите на этот номер:

Видите поле (Voice) Request URL? Когда кто-то звонит на ваш новый номер, Twilio отправляет HTTP-запрос на этот URL, чтобы получить инструкции о дальнейших действиях.

Давайте напишем простой скрипт, который будет возвращать XML для переадресации звонка.

Я напишу этот код на PHP, так как его проще всего развернуть. Не знаю, каким стеком вы пользуетесь, но если вы хотите настроить коллтрекинг на JavaScript, Ruby или Python, уверен, вам будет несложно адаптировать эти шаги под нужный язык.

Когда звонок поступает на ваш номер Twilio, Twilio отправляет HTTP-запрос на URL для голосовых запросов, который вы указали в панели управления. Скрипт по этому URL должен ответить XML-разметкой в формате TwiML.

Создайте новый файл call_tracking.php и добавьте в него этот код:

Сохраните файл, затем обновите Voice Request URL для обоих ваших новых номеров Twilio, указав публично доступный URL вашего скрипта, например, http://server.com/call_tracking.php. (Кстати, если вы хотите протестировать скрипт на локальной машине без развёртывания в облаке, воспользуйтесь ngrok).

После настройки скрипта позвоните на один из ваших номеров Twilio и послушайте любимое голосовое сообщение.

Добавьте следующий массив перед строкой с заголовком, чтобы связать номера Twilio с источниками рекламы. На самом деле, **весь код, который вы увидите до конца этого письма, нужно вставить перед этой строкой**.

Убедитесь, что ваши номера записаны в формате +1XXXYYYZZZZ.

Итак, Сол, вы, вероятно, задаётесь вопросом: «Как узнать, на какой номер Twilio позвонил клиент?» Хороший вопрос. Когда Twilio отправляет HTTP-запрос на ваш скрипт, он передаёт множество параметров. Полный список можно найти здесь, но нас больше всего интересует параметр $_POST[‘To’].

Добавьте эти две строки после объявления массива, чтобы получить входящий номер Twilio и соответствующий источник рекламы:

Теперь, когда мы знаем источник входящего звонка, мы можем передать эту информацию в Google Analytics с помощью Measurement Protocol API.

Я посмотрел исходный код bettercallsaul.com и увидел, что вы уже используете Google Analytics. Это неудивительно, учитывая вашу маркетинговую смекалку и стремление экономить.

В прошлом году Google выпустил Measurement Protocol API, который, среди прочего, позволяет регистрировать офлайн-события. Согласно руководству разработчика Measurement Protocol, для регистрации офлайн-события нужно отправить POST-запрос к API, включив как минимум шесть обязательных полей:

**Версия протокола измерений**

поле:

*v*

значение: «1»

На сегодняшний день (сентябрь 2015) это версия «1», и, вероятно, она останется такой ещё некоторое время.

**Идентификатор отслеживания**

поле:

*tid*

значение: «UA-XXXXXX-X»

Это уникальный идентификатор вашего аккаунта Google Analytics. Он имеет формат UA-XXXXXX-X и указан в панели управления Analytics.

**Тип**

поле:

*t*

значение: «event»

С помощью Measurement Protocol можно отслеживать события, клики, показы, просмотры страниц, электронную коммерцию и так далее. Звонок лучше всего описать как «событие».

**Категория события**

поле:

*ec*

значение: «phonecall»

В документации Measurement Protocol сказано: «Категория — это имя, которое вы задаёте для группировки объектов, которые хотите отслеживать». Наша категория будет «phonecall».

**Действие события**

поле:

*ea*

значение: либо «billboard», либо «tv», как определено в $source.

Эти «действия» можно рассматривать как сокращение для «звонок с (билборда|телевидения)».

**Уникальный анонимный идентификатор клиента**

поле:

*cid*

значение: уникальный UUID

Это уникальный идентификатор клиента. Вам может показаться заманчивым использовать номер телефона звонящего в качестве уникального идентификатора (он доступен в $_POST[‘From’]), но в документации сказано, что CID «не должен содержать персональные данные (PII)», а должен быть в формате UUID.

Сол, я знаю, что вы не против иногда обходить правила, но здесь в этом нет необходимости, ведь генерация идентификатора так же проста, как добавление этого кода Роджера Стрингера в ваш call_tracking.php:

Преобразуйте этот массив в URL-кодированную строку:

Инициируйте POST-запрос, создав новый сеанс cURL:

Установите URL POST-запроса на конечную точку Google Analytics:

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

Включите строку с полями:

Включите опцию Return Transfer, чтобы ответ cURL не выводился в HTTP-ответе вместе с нашим TwiML:

Выполните POST-запрос:

И закройте сеанс:

Сохраните файл, откройте отчёты в реальном времени в Google Analytics и перезвоните на номер Twilio. Вы увидите новое событие, регистрирующее звонок. Чтобы отслеживать звонки за определённый период, нажмите *Поведение* в левом меню навигации, затем *События -> Основные события*. Добавьте *Действие события* в качестве вторичной метрики. Возможно, вам стоит создать пользовательский отчёт с этим выбором для удобного доступа.

Отличная работа, Сол. Вы настроили базовый коллтрекинг для рекламы и скоро получите гораздо более чёткое представление о том, как потратить следующие $100 маркетингового бюджета. В США стоимость коллтрекинга составит $1 в месяц за номер телефона и $0,03 за минуту разговора ($0,01 за входящий звонок и $0,02 за исходящий переадресованный звонок). Подробнее об этом можно узнать на странице с тарифами на голосовые услуги Twilio.

Если вы хотите отслеживать дополнительные виды рекламы, например, звонки с сайта или коллтрекинг в кампаниях PPC, просто:

— Купите ещё один номер Twilio

— Установите Voice Request URL на ваш call_tracking.php

— Добавьте строку в массив с номерами телефонов

Если вы хотите глубже изучить Measurement Protocol от Google Analytics, эти ресурсы могут помочь:

— Структура событий в Google Analytics

— Руководство разработчика Measurement Protocol от Google Analytics

И ещё раз: если вы хотите погрузиться в мир коллтрекинга, ознакомьтесь с этими подробными руководствами. Если вы хотите обсудить коллтрекинг и Google Analytics подробнее, напишите мне на @greggyb или gb@twilio.com.

*Я ввёл номер вашего офиса в наш новый сервис поиска телефонных номеров и с сожалением обнаружил, что это стационарный номер. Вы могли бы перенести его на Twilio и сделать взаимодействие с клиентами гораздо более удобным — подумайте об IVR, SMS и MMS. Пусть ваши люди свяжутся с нами.*