
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. Для начала, я хотел бы привести пример задач, которые можно решить с помощью этого метода:
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:
view rawfacebook_server_side_api.py hosted with ❤ by GitHub
В этом коде есть две глобальных переменных:
Класс 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 получил от вас информацию о событии. Это выглядит так:

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

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 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() |
В этом коде есть две глобальных переменных:
- access_token — здесь нужно указать токен системного аккаунта, который вы получили на 5 шаге.
- pixel_id — ID вашего Facebook Pixel, в которой отправляется информация о событии. Его можно взять прямо в коде вашего пикселя — fbq('init', '{pixel_id}') и найти на странице Event Manager.
Класс 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 получил от вас информацию о событии. Это выглядит так:

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