Настройка Server-Side API для Facebook Pixel

Елена Маракова
FB-killa Plus

Елена Маракова

Регистрация
20 Фев 2017
Сообщения
1.358
Ответов на вопросы
1
Реакции
1.284
Facebook Pixel позволяет собирать аудиторию ремаркетинга по определенным событиям или автоматически оптимизировать по ним показ Facebook рекламы. На сайте это можно сделать через Javascript код, в мобильных приложениях – через Facebook SDK. Но как отслеживать события, которые происходят за пределами сайта? Это можно сделать с помощью Server-side API и в этой статье я расскажу, как его настроить.



Facebook Server-side API позволяет отслеживать (и использовать в рекламе или рекламном кабинете) события, так же как бы это было бы сделано на сайте через Facebook Pixel. Для начала, я хотел бы привести пример задач, которые можно решить с помощью этого метода:
  • Отслеживания факта совершения телефонного звонка в отдел-продаж.
  • Отправка из CRM системы информации об этапах сделки (в том числе продажах).
  • Отправка информации о продлении подписки, даже если пользователь не заходит сайт.
  • Сбор аудитории ремаркетинга только по группам пользователей, которые могут быть определены спустя несколько часов/дней после посещения сайта (то есть после расчета различных прогнозов: вероятности совершения конверсии, LTV и тд).
  • Отслеживание всех тех событий, которые отслеживаются у вас через Measurement Protocol в Google Analytics.
Я кратко опишу, как этот процесс выглядит с технической точки зрения:
  • Пользователь заходит на сайт.
  • На сайте должен быть установлен Facebook Pixel, который записывает в cookies (1st party) информацию о пользователе.
  • Ваш сервер должен сохранить эту пользовательскую информацию так же, как у вас сохраняется ip адрес пользователя, его user-agent, google analytics client_id или другие параметры, по которым ваш сервер отличает пользователей друг от друга.
  • Когда непосредственно происходит событие от этого пользователя (он уже может не быть на сайте) — ваш сервер должен сделать запрос на сервер Facebook, в котором будет указана информация о событии и об этом пользователе (значения, ранее сохраненные из его cookie).
Для того, чтобы вы смогли настроить у себя Facebook Server-Side API вам необходимо:
  • Иметь Facebook Business Manager (без него использовать Server-side API нельзя)
  • Установить своем сайте Facebook Pixel, который связан с вашим Business Manager
  • Иметь Facebook App (приложение для работы с Facebook API), которое связано с вашим Business Manager
А теперь приступим непосредственно к настройке:

1. Перейдите на вкладку Event Manager в вашем Business Manager, нажмите на кнопку «Add New Data Source» и выберите пункт «Server-Side API»:




2. Ознакомьтесь с возможностями сервиса на приветственном окне, перейдите к настройкам, выберите свой пиксель (установленный у вас на сайте) и перейдите дальше по кнопке «Next»:




3. На следующем этапе вам нужно выбрать приложение для работы с API. Если у вас его нет — можете сразу же его создать, нажав кнопку «Create a New App». В открывшемся окне заполните поля «App Name», «Contact Email» (указывайте свой email) и в качестве «App Mode» выберите пункт «Development»:


После того, как приложение создалось, выберите его и нажмите «Next», чтобы перейти на следующий шаг.

4. На этом этапе вам надо выбрать системный аккаунт, с помощью которого будут отправляться запросы на сервер Facebook. Если у вас его нет — придуймате ему название, введите его в поле «Create New System User» и нажмите кнопку «Create».



После того, как системный аккаунт будет создан — выберите его и нажмите кнопку «Next».

5. На этом этапе нужно сгенерировать токен доступа, который будет указан в запросах API. Для этого нажмите кнопку «Generate Access Token»:



После того, как токен будет сгенерирован — скопируйте его, нажав на область с этим токеном. Также, обязательно сохраните его, например, создав текстовый файл с этим токеном. После того, как вы где-то сохранили токен — нажмите кнопку «Next».




6. На этом шаге вы можете получить инструкции по внедрению Server-Side API. По кнопке «Send Instructions» вы можете сразу их отправить себе и разработчику, который будет это внедрять или можете прочитать инструкции здесь. Для завершения нажмите «Done».




7. Подготовка к отправке данных на сервер Facebook закончена. Осталось перейти на вкладку Settings на странице вашего Facebook Pixel и убедиться, что в нем включена опция «First-party Cookies»:





Теперь все готово для того, чтобы отправлять информацию о событиях через Server-Side API. Ниже приведен пример кода на Python, который это делает, а именно — отправляет событие Purchase в размере $1:

# -*- coding: utf-8 -*-
import time
from facebook_business.adobjects.serverside.event import Event
from facebook_business.adobjects.serverside.event_request import EventRequest
from facebook_business.adobjects.serverside.user_data import UserData
from facebook_business.adobjects.serverside.custom_data import CustomData
from facebook_business.api import FacebookAdsApi
access_token = '****************************************************************************************************'
pixel_id = '**********************'
FacebookAdsApi.init(access_token=access_token)
user_data = UserData(
client_ip_address = '91.166.107.1',
client_user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36',
fbc='fb.2.1583506521913.IwAR1EAVRZqLEbZ2T27j5zbooWbzuf_u6PsdSVno-Cvk-sfWpgoVFCUBzpoFQ',
fbp='fb.2.1571112275753.247624567'
)
custom_data = CustomData(
currency='usd',
value=1.0
)
event = Event(
event_name='Purchase',
event_time=int(time.time()),
user_data=user_data,
custom_data=custom_data,
)
events = [event]
event_request = EventRequest(
events=events,
# test_event_code = 'TEST47839',
pixel_id=pixel_id)
event_response = event_request.execute()
view rawfacebook_server_side_api.py hosted with ❤ by GitHub
В этом коде есть две глобальных переменных:

  • access_token — здесь нужно указать токен системного аккаунта, который вы получили на 5 шаге.
  • pixel_id — ID вашего Facebook Pixel, в которой отправляется информация о событии. Его можно взять прямо в коде вашего пикселя — fbq('init', '{pixel_id}') и найти на странице Event Manager.
Ниже есть класс UserData, внутри которого передаются все пользовательские параметры, которые известны вам на момент совершения события. Чем больше параметров вы отправите — тем больше вероятность, что Facebook успешно определит пользователя, который совершил это событие. Полный список параметров, который можно передавать находится здесь. Отдельного внимания заслуживают параметры fbp и fbc, которые предварительно должны быть получения из cookie пользователя, совершающего событие.

Класс CustomData принимает второстепенную информацию о событии, которое отправляется на сервер. Например, value — сумму покупки и currency — валюту покупки. Полный список находится здесь.

Класс Event принимает информацию о самом событии: event_name — название события (может быть стандартным или собственным), event_time — UNIX-время совершения события. В этом примере отправляется текущее время, но можно отправлять прошедшее время для событий, которые произошли в прошлом, но не позже, чем 7 дней назад. Список параметров для этого класса доступны здесь.

В этом примере отправляется 1 событие на 1 запрос. Если вы отправляете события не в режиме стримминга — вы можете отправлять до 1000 событий на 1 запрос (через массив events). Подробнее о лимитах API здесь.

Чтобы проверить корректность работы Server-Side API — перейдите на страницу Test Events своего пикселя, дальше выберите вкладку Server и скопируйте приведенный ниже код:




Если в классе EventRequest передать этот код в качестве параметра test_event_code — то после выполнения кода вы сможете увидеть, как Facebook получил от вас информацию о событии. Это выглядит так:

В примере выше этот параметр закомментирован, но если вы захотите проверить работоспособность кода перед внедрением — уберите # в начале этой строки.

Источник
 
Назад
Верх
Главная Поиск Блог Обучение Партнёрки Инструменты