Пользовательские аудитории на основе файла с данными о клиентах

API Marketing позволяет создавать целевые пользовательские аудитории на основании информации о клиентах. Это могут быть электронные адреса, номера телефонов, имена, даты рождения, пол, местоположение, ID пользователей внутри приложений, ID пользователей внутри страниц, рекламные идентификаторы Apple (IDFA) или рекламные идентификаторы Android.

Ответственность за создание этих данных и управление ими лежит на вас как на владельце бизнес-данных. Это касается и сведений из ваших систем управления взаимодействием с клиентами (CRM). Для обеспечения конфиденциальности при создании аудиторий передавайте данные исключительно в хэшированном виде. Подробнее см. в разделе о хэшировании и нормализации данных. Meta сравнивает полученную информацию с собственными хэшированными данными и определяет, кого из пользователей Facebook следует добавить в аудиторию вашей рекламы.

В аудиторию можно добавлять неограниченное количество записей, но не более 10 000 за раз. Изменения пользовательской аудитории применяются не сразу. Обычно это занимает до 24 часов. Чем больше записей вы удаляете и (или) чем больше пользовательских аудиторий содержит ваш аккаунт, тем больше времени нужно для обработки запроса.

Чтобы повысить для рекламодателей удобство создания и администрирования аудиторий, мы ввели следующее правило: пользовательские аудитории на основе файлов с данными о клиентах, не применявшиеся в активных группах объявлений более двух лет, будут помечаться для удаления. Дальнейшие действия с такой аудиторией будут зависеть от ваших инструкций. После того как к аудитории будет добавлена пометка об истечении срока действия, вы должны будете использовать ее в активной группе объявлений (мы расцениваем это как инструкцию по сохранению аудитории) либо не делать этого (это будет воспринято как инструкция по ее удалению). Дополнительные сведения см. в документации с обзором пользовательских аудиторий.

Если вы отправляете события конверсии с помощью API Conversions, создать пользовательскую аудиторию веб-сайта можно без дополнительных данных. Дополнительные данные необходимы только для создания пользовательской аудитории на основе файла с данными о клиентах.

С помощью нашего нового API Replace вы можете полностью удалить из аудитории существующих пользователей и заменить их новыми. Обновление аудитории, произведенное с помощью API Replace, не возвращает группу объявлений на этап обучения.

Создание пользовательской аудитории

1. Создайте пустую пользовательскую аудиторию.

В вызове API укажите параметры subtype=CUSTOM и customer_file_source.

curl -X POST \ -F 'name="My new Custom Audience"' \ -F 'subtype="CUSTOM"' \ -F 'description="People who purchased on my website"' \ -F 'customer_file_source="USER_PROVIDED_ONLY"' \ -F 'access_token=<ACCESS_TOKEN>' \ https://graph.facebook.com/v19.0/act_<AD_ACCOUNT_ID>/customaudiences
'use strict'; const bizSdk = require('facebook-nodejs-business-sdk'); const AdAccount = bizSdk.AdAccount; const CustomAudience = bizSdk.CustomAudience; const access_token = '<ACCESS_TOKEN>'; const app_secret = '<APP_SECRET>'; const app_id = '<APP_ID>'; const id = '<AD_ACCOUNT_ID>'; const api = bizSdk.FacebookAdsApi.init(access_token); const showDebugingInfo = true; // Setting this to true shows more debugging info. if (showDebugingInfo) { api.setDebug(true); } const logApiCallResult = (apiCallName, data) => { console.log(apiCallName); if (showDebugingInfo) { console.log('Data:' + JSON.stringify(data)); } }; let fields, params; fields = [ ]; params = { 'name' : 'My new Custom Audience', 'subtype' : 'CUSTOM', 'description' : 'People who purchased on my website', 'customer_file_source' : 'USER_PROVIDED_ONLY', }; const customaudiences = (new AdAccount(id)).createCustomAudience( fields, params ); logApiCallResult('customaudiences api call complete.', customaudiences);
require __DIR__ . '/vendor/autoload.php'; use FacebookAds\Object\AdAccount; use FacebookAds\Object\CustomAudience; use FacebookAds\Api; use FacebookAds\Logger\CurlLogger; $access_token = '<ACCESS_TOKEN>'; $app_secret = '<APP_SECRET>'; $app_id = '<APP_ID>'; $id = '<AD_ACCOUNT_ID>'; $api = Api::init($app_id, $app_secret, $access_token); $api->setLogger(new CurlLogger()); $fields = array( ); $params = array( 'name' => 'My new Custom Audience', 'subtype' => 'CUSTOM', 'description' => 'People who purchased on my website', 'customer_file_source' => 'USER_PROVIDED_ONLY', ); echo json_encode((new AdAccount($id))->createCustomAudience( $fields, $params )->exportAllData(), JSON_PRETTY_PRINT);
from facebook_business.adobjects.adaccount import AdAccount from facebook_business.adobjects.customaudience import CustomAudience from facebook_business.api import FacebookAdsApi access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_ACCOUNT_ID>' FacebookAdsApi.init(access_token=access_token) fields = [ ] params = { 'name': 'My new Custom Audience', 'subtype': 'CUSTOM', 'description': 'People who purchased on my website', 'customer_file_source': 'USER_PROVIDED_ONLY', } print AdAccount(id).create_custom_audience( fields=fields, params=params, )
import com.facebook.ads.sdk.*; import java.io.File; import java.util.Arrays; public class SAMPLE_CODE_EXAMPLE { public static void main (String args[]) throws APIException { String access_token = \"<ACCESS_TOKEN>\"; String app_secret = \"<APP_SECRET>\"; String app_id = \"<APP_ID>\"; String id = \"<AD_ACCOUNT_ID>\"; APIContext context = new APIContext(access_token).enableDebug(true); new AdAccount(id, context).createCustomAudience() .setName(\"My new Custom Audience\") .setSubtype(CustomAudience.EnumSubtype.VALUE_CUSTOM) .setDescription(\"People who purchased on my website\") .setCustomerFileSource(CustomAudience.EnumCustomerFileSource.VALUE_USER_PROVIDED_ONLY) .execute(); } }
require 'facebook_ads' access_token = '<ACCESS_TOKEN>' app_secret = '<APP_SECRET>' app_id = '<APP_ID>' id = '<AD_ACCOUNT_ID>' FacebookAds.configure do |config| config.access_token = access_token config.app_secret = app_secret end ad_account = FacebookAds::AdAccount.get(id) customaudiences = ad_account.customaudiences.create({ name: 'My new Custom Audience', subtype: 'CUSTOM', description: 'People who purchased on my website', customer_file_source: 'USER_PROVIDED_ONLY', })

Параметры

ИмяОписание

customer_file_source
строка enum

Описывает, как изначально была собрана информация о клиентах для пользовательской аудитории.
Допустимые значения:

  • USER_PROVIDED_ONLY
    Рекламодатели собрали информацию напрямую от клиентов.
  • PARTNER_PROVIDED_ONLY
    Рекламодатели получили информацию напрямую от партнеров (например, агентств или поставщиков данных).
  • BOTH_USER_AND_PARTNER_PROVIDED
    Рекламодатели собрали информацию напрямую от клиентов, а также получили ее от партнеров (например, агентств).

name
строка

Название пользовательской аудитории.

description
строка

Описание пользовательской аудитории.

subtype
строка

Тип пользовательской аудитории.

2. Задайте список пользователей.

Отправьте вызов API POST к конечной точке /{audience_id}/users и укажите список пользователей для аудитории.

Параметры

ИмяОписание

session
объект JSON

Обязательный параметр.
Используйте параметр session, чтобы определить, был ли загружен определенный пакет пользователей.
Если в вашем файле более 10 000 пользователей, разделите его на несколько пакетов. Каждый запрос может содержать не более 10 000 пользователей.


Пример

{
  "session_id":9778993, 
  "batch_seq":10, 
  "last_batch_flag":true, 
  "estimated_num_total":99996 
} 

payload
объект JSON

Обязательный параметр.
Содержит два поля: schema и data.

Пример

{ 
  "schema":"EMAIL_SHA256", 
  "data":
    [
      "<HASHED_DATA>", 
      "<HASHED_DATA>", 
      "<HASHED_DATA>" 
    ]
}

Параметры обработки данных для пользователей в США

Если вы захотите включить режим ограниченного использования данных для пользовательских аудиторий на основе списков клиентов, охватывающих людей в Калифорнии, 1 июня 2023 г. или позже, вам потребуется загрузить новые аудитории или обновить существующие, установив соответствующий флаг. Регулярно обновляйте статусы ограниченного использования данных для аудиторий и отдельных людей, учитывая свои потребности.

Обратите внимание, что установка флажка режима ограниченного использования данных для пользователя в одной аудитории не будет означать его автоматическое применение в разных аудиториях. Аналогичным способом рекламодатели должны индивидуально настраивать каждую из своих пользовательских аудиторий на основе списка клиентов в соответствии с критериями, которые они выберут, а флажок режима ограниченного использования данных должен устанавливаться отдельно для каждой аудитории, используемой для рекламы.

Чтобы явным образом НЕ включать LDU для записи, вы можете либо отправить пустой массив data_processing_options, либо удалить поле в полезных данных. Пример пустого массива:

{
   "payload": {
       "schema": [
           "EMAIL",
                    "DATA_PROCESSING_OPTIONS"
       ],
       "data": [
           [
               "<HASHED_DATA>
",
                           []
           ]
       ]
   }
}

Чтобы явным образом включить LDU и позволить Meta определить местонахождение (не добавляя страну или штат определенной записи), укажите массив, содержащий LDU, для каждой записи:

{
   "payload": {
       "schema": [
           "EMAIL",
                    "DATA_PROCESSING_OPTIONS"
       ],
       "data": [
           [
               "<HASHED_DATA>
",
                           ["LDU"]
           ]
       ]
   }
}

Чтобы включить режим LDU и вручную указать местоположение:

{
    "customer_consent": true,
    "payload": {
        "schema": [
            "EMAIL",
            "DATA_PROCESSING_OPTIONS",
            "DATA_PROCESSING_OPTIONS_COUNTRY",
            "DATA_PROCESSING_OPTIONS_STATE"
        ],
        "data": [
            [
                "<HASHED_DATA>",
                ["LDU"],
                1,
                1000
            ]
        ]
    }
}

Поля session

ИмяОписание

session_id
положительное 64-разрядное целое число

Обязательный параметр.
Идентификатор для отслеживания сеанса. Это число обязательно должно генерироваться рекламодателем и быть уникальным в пределах рекламного аккаунта.

batch_seq
положительное целое число

Обязательный параметр.
Число, идентифицирующее запрос в текущем сеансе. Это число обязательно должно задаваться по порядку и начинаться с 1.

last_batch_flag
логическое значение

Обязательный параметр.

Необходимо указать нашим системам, что для текущего сеанса замены предоставлены все пакеты. Если задано значение true, этот запрос является последним в текущем сеансе, и мы не будем принимать другие пакеты для этого сеанса. Если вы не передадите эту отметку, мы автоматически завершим сеанс замены через 90 минут после получения первого пакета. Все пакеты, полученные по истечении 90 минут, также будут отклонены. Последний запрос необходимо обозначить, чтобы сообщить Meta, что этот пакет является последним.

estimated_num_total
целое число

Необязательный параметр.
Прогнозируемое общее количество пользователей, данные о которых будут загружены в этом сеансе. Это поле используется для того, чтобы ускорить обработку сеанса.

Ответ

В случае успеха возвращается объект JSON со следующими полями:

ИмяОписание

audience_id
строка цифр

Идентификатор аудитории.

session_id
целое число

Переданный вами ID сеанса.

num_received
целое число

Общее количество пользователей, данные о которых уже получены в этом сеансе.

num_invalid_entries
целое число

Количество записей, отправленных с неправильным хэшем. Для этих записей не получено соответствие, поэтому они не попали в пользовательскую аудиторию. Это приблизительное количество несопоставленных пользователей.

invalid_entry_samples
массив JSON строк или сопоставлений {строка: строка}

Выборка, содержащая до 100 примеров недействительных записей из текущего запроса.

Подробнее об отправке пользовательских аудиторий бизнес-объектам.

Удаление участников из аудитории

Чтобы задать список пользователей, которых нужно удалить из пользовательской аудитории, выполните вызов API DELETE к конечной точке /{audience_id}/users.

curl -X DELETE \
  --data-urlencode 'payload={ 
    "schema": "EMAIL_SHA256", 
    "data": [ 
      "<HASHED_DATA>", 
      "<HASHED_DATA>", 
      "<HASHED_DATA>" 
    ] 
  }' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<VERSION>/<CUSTOM_AUDIENCE_ID>/users

Кроме того, можно использовать тот же запрос POST, что и для добавления участников аудитории, задав для параметра method значение DELETE.

Для удаления людей из списка можно использовать идентификатор EXTERN_ID (при его наличии).

curl -X DELETE \
  --data-urlencode 'payload={ 
    "schema": "EXTERN_ID", 
    "data": [ 
      "<ID>", 
      "<ID>", 
      "<ID>" 
    ] 
  }' \
  -d 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<VERSION>/<CUSTOM_AUDIENCE_ID>/users

Эта конечная точка позволяет удалить набор участников из всех пользовательских аудиторий рекламного аккаунта.

Причин, по которым эта информация не обрабатывается, может быть несколько. Например, рекламный аккаунт не принадлежит бизнес-аккаунту, вы ещё не приняли Соглашение о пользовательских аудиториях либо данные не соответствуют пользователю.

Чтобы удалить аккаунт, добавьте те же поля, что и при обновлении данных пользователя, и выполните вызов HTTP DELETE к следующей конечной точке:

https://graph.facebook.com/<API_VERSION>/act_<AD_ACCOUNT_ID>/usersofanyaudience

Сопоставление по нескольким ключам

Чтобы увеличить долю совпадения в своих данных, укажите массив из нескольких отдельных ключей, например [EXTERN_ID, LN, FN, EMAIL]. Все персональные данные, позволяющие установить личность (в том числе электронные адреса и имена), необходимо хэшировать. Для EXTERN_ID хэширование не требуется. Подробные сведения см. в разделе о хэшировании и нормализации данных.

Для записей можно указывать все или только некоторые ключи. Подробные сведения см. в разделе о сопоставлении внешнего ID по нескольким ключам.

Добавление пользователей с сопоставлением по нескольким ключам

curl \
  -F 'payload={ 
    "schema": [ 
      "FN", 
      "LN", 
      "EMAIL" 
    ], 
    "data": [ 
      [ 
        "<HASH>", 
        "<HASH>", 
        "<HASH>" 
      ], 
      [ 
        "<HASH>", 
        "<HASH>", 
        "<HASH>" 
      ] 
    ] 
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<VERSION>/<CUSTOM_AUDIENCE_ID>/users

Использование PAGEUID

При использовании ключа PAGEUID также необходимо указывать список ID Страниц. Можно отправить только один ключ PAGEUID. Он должен быть представлен в виде массива с одним элементом.

curl -X POST \
  -F 'payload={
       "schema": [
         "PAGEUID"
       ],
       "is_raw": "true",
       "page_ids": [
            "<PAGE_IDs>"
            ],
       "data": [
         [
           "<HASH>",
           "<ID>",
           "<ID>",
           "<VALUE>"
         ],
         [
           "<HASH>",
           "<ID>",
           "<ID>",
           "<VALUE>"
         ],
         [
           "<HASH>",
           "<ID>",
           "<ID>",
           "<VALUE>"
         ]
       ]
     }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<VERSION>/<CUSTOM_AUDIENCE_ID>/users

Хэширование и нормализация для нескольких ключей

Используйте для хэширования данных алгоритм SHA256. Мы не поддерживаем другие механизмы хэширования. Это требование действует для всех данных, кроме внешних идентификаторов, ID пользователей приложений, ID пользователей в пределах страниц и ID рекламодателей на мобильных устройствах.

Перед хэшированием данные необходимо нормализовать, иначе мы не сможем их обработать. Использовать специальные символы и буквы, которых нет в латинице, можно только в полях FN (имя) и LN (фамилия). Для максимально точного сопоставления транслитерируйте имена латиницей, не используя специальные символы.

Скачайте этот файл CSV

,

чтобы ознакомиться с примерами правильно нормализованных и хэшированных данных для параметров.



Скачать (нажмите правую кнопку мыши и выберите "Сохранить ссылку как")
КлючИнструкции

EMAIL
критерии: электронные адреса

Хэширование обязательно.
Удаляйте пробелы в начале и конце адреса. Преобразуйте все символы в нижний регистр.

PHONE
критерии: номера телефона

Хэширование обязательно.
Удаляйте символы, буквы и начальные нули. Если поле COUNTRY не задано, добавьте код страны в качестве префикса.

GEN
критерий: пол

Хэширование обязательно.
Используйте m для мужчин и f для женщин.

DOBY
критерий: год рождения

Хэширование обязательно.
Используйте формат YYYY: с 1900 по текущий год.

DOBM
критерий: месяц рождения

Хэширование обязательно.
Используйте формат MM: с 01 по 12.

DOBD
критерий: день рождения

Хэширование обязательно.
Используйте формат DD: с 01 по 31.

LN и FN
критерии: имя и фамилия

Хэширование обязательно.
Можно использовать только буквы латинского алфавита (az) в нижнем регистре, без знаков препинания. Для специальных символов используйте формат UTF-8.

FI
критерий: инициал имени

Хэширование обязательно.
Используйте только символы a — z в нижнем регистре. Для специальных символов используйте формат UTF-8.

ST
критерий: штат США

Хэширование обязательно.
Используйте код ANSI из 2 символов в нижнем регистре. Нормализуйте названия административно-территориальных единиц других стран: они должны быть в нижнем регистре, без знаков препинания, специальных символов и пробелов.

CT
критерий: город

Хэширование обязательно.
Можно использовать только буквы латинского алфавита (a — z) в нижнем регистре, без знаков препинания, специальных символов и пробелов.

ZIP
критерий: почтовый индекс

Хэширование обязательно.
В нижнем регистре, без пробелов. Для США используйте только первые 5 знаков, для Великобритании — формат "область/район/сектор".

COUNTRY
критерий: код страны

Хэширование обязательно.

Используйте двухбуквенные коды стран (в нижнем регистре) в формате ISO 3166-1 alpha-2.

MADID
критерий: ID рекламодателя на мобильном устройстве

Хэширование НЕ обязательно.

Указывайте значения в нижнем регистре и не удаляйте дефисы.

Хэширование

Указывайте значения в формате SHA256 для нормализованных ключей и шестнадцатеричное представление HEX этих значений. Используйте буквы с A по F в нижнем регистре. Функция hash в PHP преобразует нормализованные значения электронных адресов и номеров телефонов.

ПримерРезультат

hash("sha256", "mary@example.com")

f1904cf1a9d73a55fa5de0ac823c4403ded71afd4c3248d00bdcd0866552bb79

hash("sha256", "15559876543")

1ef970831d7963307784fa8688e8fce101a15685d62aa765fed23f3a2c576a4e

Внешние идентификаторы

Для добавления людей в аудиторию можно использовать собственные ID. Это так называемые внешние идентификаторы, или EXTERN_ID. Это могут быть любые уникальные идентификаторы, регистрируемые рекламодателем: ID участников программы лояльности, ID пользователей, ID внешних файлов cookie и т. д.

Эти ID не нужно хэшировать, однако хэширование обязательно для всех персональных данных, которые отправляются с EXTERN_ID и позволяют установить личность пользователя.

Чтобы поиск совпадений был эффективнее, используйте при отправке ID точно такой же формат. Например, если для хэширования применяется алгоритм SHA256, указывайте одно и то же хэшированное значение.

Эти ID можно использовать в качестве индивидуальных ключей для создания пользовательских аудиторий и удаления их участников. Так вам не понадобится заново загружать другие ключи сопоставления. Если для одного человека задана хэшированная личная информация и EXTERN_ID, при сопоставлении пользователя с другими людьми на Facebook EXTERN_ID имеет второстепенное значение.

Срок удержания данных EXTERN_ID составляет 90 дней.

EXTERN_ID можно использовать для разных пользовательских аудиторий на основе файла в одном рекламном аккаунте.

Если в вашем рекламном аккаунте есть аудитория с полями EXTERN_ID, создайте новую аудиторию на основе только этих идентификаторов.

curl \
  -F 'payload={"schema":"EXTERN_ID","data":["<ID>","<ID>"]}' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<VERSION>/<CUSTOM_AUDIENCE_ID>/users

Кроме того, можно добавить людей с меткой EXTERN_ID и сопоставлением по нескольким ключам.

curl \
  -F 'payload={ 
    "schema": [ 
      "EXTERN_ID", 
      "FN", 
      "EMAIL", 
      "LN" 
    ], 
    "data": [ 
      [ 
        "<ID>", 
        "<HASH>", 
        "<HASH>", 
        "<HASH>" 
      ], 
      [ 
        "<ID>", 
        "<HASH>", 
        "<HASH>", 
        "<HASH>" 
      ], 
      [ 
        "<ID>", 
        "<HASH>", 
        "<HASH>", 
        "<HASH>" 
      ] 
    ] 
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<VERSION>/<CUSTOM_AUDIENCE_ID>/users

Мы поддерживаем параметры EXTERN_ID на уровне отдельных рекламных аккаунтов. Мы не можем использовать значения из одного рекламного аккаунта в других таких аккаунтах, даже если у них один владелец.

API Replace Users

Конечная точка /<CUSTOM_AUDIENCE_ID>/usersreplace позволяет выполнить 2 действия в одном вызове:

  • полностью удалить существующих пользователей из определенной аудитории;
  • заменить их новой группой пользователей.

Конечная точка /<CUSTOM_AUDIENCE_ID>/usersreplace позволяет автоматически удалить всех существующих пользователей, не загружая список пользователей для удаления. При использовании этой конечной точки этап обучения группы объявлений, когда аудитория входит в активные группы объявлений, не сбрасывается, как это происходит при использовании вызовов API POST и DELETE к конечной точке /<CUSTOM_AUDIENCE_ID>/users.

API Replace Users работает только с аудиториями, которые отвечают следующим требованиям:

  • Количество имеющихся пользователей перед запуском процесса замены должно быть меньше 100 миллионов. Если размер аудитории превышает 100 миллионов, рекомендуем применять для добавления и удаления пользователей конечную точку /<CUSTOM_AUDIENCE_ID>/users.
  • Должен быть выбран подтип CUSTOM.
  • Заменить пользовательскую аудиторию на основе файла с данными о клиентах на базе ценности аудиторией не на базе ценности или наоборот невозможно.

Начало замены

Перед началом процесса замены учтите следующие рекомендации:

  • аудитория operation_status должна иметь статус Normal.

Выполнить замену в момент, когда выполняется другая операция замены, невозможно.

  • Кроме того, во время замены через конечную точку /<CUSTOM_AUDIENCE_ID>/usersreplace добавлять и удалять пользователей через /<CUSTOM_AUDIENCE_ID>/users также нельзя. Если вы попытаетесь выполнить вторую операцию замены до завершения первой, то получите сообщение о том, что замена уже выполняется.

  • Максимальная продолжительность одного сеанса замены составляет 90 минут. API отклоняет все пакеты в рамках сеанса, полученные по истечении 90 минут с момента его начала. Если вам нужно отправлять пакеты в течение интервала, превышающего 90 минут, дождитесь, пока завершится операция замены для этого сеанса, а затем добавьте оставшихся пользователей, используя конечную точку /<CUSTOM_AUDIENCE>/users.

  • Когда аудитория будет готова, укажите список пользователей, которых вы хотите заменить своей пользовательской аудиторией, выполнив вызов POST к /<CUSTOM_AUDIENCE_ID>/usersreplace.

    • После запуска операции замены параметр operation_status аудитории принимает значение replace_in_progress.
    • Если полностью выполнить замену не удалось, параметр operation_status аудитории принимает значение replace_error.

Параметры вызова

В вызове POST к /<CUSTOM_AUDIENCE_ID>/usersreplace можно указать следующие параметры:

ИмяОписание

session

Тип: объект JSON

Обязательный параметр.

Позволяет отслеживать загрузку определенного пакета пользователей. Должен содержать ID сеанса и сведения о пакете. См. раздел, посвященный полям сеанса.


За раз в аудиторию можно добавить до 10 000 человек. Если количество ваших пользователей превышает 10 000, разбейте сеанс на несколько пакетов с одинаковым ID сеанса.


Пример:

{
  'session_id':9778993, 
  'batch_seq':10, 
  'last_batch_flag':true, 
  'estimated_num_total':99996 
}

payload

Тип: объект JSON

Обязательный параметр.

Содержит информацию, которую нужно загрузить в аудиторию. Должен содержать схему и данные (дополнительные сведения см. в разделе, посвященном полям полезных данных).


Пример:

{ 
  "schema":"EMAIL", 
  "data":["<HASHED_EMAIL>", "<HASHED_EMAIL>", "<HASHED_EMAIL>" ]
}

Поля сеанса

ИмяОписание

session_id

Тип: 64-разрядное целое число

Обязательный параметр.

Используется для отслеживания сеанса. Этот идентификатор необходимо сгенерировать. Соответствующее число должно быть уникальным в пределах рекламного аккаунта.

batch_seq

Тип: целое число

Обязательный параметр. Значение должно начинаться с 1.
Когда мы получаем batch_seq с числом 1, начинается сеанс замены. Не рекомендуется отправлять дублирующие пакеты с последовательностью 1 для отдельно взятого сеанса session_id.
Важно отметить первый пакет. Все другие пакеты сеанса могут быть дубликатами или иметь любые номера, кроме 1, так как именно этот параметр мы используем для распознавания начала сеанса. Все прочие пакеты в рамках одного сеанса должны отправляться только после отправки первого. Первый пакет можно рассматривать в качестве триггера или предварительного шага для операции замены.

last_batch_flag

Тип: логическое значение

Необязательный параметр.

Указывает, что для текущего сеанса замены предоставлены все пакеты. Если задано значение true, для этого сеанса другие пакеты более не принимаются. Если вы не установите эту отметку, сеанс будет автоматически завершен через 90 минут после получения первого пакета. Все пакеты, полученные по прошествии 90 минут, также будут отклонены.

estimated_num_total

Тип: целое число

Необязательный параметр.

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

Поля полезных данных

ИмяОписание

schema

Тип: строка или JSON_Array_of_string

Обязательный параметр.

Задает тип передаваемой информации. Это может быть один или несколько ключей из следующего списка:

  • EMAIL
  • PHONE
  • GEN
  • DOBY
  • DOBM
  • DOBD
  • LN
  • FN
  • FI
  • CT
  • ST
  • ZIP
  • COUNTRY
  • MADID
  • ["hash1", "hash2", ...] Пример: ["PHONE", "LN”, “FN”, “ZIP”, “DOBYM"]

data

Тип: массив JSON

Обязательный параметр.

Список данных, соответствующих схеме.


Примеры:

  • Если используется схема "EMAIL", данные должны представлять собой список хэшей электронных адресов sha256.
  • Если схема является списком хэшей, как в предыдущем примере, данные должны выглядеть следующим образом: "phone_hash_value", "LN_FN_ZIP_DOBYM".

Запрос POST должен вернуть ответ со следующими полями:

ИмяОписание

account_id

Тип: целое число

Идентификатор аккаунта.

session_id

Тип: целое число

ID сеанса, который вы передали ранее.

num_received

Тип: целое число

Общее количество пользователей, данные о которых уже получены в этом сеансе.

num_invalid_entries

Тип: целое число

Общее количество пользователей, информация о которых имеет недействительный формат или записи о которых не удалось расшифровать. Если это значение отлично от нуля, проверьте загружаемые данные.

invalid_entry_samples Тип: массив строк JSON

Выборка, содержащая до 100 примеров недействительных записей из текущего запроса. Проверьте загружаемые данные.

Распространенные ошибки при использовании API Replace

Все ошибки, возвращаемые конечной точкой замены, имеют код 2650. Ниже перечислены некоторые подкоды наиболее распространенных возвращаемых ошибок и способы их устранения.

Подкод ошибкиОписаниеРешение

1870145

Выполняется обновление аудитории.

Нельзя выполнить замену пользовательской аудитории на основе списка клиентов, если она находится в процессе обновления. Дождитесь, когда аудитория перейдет в статус Normal, и повторите попытку.

1870158

Превышено время сеанса замены.

Вы достигли 90-минутного ограничения времени для сеанса пакетной замены. Ваша пользовательская аудитория на основе списка клиентов будет заменена теми данными, которые вы загрузили на настоящий момент. Чтобы добавить дополнительные данные в пользовательскую аудиторию, дождитесь завершения замены и выполните операцию ADD.

1870147

Неверный пакет загрузки для замены.

Первый batch_seq не обнаружен. Параметр batch_seq должен начинаться целым числом 1.

1870159

Сеанс замены завершен.

Эта операция замены уже завершилась, поскольку вы загрузили пакет с параметром last_batch_flag==true. Чтобы добавить в пользовательскую аудиторию дополнительные пакеты, дождитесь завершения замены и выполните операцию ADD.

1870148

Произошла ошибка.

Ваш список клиентов обновлен не полностью. Если размер вашей аудитории значительно отличается от ожидаемого, попробуйте повторить попытку.

1870144

Размер пользовательской аудитории на основе файла данных не поддерживается для замены

Нельзя заменить пользовательскую аудиторию на основе списка клиентов, размер которой составляет 100 миллионов или больше.

Дополнительная информация

Существуют и другие типы аудиторий, которые можно создавать, использовать для таргетинга и предоставлять другим компаниям: