Настройка Facebook Conversion API, или как правильно составить ТЗ на CApi

4394
8 мин.

В 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. По этим событиям будет оптимизироваться наша реклама. Остальные параметры настраиваются по такому же принципу. 

Важно: Чтобы не возвращаться в будущем к этому разделу, выпишите в таблицы выбранные события и все параметры, настроенные для каждого события. Они будут нужны для составления ТЗ.

  1. Add to Cart (Добавление в корзину).
  1. Initiate Checkout (Начало оформление заказа).
  1. Purchase (Покупка).

Некоторые параметры информации о событии уже стандартно расставлены. Важно выделить такие, как ID события (этот ID используется для удаления дубликатов одного и того же события, отправленного и с сервера, и с браузера), Отмена подписки (если для события необходима оптимизация показа рекламы, то этот параметр не выбираем).

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

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

Если мы хотим самостоятельно реализовать, то соответственно выбираем самостоятельную настройку, и нам откроется руководство.

В руководстве нам важно будет сгенерировать маркер доступа, сделать его копию и сохранить. 

Если вы не выбирали самостоятельную реализацию, то найти и сгенерировать маркер доступа можно в “Event Manager”, “Настройки”.

Тестирование событий через API

Для тестирования ответа сервера нужно составить тело запроса. Для этого пригодится инструмент Payload Helper. Данный инструмент позволяет сгенерировать готовый код. Для этого указываем нужные параметры для нашего типа события. Код не должен выдавать ошибок. Готовый код копируем, он нам понадобится дальше.

Следующий инструмент, который нам нужен, это Facebook Graph API Explorer. Он помогает выполнять API запросы и отслеживать полученную в ответ информацию. Перешли. Выбираем последнюю версию API и создаем новый Post реквест.

Далее нам понадобится добавить в строку ID нашего Facebook пикселя/events. Найти ID пикселя получится в “Event Manager”, “Настройки”.

  1. Добавляем в строку ID пикселя/events.  
  2. В “Маркер доступа” прописываем сгенерированный маркер.
  3. Переключаемся на JSON.
  4. Вставляем скопированный ранее код тела запроса.

Теперь нужно открыть раздел “Тестирование событий”  в “Events Manager” и скопировать значение TEST.

Перед значением TEST следует указать параметр "test_event_code" и вставить после ] в теле запроса. Выглядит это так:

Нажимаем “Отправить”, и в середине окна появится информация о полученном событии. Это значит, что мы все сделали правильно.

Возвращаемся в “Events Manager” в раздел  “Тестирование событий” и должны увидеть завершенную обработку.

Как правильно составить ТЗ на CAPI для разработчика

Итак, мы протестировали серверный запрос на тестовое событие, убедились, что все работает. Теперь нужно грамотно составить наше ТЗ для разработчика. Принцип будет похож с составлением ТЗ для пикселя Facebook. Ниже приведу пример готового ТЗ сразу для Pixel Facebook и Conversion API. На этом этапе нам понадобится таблица с данными событий и параметров, которые мы выписали ранее.

Этапы и событияТриггерМесто активации триггераПараметры события Facebook PixelПараметры события под CAPI
1PageviewВсе веб- страницы сайтаhttps://yoursite. com

<!-- Facebook Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function()
{ n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;
n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}
(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '111111111111111');
fbq('track', 'PageView');
</script>
<noscript>
<img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?
id=997828933727567&ev=PageView&noscript=1" />
</noscript>
<!-- End 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
2SearchЗапрос в строку поиска на сайтеПопап строки поиска после подтверждения ввода

<script >
fbq('track', 'Search', {
search_string: '?',
eventID: '?',
});
</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
3ViewContentСрабатывает каждый раз, когда пользователь заходит на карточку товара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
4ContactВсе нажатия пользователем по номерам телефона, почте на сайте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
5Complete 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
6AddToCartСрабатывает при каждом добавлении пользователем товара в корзину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
7Initiate 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
8PurchaseСрабатывает для всех видов покупки (покупка через чекаут, покупка в 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, получаемого от сервера.

Дедупликация выполняется, если:

  1. Значение eventID события пикселя Facebook совпадает с event_id на сервере.
  2. Значение event события пикселя Facebook совпадает с event_name на сервере.

Если для пары событий выполнены оба этих условия, первое из событий сохраняется, а отправленное после него удаляется. Если события сервера и браузера получены примерно в одно и то же время (интервал между ними составляет не более пяти минут), предпочтение отдается событию браузера.

Дедупликация событий пикселя и серверных событий

Выводы

  1. Чтобы отслеживать все конверсии, нужно внедрить серверные конверсии API (Facebook сАPI). Это прямо влияет на оптимизатор конверсий, и, как следствие, на цену за конверсию и прохождение этапа обучения рекламной кампании.
  2. Внедрение сAPI стало особенно актуальным с апдейтом iOS 14.4+. сAPI позволяет отслеживать тех, кто запретил отслеживание на iOS устройствах, тех, кто пользуется Адблокером на пк, и те случая, когда веб-пиксель не успел прогрузиться в js коде по каким-то причинам.
  3. В зависимости от гео объем потери данных может достигать от 20% до 60% на площадке Facebook. А это значит, что вы никогда не достигнете окупаемости с подходом без cAPI.
06 июня 2022
5 / 5 (8 голосов)