Públicos personalizados a partir de um arquivo de cliente

A API de Marketing permite criar públicos-alvo personalizados a partir das informações do cliente. Isso inclui endereços de email, telefones, nomes, datas de nascimento, gênero, localizações, números de identificação do usuário do app, números de identificação do usuário no escopo da Página, Identificador de Anunciante da Apple (IDFA, pelas iniciais em inglês) ou ID de publicidade do Android.

A conta empresarial da Meta, às vezes chamada de conta do Gerenciador de Negócios ou conta empresarial, está sendo renomeada como portfólio empresarial. Essa mudança aparecerá aos poucos em todas as tecnologias da Meta. A alteração é apenas superficial e não afeta as identificações de contas empresariais da Meta (identificações de portfólio empresarial).

Como proprietário dos dados da sua empresa, você é responsável pela criação e pelo gerenciamento dessas informações. Isso inclui as informações dos sistemas de gestão do relacionamento com o cliente (CRM). Para criar públicos, é necessário compartilhar seus dados em um formato com hash, de modo a manter a privacidade. Consulte Como fazer hashing e normalizar dados. A Meta os compara aos nossos dados com hash para verificar se devemos adicionar alguém que está no Facebook ao público do seu anúncio.

Você pode adicionar um número ilimitado de registros a um público, com o máximo de 10 mil por vez. As alterações nos públicos personalizados não são aplicadas de maneira automática. Geralmente, isso leva até 24 horas. O número de registros cuja remoção for solicitada e/ou o número de públicos personalizados na sua conta aumentará o tempo necessário para processar a solicitação.

Para melhorar a forma como os anunciantes criam e gerenciam públicos, os públicos personalizados de arquivo de cliente que não são usados em nenhum conjunto de anúncios ativo por mais de dois anos são sinalizados para exclusão periodicamente. Forneça instruções para que possamos realizar as ações necessárias. Assim que um público for sinalizado e movido para o estágio "Público prestes a expirar", você poderá usá-lo em um conjunto de anúncios ativos, e isso será entendido como uma instrução para que ele seja retido. Caso você decida não usar o público, isso será considerado uma instrução para que ele seja excluído. Para mais informações, consulte a documentação Custom Audiences Overview.

Caso compartilhe eventos de conversão por meio da API de Conversões, você poderá criar um site para um público personalizado sem carregamentos de dados adicionais. No entanto, ainda é possível carregar informações do cliente aceitas para criar um público personalizado de arquivo de cliente.

Use a nova API de Substituição para remover totalmente usuários de um público e substituí-los por um novo conjunto de usuários. Uma atualização de público feita com a API de Substituição não fará com que seu conjunto de anúncios volte à fase de aprendizado.

Criar um Público Personalizado

Etapa 1: criar um público personalizado vazio

Especifique subtype=CUSTOM e customer_file_source na sua chamada de API.

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/v21.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', })

Parâmetros

NomeDescrição

customer_file_source
string de enumeração

Descreve como as informações do cliente no seu público personalizado foram coletadas originalmente.
Valores:

  • USER_PROVIDED_ONLY
    Os anunciantes coletaram informações diretamente de clientes.
  • PARTNER_PROVIDED_ONLY
    Os anunciantes extraíram informações diretamente de parceiros (por exemplo, agências ou provedores de dados).
  • BOTH_USER_AND_PARTNER_PROVIDED
    Os anunciantes coletaram informações diretamente de clientes, além de extraí-las de parceiros (por exemplo, agências).

name
string

Nome do público personalizado.

description
string

Descrição do público personalizado.

subtype
string

Tipo de público personalizado.

Etapa 2: especificar uma lista de usuários

Use uma chamada de API POST ao ponto de extremidade /{audience_id}/users para especificar a lista de usuários que você quer adicionar ao público personalizado.

Parâmetros

NomeDescrição

session
objeto JSON

Obrigatório.
Use o parâmetro session para rastrear o carregamento de um lote específico de usuários.
Caso você tenha um carregamento com mais de 10 mil usuários, será preciso dividi-lo em lotes, já que esse é o máximo por solicitação.


Exemplo

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

payload
objeto JSON

Obrigatório.
Inclui schema e data.

Exemplo

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

Opções de processamento de dados para usuários nos EUA

Se você quiser habilitar o Uso Limitado de Dados para pessoas na Califórnia por meio de públicos personalizados de lista de clientes a partir de 1º de junho de 2023, carregue novos públicos ou atualize os existentes com a sinalização de Uso Limitado de Dados. Atualize e mantenha os status de Uso Limitado de Dados dos seus públicos e das pessoas, conforme necessário.

Uma sinalização de Uso Limitado de Dados aplicada a um usuário em um público não será transferida automaticamente para públicos diferentes. Da mesma forma que os anunciantes devem gerenciar cada um dos públicos personalizados de lista de clientes separadamente pelos critérios selecionados, a sinalização de Uso Limitado de Dados precisa ser aplicada de modo específico a cada público usado para publicidade.

Para NÃO habilitar o LDU de forma explícita para o registro, você pode enviar uma matriz de data_processing_options vazia ou remover o campo na carga. Exemplo de uma matriz vazia:

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

Para habilitar o LDU de forma explícita e fazer com que a Meta realize a geolocalização (ao não incluir o estado nem o país do registro), especifique uma matriz contendo LDU para cada registro:

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

Para habilitar o Uso Limitado de Dados e especificar manualmente a localização:

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

Campos de session

NomeDescrição

session_id
número inteiro positivo de 64 bits

Obrigatório.
Identificador usado para acompanhar a sessão. Esse número precisa ser gerado pelo anunciante e exclusivo para determinada conta de anúncios.

batch_seq
número inteiro positivo

Obrigatório.
Número para identificar a solicitação listada na sessão atual. Ele precisa ser sequencial e começar com 1.

last_batch_flag
booliano

Obrigatório

Indica aos nossos sistemas que foram fornecidos todos os lotes para a sessão de substituição em andamento. Quando for definido como true, isso significa que a solicitação atual é a última, e não serão aceitos mais lotes na sessão. Caso a sinalização não seja definida, encerraremos a sessão automaticamente 90 minutos após o recebimento do primeiro lote. Os lotes recebidos depois disso serão descartados. É necessário marcar a última solicitação para que a Meta saiba que o lote em questão é o último.

estimated_num_total
número inteiro

Opcional.
O total estimado de usuários que serão carregados na sessão. Esse campo é usado para melhorar o processamento da sessão.

Resposta

Se for bem-sucedida, a resposta incluirá um objeto JSON com os seguintes campos:

NomeDescrição

audience_id
string numérica

Identificador do público.

session_id
número inteiro

O ID da sessão informado por você.

num_received
número inteiro

Número total de usuários recebidos nesta sessão até o momento

num_invalid_entries
número inteiro

O número de entradas enviadas com hash incorreto. Essas entradas não retornaram uma correspondência nem foram adicionadas ao público personalizado. Não é um número exato, mas representa a faixa de número dos usuários que não tiveram correspondência.

invalid_entry_samples
matriz JSON de string ou mapa {string: string}

Até 100 exemplos de entradas inválidas na solicitação atual.

Saiba mais sobre como compartilhar o público personalizado com objetos para empresas.

Remova membros do público

Use uma chamada de API DELETE ao ponto de extremidade /{audience_id}/users para especificar a lista de usuários que você quer remover do público personalizado.

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

Outra possibilidade é adicionar o parâmetro method e defini-lo como DELETE na solicitação POST usada para adicionar membros do público.

Você pode remover pessoas de uma lista com EXTERN_ID, se disponível.

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

Você pode remover uma lista de pessoas de todos os públicos personalizados na conta de anúncios por meio desse ponto de extremidade.

Pode haver motivos para as informações não serem processadas. Por exemplo, se a conta de anúncios não pertencer a um portfólio empresarial, se você não tiver aceitado os Termos de Público Personalizado ou se as informações não corresponderem a um usuário.

Para remover uma conta da Central de Contas, inclua os mesmos campos necessários na atualização de usuário e faça uma chamada HTTP DELETE a:

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

Correspondência com várias chaves

Para aumentar a taxa de correspondência dos seus registros, forneça diversas chaves em uma matriz de chaves individuais, por exemplo, [EXTERN_ID, LN, FN, EMAIL]. Embora não seja necessário aplicar hash a EXTERN_ID, esse processo deverá ser feito com todas as informações de identificação pessoal, como emails e nomes. Consulte Hashing e normalização para várias chaves para ver mais informações.

Você pode fornecer algumas chaves ou todas elas para um registro. Para mais detalhes, consulte Correspondência com várias chaves de ID externo.

Adicionar usuários com correspondências de várias chaves

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

Uso de PAGEUID

Se você usar a chave PAGEUID, será necessário incluir uma lista de identificações de Página. Você pode nos enviar somente um PAGEUID, que deve ser uma matriz com um elemento.

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

Hashing e normalização para várias chaves

É necessário aplicar hash aos dados como SHA256. Não aceitamos outros mecanismos de hashing. Isso é obrigatório para todos os dados, exceto Identificadores Externos, números de identificação do usuário do app, IDs do usuário no escopo da Página e identificações dos anunciantes da plataforma móvel.

Antes de aplicar hash, normalize seus dados para que possamos lidar com eles. Apenas Nome (FN) e Sobrenome (LN) aceitam caracteres especiais e alfabetos não romanos. Para melhores resultados de correspondência, forneça a transliteração no alfabeto romano sem caracteres especiais.

Baixe este arquivo CSV

para ver exemplos de dados com hash adequadamente normalizados e convertidos para os parâmetros abaixo.



Baixar (Clique com o botão direito > Salvar link como)
ChaveDiretrizes

EMAIL
critério: endereços de email

Hashing obrigatório
Recorte os espaços em branco à esquerda e à direita e converta todos os caracteres em letras minúsculas.

PHONE
critério: telefones

Hashing obrigatório
Remova símbolos, letras e zeros à esquerda. Adicione o código do país como prefixo caso o campo COUNTRY não esteja especificado.

GEN
critério: gênero

Hashing obrigatório
Use os seguintes valores: m para masculino e f para feminino.

DOBY
critério: ano de nascimento

Hashing obrigatório
Use o formato AAAA de 1900 até o ano atual.

DOBM
critério: mês de nascimento

Hashing obrigatório
Use o formato MM de 01 a 12.

DOBD
critério: aniversário

Hashing obrigatório
Use o formato DD de 01 a 31.

LN e FN
critério: nome e sobrenome

Hashing obrigatório
Use somente a a z. Apenas minúsculas, sem pontuação. Caracteres especiais no formato UTF-8.

FI
critério: inicial do nome

Hashing obrigatório
Use somente a a z. Apenas minúsculas. Caracteres especiais no formato UTF-8.

ST
critério: estados dos EUA

Hashing obrigatório
Use o código de abreviação ANSI de dois caracteres, em minúsculas. Padronize os estados não pertencentes aos EUA em letras minúsculas sem pontuação, caracteres especiais nem espaços em branco.

CT
critério: cidade

Hashing obrigatório
Use somente a a z. Apenas minúsculas sem pontuação, caracteres especiais nem espaços em branco.

ZIP
critério: código postal

Hashing obrigatório
Use minúsculas sem espaços em branco. Para os EUA, use apenas os 5 primeiros dígitos. Para o Reino Unido, use o formato área/distrito/setor.

COUNTRY
critério: código do país

Hashing obrigatório

Use os códigos de país de duas letras no padrão ISO 3166-1 alfa-2, em minúsculas.

MADID
critério: identificação do anunciante da plataforma móvel

Hashing não obrigatório

Use apenas letras minúsculas e mantenha os hifens.

Uso de hash

Forneça valores SHA256 para as chaves normalizadas e representações HEX desse valor em letras minúsculas de A a F. A função hash em PHP converte emails e telefones normalizados.

ExemploResultado

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

f1904cf1a9d73a55fa5de0ac823c4403ded71afd4c3248d00bdcd0866552bb79

hash("sha256", "15559876543")

1ef970831d7963307784fa8688e8fce101a15685d62aa765fed23f3a2c576a4e

Identificadores Externos

Você pode fazer a correspondência de pessoas para um público com os próprios identificadores, conhecidos como Identificadores Externos (EXTERN_ID). Pode ser qualquer identificação única do anunciante, como IDs de membro de programa de fidelidade, números de identificação do usuário e IDs de cookie externo.

Embora não seja necessário aplicar hash à identificação, esse processo deverá ser feito com todas as informações de identificação pessoal (PII) enviadas com os EXTERN_IDs.

Para melhorar a correspondência, use exatamente o mesmo formato ao enviar os IDs. Por exemplo, se escolher aplicar hash usando SHA256, use o mesmo valor com hash.

Você pode usar esses IDs como chaves pessoais para criar públicos personalizados ou excluir pessoas deles. Dessa forma, você não precisa carregar novamente nenhuma outra chave correspondente. Se você marcar alguém com informações pessoais convertidas em hash e EXTERN_ID, o EXTERN_ID terá prioridade menor na correspondência com pessoas no Facebook.

O período de retenção de dados de EXTERN_ID é de 90 dias.

É possível reutilizar o mapeamento de EXTERN_ID para gerar públicos personalizados a partir de arquivos de clientes em uma mesma conta de anúncios.

Se você tiver um público com campos EXTERN_ID na sua conta de anúncios, crie um novo público somente com esses identificadores.

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

Você também pode adicionar pessoas com marcações de EXTERN_ID e correspondência com várias chaves.

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

Aceitamos parâmetros EXTERN_ID para contas de anúncios individuais. Não é possível usar valores de uma conta de anúncios em outras, mesmo que elas pertençam à mesma entidade.

API de Substituição de Usuários

O ponto de extremidade /<CUSTOM_AUDIENCE_ID>/usersreplace permite que você realize duas ações com uma chamada de API:

  • Remover completamente os usuários existentes de um público específico;
  • Substituí-los por um novo conjunto de usuários.

O ponto de extremidade /<CUSTOM_AUDIENCE_ID>/usersreplace permite que você remova automaticamente todos os usuários existentes em vez de carregar uma lista com todos os usuários a serem excluídos. Ele não redefinirá a fase de aprendizado do seu conjunto de anúncios quando um público estiver em conjuntos ativos, ao contrário das chamadas de API POST ou DELETE ao ponto de extremidade /<CUSTOM_AUDIENCE_ID>/users.

A API de Substituição de Usuários funciona apenas com públicos que atendem aos requisitos a seguir:

  • O número de usuários no local antes da execução do processo de substituição deve ser menor que 100 milhões. Se o público for maior que esse valor, sugerimos usar o ponto de extremidade /<CUSTOM_AUDIENCE_ID>/users para adicionar e remover usuários.
  • O subtipo deve ser definido como CUSTOM.
  • Não é possível substituir um público personalizado de arquivo de cliente baseado em valor por outro que não tenha como base um valor e vice-versa.

Primeiros passos

Antes de você começar o processo de substituição, recomendamos o seguinte:

  • Verifique se o operation_status do público é Normal.

Não é possível executar mais de uma operação de substituição ao mesmo tempo.

  • Não adicione nem remova usuários usando /<CUSTOM_AUDIENCE_ID>/users durante uma operação de substituição por meio de /<CUSTOM_AUDIENCE_ID>/usersreplace. Caso tente fazer uma segunda operação de substituição antes que a primeira seja concluída, você receberá uma mensagem indicando que já existe uma operação em andamento.

  • A janela de duração máxima de uma sessão de substituição é de 90 minutos. A API rejeitará os lotes da sessão recebidos após esse período. Se for necessário enviar lotes durante mais de 90 minutos, recomendamos esperar até que a operação de substituição da sessão tenha sido finalizada e, depois, usar a operação de adição do ponto de extremidade /<CUSTOM_AUDIENCE>/users para os carregamentos restantes.

  • Assim que seu público estiver pronto, especifique a lista de usuários que você quer substituir pelo público personalizado por meio de uma chamada POST a /<CUSTOM_AUDIENCE_ID>/usersreplace.

    • Após iniciar o processo de substituição, o operation_status do seu público mudará para replace_in_progress.
    • Caso a operação de substituição não tenha sido concluída, o operation_status do público mudará para replace_error.

Parâmetros de chamada

Os seguintes parâmetros podem ser incluídos na sua chamada POST a /<CUSTOM_AUDIENCE_ID>/usersreplace:

NomeDescrição

session

Tipo: objeto JSON

Obrigatório.

Usado para rastrear o carregamento de um lote específico de usuários. É necessário incluir um ID de sessão e informações do lote. Consulte Campos de sessão.


Você pode adicionar até 10 mil pessoas a um público por vez. Caso queira adicionar mais que isso, divida a sessão em vários lotes com um ID de sessão.


Exemplo:

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

payload

Tipo: objeto JSON

Obrigatório.

Usado para fornecer as informações que você quer carregar no público. É necessário incluir esquemas e dados. Consulte Campos de carga para saber mais.


Exemplo:

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

Campos de sessão

NomeDescrição

session_id

Tipo: número inteiro de 64 bits

Obrigatório.

Usado para rastrear a sessão. Você precisa gerar esse identificador, e o número deve ser único dentro da mesma conta de anúncios.

batch_seq

Tipo: número inteiro

Obrigatório. Precisa começar com 1.
Uma nova sessão de substituição começa quando recebemos uma batch_seq de 1. Recomendamos não enviar lotes duplicados com uma sequência de 1 para determinado session_id.
É importante identificar o primeiro lote, pois os lotes restantes da sessão podem ser duplicatas ou outro número (com exceção de 1, porque esse número é usado para marcar o início da sessão). Todos os lotes não iniciais de uma sessão devem ser enviados após o primeiro. Considere o primeiro lote como acionador/etapa prévia para a operação de substituição.

last_batch_flag

Tipo: booliano

Opcional.

Indica que foram fornecidos todos os lotes para a sessão de substituição em andamento. Quando for definido como true, não serão aceitos mais lotes na sessão. Caso a sinalização não seja definida, a sessão será encerrada automaticamente 90 minutos após o recebimento do primeiro lote. Os lotes recebidos depois disso serão descartados.

estimated_num_total

Tipo: número inteiro

Opcional.

O total estimado de usuários que serão carregados na sessão. Usado pelo nosso sistema para aprimorar o processamento de uma sessão.

Campos de carga

NomeDescrição

schema

Tipo: string ou JSON_Array_of_string

Obrigatório.

Especifique o tipo de informação que você fornecerá. Pode ser uma chave única ou várias chaves desta lista:

  • EMAIL
  • PHONE
  • GEN
  • DOBY
  • DOBM
  • DOBD
  • LN
  • FN
  • FI
  • CT
  • ST
  • ZIP
  • COUNTRY
  • MADID
  • ["hash1", "hash2", ...]. Por exemplo, ["PHONE", "LN”, “FN”, “ZIP”, “DOBYM"].

data

Tipo: JSON_Array

Obrigatório.

Lista de dados que correspondem ao esquema.


Exemplos:

  • Se o esquema for "EMAIL", os dados deverão ser uma lista de hashes sha256 de email.
  • Se o esquema for uma lista de hashes (como no último exemplo), os dados deverão ser como "phone_hash_value" e "LN_FN_ZIP_DOBYM".

Ao fazer a solicitação POST, você receberá uma resposta com os seguintes campos:

NomeDescrição

account_id

Tipo: número inteiro

O identificador da conta.

session_id

Tipo: número inteiro

O ID da sessão fornecido anteriormente.

num_received

Tipo: número inteiro

O total de usuários recebidos na sessão até o momento.

num_invalid_entries

Tipo: número inteiro

O total de usuários com formato inválido ou que não puderam ser decodificados. Caso esse número não seja zero, verifique seus dados novamente.

invalid_entry_samples Tipo: matriz de string JSON

Até 100 exemplos de entradas inválidas na solicitação atual. Verifique novamente seus dados.

Erros comuns da API de Substituição

Todos os erros retornados do ponto de extremidade de substituição têm o código de erro 2650. Veja alguns dos subcódigos de erro mais comuns, além de orientações sobre como corrigi-los.

Subcódigo de erroDescriçãoO que fazer

1870145

Atualização de público em andamento

Não é possível substituir um público personalizado da lista de clientes que estiver em processo de atualização. Aguarde até que a disponibilidade do público seja "Normal" e tente novamente.

1870158

A sessão de substituição atingiu o tempo-limite

O limite de 90 minutos foi atingido para a sessão de substituição em lote. O público personalizado da lista de clientes será substituído pelo que foi carregado até o momento. Para fazer mais inclusões aos públicos personalizados, aguarde até que o processo de substituição seja finalizado e, depois, use a operação ADD.

1870147

Carregamento de lote inválido para substituição

O primeiro batch_seq não foi detectado. Você precisa iniciar o batch_seq com o número inteiro 1.

1870159

Sessão de substituição concluída

A operação de substituição foi concluída porque você carregou um lote com last_batch_flag==true. Para incluir lotes adicionais aos públicos personalizados, aguarde até que o processo de substituição seja finalizado e, depois, use a operação ADD.

1870148

Ocorreu um erro.

A lista de clientes não foi completamente atualizada. Se o público tiver tamanho significativamente diferente do esperado, tente novamente.

1870144

Tamanho do público personalizado do arquivo de dados não compatível com substituição

Não é possível substituir o público de um cliente por uma lista com 100 milhões de clientes ou mais.

Recursos

Você pode criar e direcionar ou compartilhar outros tipos de público: