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

160
8 хв.

У 2021 році всі ми зіткнулися з посиленням збору даних, пов'язаних зі змінами політики конфіденційності Apple і збору даних про користувача на IOS 14. Ці зміни сильно вплинули безпосередньо на сам збір подій через інструменти Facebook піксель і Facebook SDK, зміну вікна атрибуції, а також на охоплення аудиторії з продукцією Apple.

Звичайно, все це призвело до збільшення ціни за конверсію та некоректний аналіз наших рекламних кампаній. Щоб виправити ситуацію, Facebook запроваджує такий інструмент, як Conversion API. Зараз розберемося, що це таке.

Ось що пише сам Фейсбук:
“API Conversions забезпечує прямий та надійний зв'язок між соціальною мережею та маркетинговими даними (наприклад, подіями на веб-сторінці та офлайн-конверсіями) з вашого серверу, сайту або з системи 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. Є також можливість додати додаткові події. Вибрали, тиснемо "Продовжити".

Ми перейшли до вибору параметрів. На прикладі покажу налаштування параметрів для трьох основних подій в 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 (2 голоса)