Настройка Facebook Conversion API, или как правильно составить ТЗ на CApi
В 2021 году все мы столкнулись с ужесточением сбора данных, связанных с изменениями политики конфиденциальности Apple и сбора данных о пользователе на IOS 14. Эти изменения сильно повлияли непосредственно на сам сбор событий через инструменты Facebook пиксель и Facebook SDK, изменение окна атрибуции, а также на охват аудитории с продукцией Apple.
Конечно все это привело к увеличению цены за конверсию и некорректный анализ наших рекламных кампаний. Чтобы исправить ситуацию, Facebook внедряет такой инструмент, как Conversion API. Сейчас разберемся, что же это такое.
Вот что пишет сам Фейсбук:
“API Conversions обеспечивает прямую и надежную связь между социальной сетью и маркетинговыми данными (например, событиями на веб-странице и офлайн-конверсиями) c вашего сервера, сайта или из системы CRM. Эти данные помогают выполнять персонализацию и оптимизацию рекламной деятельности, а также измерять результаты на Facebook. Так вы сможете показывать объявления людям, которые с большей вероятностью ими заинтересуются.
Если говорить проще, то инструмент СApi помогает нам собрать данные о пользователе, которые не получилось собрать с помощью пикселя Facebook и Facebook SDK, и передает их Facebook из сервера. С помощью этих данных реклама будет быстрее оптимизироваться и понимать, кто наш потенциальный покупатель.
Как мы видим, Conversion Api — очень полезный инструмент, и, в связи с последними изменениями в IOS 14, он стал просто необходимым для использования.
Как же настроить CApi и где его найти? Перед начало проверьте, что Facebook Pixel и события пикселя уже установлены.
Приступим к практической части
Переходим в Event Manager
Добавляем событие “Использование API Conversions”
Выбираем способ настройки, “Внедрение API вручную” либо “Использовать партнерскую интеграцию”. Чтобы посмотреть, на каких платформах возможна партнерская интеграция, необходимо перейти в справки Facebook по ссылке.
Все эти настройки по API Conversions мы также можем найти, перейдя в “Настройки” Event Manager
На примере рассмотрим, какие события и параметры будем использовать с помощью ручной настройки. Выбираем данную настройку, жмем “Продолжить”.
Выбираем события, которые хотим отследить с помощью Conversions API. Есть также возможность добавить дополнительные события. Выбрали, жмем “Продолжить”.
Мы перешли к выбору параметров. На примере покажу настройку параметров для 3 главных событий в e-commerce. По этим событиям будет оптимизироваться наша реклама. Остальные параметры настраиваются по такому же принципу.
Важно: Чтобы не возвращаться в будущем к этому разделу, выпишите в таблицы выбранные события и все параметры, настроенные для каждого события. Они будут нужны для составления ТЗ.
- Add to Cart (Добавление в корзину).
- Initiate Checkout (Начало оформление заказа).
- Purchase (Покупка).
Некоторые параметры информации о событии уже стандартно расставлены. Важно выделить такие, как ID события (этот ID используется для удаления дубликатов одного и того же события, отправленного и с сервера, и с браузера), Отмена подписки (если для события необходима оптимизация показа рекламы, то этот параметр не выбираем).
Что касается параметров информации о клиенте, тут тоже все просто. Необходимо собрать данные клиента, чтобы соц. сеть могла применять их с целью показа рекламы тем, кто с большей вероятностью совершит конверсию.
Все нужное можно найти:
Обзор стандартных событий пикселя Facebook
Параметры серверных событий
Параметры данных пользователя
После выбора событий и их параметров мы перешли к заключительному этапу. Нам предлагается отправить инструкцию девелоперу или реализовать API самостоятельно. Если будем формировать и отправлять ТЗ разработчикам, можем смело нажать “Завершить”.
Если мы хотим самостоятельно реализовать, то соответственно выбираем самостоятельную настройку, и нам откроется руководство.
В руководстве нам важно будет сгенерировать маркер доступа, сделать его копию и сохранить.
Если вы не выбирали самостоятельную реализацию, то найти и сгенерировать маркер доступа можно в “Event Manager”, “Настройки”.
Тестирование событий через API
Для тестирования ответа сервера нужно составить тело запроса. Для этого пригодится инструмент Payload Helper. Данный инструмент позволяет сгенерировать готовый код. Для этого указываем нужные параметры для нашего типа события. Код не должен выдавать ошибок. Готовый код копируем, он нам понадобится дальше.
Следующий инструмент, который нам нужен, это Facebook Graph API Explorer. Он помогает выполнять API запросы и отслеживать полученную в ответ информацию. Перешли. Выбираем последнюю версию API и создаем новый Post реквест.
Далее нам понадобится добавить в строку ID нашего Facebook пикселя/events. Найти ID пикселя получится в “Event Manager”, “Настройки”.
- Добавляем в строку ID пикселя/events.
- В “Маркер доступа” прописываем сгенерированный маркер.
- Переключаемся на JSON.
- Вставляем скопированный ранее код тела запроса.
Теперь нужно открыть раздел “Тестирование событий” в “Events Manager” и скопировать значение TEST.
Перед значением TEST следует указать параметр "test_event_code" и вставить после ] в теле запроса. Выглядит это так:
Нажимаем “Отправить”, и в середине окна появится информация о полученном событии. Это значит, что мы все сделали правильно.
Возвращаемся в “Events Manager” в раздел “Тестирование событий” и должны увидеть завершенную обработку.
Как правильно составить ТЗ на CAPI для разработчика
Итак, мы протестировали серверный запрос на тестовое событие, убедились, что все работает. Теперь нужно грамотно составить наше ТЗ для разработчика. Принцип будет похож с составлением ТЗ для пикселя Facebook. Ниже приведу пример готового ТЗ сразу для Pixel Facebook и Conversion API. На этом этапе нам понадобится таблица с данными событий и параметров, которые мы выписали ранее.
№ | Этапы и события | Триггер | Место активации триггера | Параметры события Facebook Pixel | Параметры события под CAPI |
1 | Pageview | Все веб- страницы сайта | https://yoursite. com | <!-- Facebook Pixel Code --> | Event parameters: Event time Event name Event source URL Action source Event ID Opt out Customer information parameters: Email address First name Surname Phone number Postcode Client IP address – do not hash Client user agent – do not hash Browser ID (fbp) cookie – do not hash Subscription ID – do not hash Click ID (fbc) cookie – do not hash |
2 | Search | Запрос в строку поиска на сайте | Попап строки поиска после подтверждения ввода | <script > | Event parameters: Event time Event name Event source URL Action source Event ID Opt out Search string Customer information parameters: E-mail address Name Name Surname Phone number Postcode Client IP address – do not hash Client user agent – do not hash Browser ID (fbp) cookie – do not hash Subscription ID – do not hash Click ID (fbc) cookie – do not hash |
3 | ViewContent | Срабатывает каждый раз, когда пользователь заходит на карточку товара | https://yoursite. com/productname | <script> fbq('track', 'ViewContent', { value: ?, currency: '?', content_ids: '?', content_name: '?', content_category: '?', content_type: '?' , eventID: '?', }); </script> | Event parameters: Content type Content IDs Event time Event name Event source URL Action source Event ID Opt out Content category Currency Value Content name Customer information parameters: Email address First name Surname Phone number Postcode Client IP address – do not hash Client user agent – do not hash Browser ID (fbp) cookie – do not hash Subscription ID – do not hash Click ID (fbc) cookie – do not hash |
4 | Contact | Все нажатия пользователем по номерам телефона, почте на сайте | https://yoursite. com | "<script> fbq('track', 'Contact', { eventID: '?', }); </script> " | Event parameters: Event time Event name Event source URL Action source Event ID Opt out Customer information parameters: Email address First name Phone number Postcode Client IP address – do not hash Client user agent – do not hash Browser ID (fbp) cookie – do not hash Subscription ID – do not hash Click ID (fbc) cookie – do not hash |
5 | Complete Registration | Срабатывает при успешной регистрации пользователя на сайте | https://yoursite. com/account | """<script> fbq('track', 'Registration', { eventID: '?', }); </script> """ | Event parameters: Event time Event name Event source URL Action source Event ID Customer information parameters: Email address First name Surname Phone number Postcode Client IP address – do not hash Client user agent – do not hash Browser ID (fbp) cookie – do not hash Subscription ID – do not hash Click ID (fbc) cookie – do not hash |
6 | AddToCart | Срабатывает при каждом добавлении пользователем товара в корзину | https://yoursite. com | "<script> fbq('track', 'AddToCart', { value: ?, currency: '?', content_ids: '?', content_name: '?', content_category: '?', content_type: '?', eventID: '?', }); </script> " | Event parameters: Event ID Content type Action source Event name Event source URL Currency Value Content name Event time Content IDs Customer information parameters: Email address First name Surname Phone number Postcode Client IP address – do not hash Client user agent – do not hash Browser ID (fbp) cookie – do not hash Subscription ID – do not hash Click ID (fbc) cookie – do not hash |
7 | Initiate Chechout | Срабатывает при переходе на страницу оформления заказа | https: //Yoursite. com/checkout/ | "<script> fbq('track', 'InitiateCheckout', { value: ?, currency: '?', content_ids: '?', content_name: '?', content_category: '?', content_type: ' ?', eventID: '?', }); </script> " | Event parameters: Event time Event name Event source URL Action source Event ID Content type Number of items Currency Value Content IDs Customer information parameters: Email address First name Surname Phone number Postcode Client IP-адреса – do not hash Client user agent – do not hash Browser ID (fbp) cookie – do not hash Subscription ID – do not hash Click ID (fbc) cookie – do not hash |
8 | Purchase | Срабатывает для всех видов покупки (покупка через чекаут, покупка в 1 клик) | https://yoursite. com/success | "<script> fbq('track', 'Purchase', { value: ?, currency: '?', content_ids: '?', content_name: '?', content_category: '?', content_type: '? ', eventID: '?', }); </script> " | Event parameters: Content type Content IDs Event time Event name Event source URL Action source Event ID Number of items Currency Value Customer information parameters: Email address First name Surname Phone number Postcode Client IP address – do not hash Client user agent – do not hash Browser ID (fbp) cookie – do not hash Subscription ID – do not hash Click ID (fbc) cookie – do not hash |
Маркер доступа — EAANMIiifQgIBAHZBGzzqZA8WVUUM8a3PDZCXsPK2OjMhTt6NE9gpCi4tdX6yIihZAm4eiQZANuG6h NhYDrZCZCISix1tIZBpxv4EDZAz3sIB6s8eu0ZBNKPD96O6DJZAXsQUa9UTQLjIjlQWT3fpSgE4qA3IhTMvyPrOGwmtgy8GMSly0LT |
Вот в таком виде мы можем передавать наше ТЗ для реализации. Если сложно самостоятельно переводить параметры на английский язык, то просто поменяйте язык интерфейса в настройках Facebook страницы. Таблицу можно дополнять еще скринами с местом срабатывания событий на сайте или другой важной информацией.
Если на сайте уже реализован Facebook Pixel и события, то в них необходимо добавить параметр eventID (ID события), чтобы избежать дублирования событий.
О дедупликации событий
Чтобы избежать дублирования событий, которые отправляются с браузерного пикселя Facebook и серверного Conversions API, необходимы параметры EventID и Event name. Значение eventID, получаемое от пикселя, должно совпадать со значением event_id, получаемого от сервера.
Дедупликация выполняется, если:
- Значение eventID события пикселя Facebook совпадает с event_id на сервере.
- Значение event события пикселя Facebook совпадает с event_name на сервере.
Если для пары событий выполнены оба этих условия, первое из событий сохраняется, а отправленное после него удаляется. Если события сервера и браузера получены примерно в одно и то же время (интервал между ними составляет не более пяти минут), предпочтение отдается событию браузера.
Выводы
- Чтобы отслеживать все конверсии, нужно внедрить серверные конверсии API (Facebook сАPI). Это прямо влияет на оптимизатор конверсий, и, как следствие, на цену за конверсию и прохождение этапа обучения рекламной кампании.
- Внедрение сAPI стало особенно актуальным с апдейтом iOS 14.4+. сAPI позволяет отслеживать тех, кто запретил отслеживание на iOS устройствах, тех, кто пользуется Адблокером на пк, и те случая, когда веб-пиксель не успел прогрузиться в js коде по каким-то причинам.
- В зависимости от гео объем потери данных может достигать от 20% до 60% на площадке Facebook. А это значит, что вы никогда не достигнете окупаемости с подходом без cAPI.