Поддержка Offline Conversions API прекратится в мае 2025 года. Ранее планировалось, что он будет упразднен в третьем квартале 2024 года. Начиная с версии 17.0 Graph API компонент Offline Conversions API больше не поддерживает офлайн-события. Версия 16.0 — это последняя версия Graph API, которая поддерживает офлайн-события. Поддержка Offline Conversions API прекратится с истечением срока действия версии 16.0 в мае 2025 года. В период до мая 2025 года мы прекратим использование оставшихся конечных точек Offline Conversions API в Marketing API 20.0. Подробнее см. в журнале изменений.
В феврале 2023 года мы объявили о том, что Conversions API теперь в полной мере поддерживает офлайн-события. Рекомендуем рекламодателям использовать для новых интеграций Conversions API. Кроме того, мы рекомендуем рекламодателям, интеграции которых сейчас используют Offline Conversions API, перевести их на работу с Conversions API до мая 2025 года и не обновлять Offline Conversions API до завершения перехода. Подробную информацию о Conversions API см. в документации.
Offline Conversions API позволяет отправлять события офлайн-конверсий, чтобы следить, сколько клиентов перед конверсией посмотрели рекламу Meta или нажали ее.
Чтобы использовать этот API, вам понадобятся:
Если у вас ещё нет аккаунта, создайте его.
Требуется для доступа к Marketing API. Чтобы создать приложение Meta, выполните следующие действия.
Правила проверки приложения и необходимые разрешения зависят от способа реализации API.
Способ реализации | Проверка приложения и разрешения |
---|---|
Прямая реализация | Предназначена для рекламодателей, которые хотят использовать офлайн-конверсии напрямую. В этом случае:
|
Реализация партнером в виде платформы | Предназначена для сторонних партнеров, предлагающих возможности офлайн-конверсий клиентам-рекламодателям. В этом случае:
|
Имея права доступа системного пользователя, ваше приложение сможет отправлять в Meta данные через API. Чтобы ее создать, выполните перечисленные ниже действия.
Маркер доступа предоставляет доступ к данным Meta. Чтобы создать маркеры доступа системного пользователя, выполните перечисленные далее действия.
Для проведения рекламных кампаний на Meta необходим рекламный аккаунт. Инструкции по его созданию см. в статье Marketing API или Справочный центр для бизнеса: О настройках компании в Meta Business Manager.
Предоставьте системному пользователю доступ к рекламному аккаунту.
Это загружаемые файлы, которые содержат данные об офлайн-конверсиях. Чтобы настроить атрибуцию событий, при создании рекламы задайте в параметре tracking_spec
ID группы офлайн-событий. Затем вы сможете создавать группы событий, просматривать статистику импортируемых данных, удалять и изменять эти данные в Business Manager.
В старых версиях в Business Manager можно было выполнять операции создания, чтения, изменения и удаления данных для групп офлайн-событий, чтобы делиться такими группами с другими объектами.
Чтобы создавать группы офлайн-событий и загружать или просматривать данные по ним, нужны определенные права доступа. Они также позволяют назначать разрешения на эти действия рекламному аккаунту. Необходимые права есть у следующих пользователей:
ad_account
, связанного с этой группой офлайн-событий.Подробнее см. в справке по группам офлайн-событий конверсии.
curl
-F 'access_token=<SYSTEM_USER_ACCESS_TOKEN>'
-F 'name=offline_event_set',
-F 'description=conversion data used for superbowl campaign',
https://graph.facebook.com/<API_VERSION>/<BUSINESS_MANAGER_ID>/offline_conversion_data_sets
Выполните запрос HTTP POST
:
POST /<BUSINESS_MANAGER_ID>/offline_conversion_data_sets HTTP/1.1
Host: graph.facebook.com
curl -X POST \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/<BUSINESS_MANAGER_ID>/offline_conversion_data_sets
Ответ будет содержать id
группы событий:
{ "id": <OFFLINE_EVENT_SET_ID> }
Параметр | Описание |
---|---|
Тип: строка | Название группы событий. Пример: |
Тип: строка | Описание группы событий. Пример: |
Чтобы назначить рекламному аккаунту разрешения на отслеживание и чтение, выполните такой запрос:
POST /<OFFLINE_EVENT_SET_ID>/adaccounts HTTP/1.1
Host: graph.facebook.com
curl -X POST \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/<OFFLINE_EVENT_SET_ID>/adaccounts
Параметр | Описание |
---|---|
Тип: целое число | Назначение рекламного аккаунта этому ID компании. |
Тип: целое число | ID рекламного аккаунта с настроенным отслеживанием офлайн-событий. |
Когда вы обновляете tracking_spec
, мы переопределяем эту спецификацию. Сначала выполните запрос GET
, а затем добавьте связанную строку String
для группы офлайн-событий к имеющейся спецификации tracking_spec
. Обратитесь к разделу Управление рекламой или воспользуйтесь Ads Manager. Например, укажите соответствующие параметры отслеживания:
curl \ -F 'tracking_spec=[{action.type:"offline_conversion", dataset:["123"]}]' \ -F 'access_token=<SYSTEM_USER_ACCESS_TOKEN>' \ https://graph.facebook.com/<API_VERSION>/<AD_ID>
Чтобы обновить параметры отслеживания рекламы, выполните такой запрос:
POST /<AD_ID>/?tracking_specs=[{"action.type":"offline_conversion","dataset": <OFFLINE_EVENT_SET_ID>}] HTTP/1.1
Host: graph.facebook.com
curl -X POST \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/<AD_ID>/?tracking_specs=[{"action.type":"offline_conversion","dataset": <OFFLINE_EVENT_SET_ID>}]
Параметр | Описание |
---|---|
Тип: строка | Отслеживание этого действия для рекламной группы. Пример: |
Тип: список <id> | ID группы офлайн-событий. Пример: |
Вы должны загрузить транзакцию в течение 62 дней после конверсии. Загрузите данные конверсии:
curl \ -F 'access_token=SYSTEM_USER_ACCESS_TOKEN' \ -F 'upload_tag=store_data' \ -F 'data=[ \ { match_keys: {"phone": ["HASH1","HASH2"], "email": ["HASH3","HASH4"]}, currency: "USD", value: 16, event_name: "Purchase", event_time: 1456870902, contents: [ {id: "A", quantity: 1}, {id: "B", quantity: 2}, {id: "C", quantity: 1} ] custom_data: { }, }, { match_keys: {"lead_id": "12345"}, event_name: "Lead", event_time: 1446336000, contents: [ {id: "A", quantity: 1}, {id: "B", quantity: 2}, {id: "C", quantity: 1} ] custom_data: { event_source: "email", action_type: "sent_open_click", email_type: "email_type_code", email_provider: "gmail_yahoo_hotmail", } }, ]' https://graph.facebook.com/VERSION/OFFLINE_EVENT_SET_ID/events
Чтобы отправить конверсии, выполните запрос HTTP POST
:
POST /<OFFLINE_EVENT_SET_ID>/events HTTP/1.1
Host: graph.facebook.com
curl -X POST \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/<OFFLINE_EVENT_SET_ID>/events
Параметр | Описание |
---|---|
Тип: строка | Обязательный параметр. Отслеживание загрузок событий. Пример: |
Тип: | Обязательный параметр. Содержит количество загружаемых событий. Загрузите событие конверсии для каждого аккаунта из Центра аккаунтов и не более 2 000 событий для каждого вызова API. Пример: см. выше. |
Тип: целое число | Необязательный параметр. Область действия для разрешения идентификатора Пример: |
Чтобы объединить вызовы API для загрузки событий, используйте для них всех одинаковый upload_tag
. Это поможет выполнить отладку загрузки событий. Рекомендуем делать так, если загрузка событий выполняется за несколько вызовов API.
Параметры data
:
Параметр | Описание |
---|---|
Тип: словарь JSON | Обязательный параметр. Идентификационная информация для поиска людей в Meta. Пример: |
Тип: целое число | Обязательный параметр. Метка времени UNIX для события конверсии. Пример: |
Тип: строка | Обязательный параметр. Тип события. Примеры: |
Тип: строка | Обязательный параметр. Трехбуквенный ISO-код валюты для этого события конверсии. Обязательный параметр для событий Пример: |
Тип: число двойной точности | Обязательный параметр. Значение события конверсии. Обязательный параметр для событий Пример: |
Тип: строка | Необязательный параметр. Любой действительный Пример: |
Тип: массив JSON | Необязательный параметр. Необходим при интеграции рекламы с каталогом. Обязательные параметры: Рекомендуемые параметры: Обязательные параметры: Рекомендуемые параметры: |
Тип: словарь JSON | Необязательный параметр. Информация об этом событии конверсии. Пример: |
Тип: строка | Необязательный параметр. Уникальный идентификатор для каждой транзакции или заказа в группе офлайн-событий. Например, для продаж это может быть ID квитанции. Пример: |
Тип: строка | Необязательный параметр. Уникальный идентификатор, позволяющий различать события в одном заказе или транзакции. Пример: |
Например, в поле data
можно загрузить информацию:
{ match_keys: MATCH_KEYS, event_time: EVENT_TIME, event_name: "Purchase", value: 400, currency: "USD", contents: [ { id: "A", quantity: 1, brand: "brand_of_A", category: "Apparel & Accessories | Clothing", price: 100, }, { id: "B", quantity: 2, brand: "brand_of_B", category: "Apparel & Accessories | Shoes", price: 50, }, { id: "C", quantity: 1, brand: "brand_of_C", category: "Apparel & Accessories | Jewelry | Watches", price: 200, } ], }
Чтобы объединить вызовы API для загрузки событий, используйте для них один и тот же upload_tag
. Это поможет выполнить отладку загрузки событий. Рекомендуем делать так в тех случаях, когда загрузка событий выполняется за несколько вызовов API.
match_keys
— это набор ID для сопоставления людей с целью атрибуции. Инструкции по нормализации и хэшированию данных см. в этом разделе. Поддерживается только алгоритм SHA-256. Нехэшированные данные не принимаются.
чтобы ознакомиться с примерами правильно нормализованных и хэшированных данных для параметров.
Названия параметров | Параметр | Хэширование обязательно? |
---|---|---|
Электронные адреса |
| ДА |
Номера телефонов |
| ДА |
Пол |
| ДА |
Дата рождения |
| ДА |
Фамилия |
| ДА |
Имя |
| ДА |
Город |
| ДА |
Штаты США |
| ДА |
Почтовые индексы |
| ДА |
Страна |
| ДА |
Рекламный ID Apple |
| ДА |
Рекламный ID Android |
| ДА |
ID стороннего пользователя |
| Настоятельно рекомендуется |
ID лида из рекламы для лидов |
| НЕ хэшировать |
Ответ:
Имя | Тип | Описание |
---|---|---|
| Целое число | Количество обработанных записей. |
При появлении ошибок будет возвращено исключение с указанием недействительных записей и причины. Исправьте ошибки или пропустите строки данных с ошибками и повторно выполните вызов API.
Извлечь статистику загрузки может администратор Business Manager или системный пользователь, который создал группу офлайн-событий. Кроме того, эти данные может прочитать любой администратор рекламного аккаунта ad_account
, связанного с группой офлайн-событий.
Чтобы просмотреть статистику по группам офлайн-событий, например действительные и сопоставленные записи, выполните следующий вызов:
GET /<OFFLINE_EVENT_SET_ID>/uploads HTTP/1.1
Host: graph.facebook.com
curl -X GET -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/<OFFLINE_EVENT_SET_ID>/uploads
Ежедневные разбивки офлайн-событий можно посмотреть в Offline Events Manager
в Business Manager. Чтобы получить более подробные разбивки, выполните следующий вызов:
GET /<OFFLINE_EVENT_SET_ID>/stats HTTP/1.1
Host: graph.facebook.com
curl -X GET -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/<OFFLINE_EVENT_SET_ID>/stats
Параметр | Описание |
---|---|
Тип: целое число | Необязательный параметр. Метка времени UNIX. Запрашивает события начиная с этого времени. Пример: |
Тип: целое число | Необязательный параметр. Метка времени UNIX. Исключает события после этого времени. Пример: |
Тип: | Необязательный параметр. Список строк. До версии 3.0 эта конечная точка предоставляет все поля. Начиная с этой версии она по умолчанию предоставляет поля |
Тип: логическое значение | Необязательный параметр. Возвращает среднее время задержки при загрузке в секундах, если для времени агрегирования выбрано значение |
Тип: строка | Необязательный параметр. Совокупные результаты для этого заданного времени. Варианты: |
Сейчас специально настроенные офлайн-конверсии не поддерживают обратное заполнение. Мы не учитываем данные о загрузках событий, которые произошли до создания специально настроенной конверсии. Использовать данные о специально настроенных офлайн-конверсиях для оптимизации показа рекламы невозможно. Подробнее см. в справке по специально настроенным конверсиям.
Чтобы создать специально настроенную конверсию с помощью офлайн-событий, выполните запрос POST
:
POST /act_<ACCOUNT_ID>/customconversions HTTP/1.1
Host: graph.facebook.com
curl -X POST \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/act_<ACCOUNT_ID>/customconversions
Параметры:
Параметр | Описание |
---|---|
Тип: строка | Название новой специально настроенной конверсии. Пример: |
Тип: целое число | ID отслеживаемой группы офлайн-событий. Пример: |
Тип: строка | Одно из девяти стандартных событий пикселя Meta. Примеры: |
Тип: строка в кодировке JSON | Операторы и данные для правила конверсии. Подробнее см. в справке по специально настроенным конверсиям. Пример: покупки на сумму свыше 100 долларов США. Пример: |
Ответ в случае успеха:
{ "id": <CUSTOM_CONVERSION_ID> }
С помощью поля custom_data
вы можете создавать правила, которые позже будут определять, засчитывается ли конверсия. Это похоже на пользовательские офлайн-аудитории. У одного рекламного аккаунта может быть не более 40 специально настроенных конверсий.
Например, добавьте в загрузки категорию товаров, используя поле custom_data
:
data=[ { match_keys: {"phone": ["<HASH>","<HASH>"], "email": ["<HASH>","<HASH>"]}, currency: "USD", value: 16, event_name: "Purchase", event_time: 1456870902, custom_data: { product_category: "ICECREAM", }, }, ]
Затем с помощью custom_data.{YOUR_CUSTOM_PARAM}
создайте правило специально настроенной конверсии:
curl \ -F 'name=Ice Cream Purchasers' \ -F 'custom_event_type=Purchase' \ -F 'event_source_id=<OFFLINE_EVENT_SET_ID>' \ -F 'rule={"and": [{"event_name":{"eq":"Purchase"}},{"custom_data.product_category":{"i_contains":"ICECREAM"}}]}' \ -F 'access_token=<ACCESS_TOKEN>' \ "https://graph.facebook.com/<API_VERSION>/act_<ACCOUNT_ID>/customconversions"
Чтобы соотнести события офлайн-конверсии с рекламой клиента, следуйте инструкциям ниже. Для большинства этих действий потребуются те же вызовы API, что и при управлении собственной группой офлайн-событий и кампанией.
Перечень действий зависит от того, как настроены разрешения для партнера или агентства в рекламных аккаунтах клиента:
Инструкции по настройке этих разрешений см. в этом разделе.
Предоставьте доступ к группе событий аккаунту Business Manager клиента. Затем, используя эту группу событий, ваш клиент сможет отслеживать рекламу.
GET /<OFFLINE_EVENT_SET_ID>/agencies HTTP/1.1
Host: graph.facebook.com
curl -X GET -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/<OFFLINE_EVENT_SET_ID>/agencies
Параметр | Описание |
---|---|
Тип: целое число | ID аккаунта Business Manager вашего клиента. |
Предоставьте клиенту доступ к группам офлайн-событий, созданным партнером. Чтобы включить отслеживание рекламы для рекламного аккаунта, необходимо быть администратором Business Manager или системным пользователем-администратором, который создал группу офлайн-событий. Если вы администратор рекламного аккаунта, связанного с группой офлайн-событий, вы тоже можете сделать это. Чтобы выполнить этот вызов API, у компании должен быть доступ к группе офлайн-событий.
Чтобы назначить разрешения на просмотр и отслеживание офлайн-событий рекламному аккаунту, выполните следующий вызов:
POST /<OFFLINE_EVENT_SET_ID>/adaccounts HTTP/1.1
Host: graph.facebook.com
curl -X POST \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/<OFFLINE_EVENT_SET_ID>/adaccounts
Параметр | Описание |
---|---|
Тип: целое число | Назначение рекламного аккаунта этому ID компании. |
Тип: целое число | ID рекламного аккаунта с включенным отслеживанием офлайн-событий. |
Иногда бывает нужно предоставить собственный внешний ID, чтобы представить клиента и сопоставить его с кем-то. Воспользуйтесь для этого extern_id
и следуйте инструкциям ниже.
Партнеры по сбору данных, которые прошли процесс сопоставления, могут использовать ID партнера в качестве ID пространства имен и extern_id
как tpid
.
match_keys
На основании match_keys
мы определяем, можно ли сопоставить предоставленные вами данные конверсии с пользователем Meta. Если вы предоставили match_keys
, то не сможете предоставить параметр namespace_id
.
match_keys
и extern_id
С помощью match_keys
мы находим людей в Meta и отправляем сопоставления {dataset_id, extern_id}
с {facebook_user_id}
. Если вы предоставили match_keys
и extern_id
, то не сможете предоставить параметр namespace_id
.
extern_id
Если вы уже отправили данные с match_keys
и extern_id
, Meta извлекает {facebook_user_id}
с помощью {dataset_id, extern_id}
.
namespace_id
Параметр namespace_id
применяется ко всему вызову API. С его помощью вы можете указать другую группу офлайн-событий, которая доступна для ID профиля компании или партнера либо принадлежит ему. Если вы уже отправили данные с match_keys
и extern_id
, Meta с помощью {namespace_id, extern_id}
извлекает {facebook_user_id}
. Указывайте только один extern_id
на каждую строку данных.
Просматривайте офлайн-события, относящиеся к объявлению, которое кто-то просмотрел или нажал. Офлайн-конверсии засчитываются не раньше, чем через один день. Это означает, что вам необходимо задать для окна атрибуции значение 28d_view
или action_attribution_windows=['28d_view']'
. В противном случае вы не увидите конверсии в отчетах. Подробнее см. в описании Insights API и в руководстве по статистике.
GET /act_<ADACCOUNT_ID>/insights HTTP/1.1
Host: graph.facebook.com
curl -X GET -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/act_<ADACCOUNT_ID>/insights
Параметр | Описание |
---|---|
Тип: массив строк | Разбивка данных о показах, кликах или конверсиях. Группировка по типу действия: офлайн, онлайн и т. д. Пример: |
Тип: массив строк | Базовые рекламные метрики. Пример: |
Тип: строка | Агрегация данных или удаление дубликатов на этом уровне отчетности. Примеры: |
Тип: строка | Относительные временные рамки запроса метрик. Примеры: |
Результаты будут выглядеть следующим образом:
{ "data": [ { "date_start": "2015-12-01", "date_stop": "2015-12-01", "actions": [ { "action_type": "offline_conversion.purchase", "value": 1 }, { "action_type": "offsite_conversion.lead", "value": 3 }, ], ... } ] }
Например, чтобы посмотреть атрибуцию, выполните такой вызов:
curl -G \ -d 'access_token=<SYSTEM_USER_ACCESS_TOKEN>' \ -d 'fields=unique_actions,action_values' \ https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/insights
Результат выглядит следующим образом:
{ "data": [ { "unique_actions": [ { "action_type": "link_click", "value": 94 }, { "action_type": "offline_conversion", "value": 1 }, { "action_type": "offline_conversion.purchase", "value": 1 }, { .... "value": 1 } ], "action_values": [ { "action_type": "offline_conversion.purchase", "value": 27.5 }, { "action_type": "offline_conversion", "value": 27.5 } ], "date_start": "2016-06-06", "date_stop": "2016-06-07" } ], "paging": { "cursors": { "before": "MAZDZD", "after": "MAZDZD" } } }
Чтобы реализовать параметры обработки данных для этих двух API, добавьте data_processing_options
, data_processing_options_country
и data_processing_options_state
в каждый элемент в параметре data своих событий.
Примечание. App Events API и Offline Conversions API более не следует использовать для новых интеграций. Вместо этого рекомендуем использовать Conversions API, поскольку теперь он поддерживает веб- и офлайн-события, а также события в приложении. Подробнее см. в разделах API Conversions для событий в приложении и API Conversions для офлайн-событий.
Чтобы явным образом отключить режим ограниченного использования данных (LDU), укажите пустой массив для каждого события или просто удалите поле в полезных данных:
{ "data": [ { "event_name": "Purchase", "event_time": <EVENT_TIME>, "user_data": { "em": "<EMAIL>" }, "custom_data": { "currency": "<CURRENCY>", "value": "<VALUE>" }, "data_processing_options": [] } ] }
Чтобы включить режим LDU и разрешить Meta определить местоположение:
{ "data": [ { "event_name": "Purchase", "event_time": <EVENT_TIME>, "user_data": { "em": "<EMAIL>", "client_ip_address": "256.256.256.256" }, "custom_data": { "currency": "<CURRENCY>", "value": "<VALUE>" }, "data_processing_options": ["LDU"], "data_processing_options_country": 0, "data_processing_options_state": 0 } ] }
Чтобы включить режим LDU и вручную указать местоположение, например для штата Калифорния:
{ "data": [ { "event_name": "Purchase", "event_time": <EVENT_TIME>, "user_data": { "em": "<EMAIL>" }, "custom_data": { "currency": "<CURRENCY>", "value": "<VALUE>" }, "data_processing_options": ["LDU"], "data_processing_options_country": 1, "data_processing_options_state": 1000 } ] }
API Offline Conversions позволяет загружать события вручную из файла .csv
. В этом случае в файл нужно добавить столбцы Data Processing Options (Параметры обработки данных), Data Processing Country (Страна обработки данных) и Data Processing State (Штат обработки данных). Дополнительные сведения см. в пользовательском интерфейсе загрузки.
Подробнее о вариантах обработки данных см. в этой статье.