Públicos personalizados creados a partir de un archivo de clientes

La API de marketing te permite crear públicos objetivo personalizados a partir de la información de los clientes. Esta incluye direcciones de correo electrónico, números de teléfono, nombres, fechas de nacimiento, género, ubicaciones, identificadores de usuario de la app, identificadores de usuarios específicos de la página, identificadores de publicidad de Apple (IDFA) o identificadores de publicidad de Android.

La cuenta comercial de Meta, también conocida como cuenta del administrador comercial o simplemente cuenta comercial, cambiará su nombre por el de portfolio comercial. Este cambio se implementará gradualmente en las tecnologías de Meta. El cambio es únicamente estético y no afecta los identificadores de la cuenta comercial de Meta (identificadores del portfolio comercial).

Como propietario de los datos de tu empresa, eres responsable de crearlos y administrarlos. Esto incluye la información de tus sistemas de administración de relaciones con los clientes (CRM). Para crear públicos, debes compartir tus datos en formato hash con el objetivo de mantener la privacidad. Consulta Uso de cifrado y normalización de datos. Meta los compara con el resto de sus datos en formato hash y determina si se debe agregar a un usuario de Facebook al público de tu anuncio.

Puedes agregar una cantidad ilimitada de registros a un público, pero solo un máximo de 10.000 a la vez. Los cambios en tus públicos personalizados no se aplican de inmediato y generalmente demoran hasta 24 horas. La cantidad de registros que solicites eliminar y/o la cantidad de públicos personalizados que contenga tu cuenta aumentará el tiempo de procesamiento de esta solicitud.

Para mejorar la forma en que los anunciantes crean y administran los públicos, se marcarán de forma continua para su eliminación los públicos personalizados de un archivo de clientes que no se usaron en ningún conjunto de anuncios activo durante dos años. Es necesario que nos proporciones tus instrucciones antes de que realicemos cualquier acción. Cuando se mueven los públicos al estado "Expiring Audience" y se marca, es necesario que brindes instrucciones, ya sea que utilices los públicos marcados en un conjunto de anuncios activos, que se considerará como la instrucción de conservar el público, o que decidas no usarlos, lo que se interpretará como la instrucción de eliminar el público. Para obtener más información, consulta la documentación de información general sobre los públicos personalizados.

Si compartes eventos de conversión mediante la API de conversiones, puedes crear un sitio web de un público personalizado sin subir datos adicionales. No obstante, puedes continuar subiendo información de los clientes admitida para crear un público personalizado de un archivo de clientes.

Usa nuestra nueva API de reemplazo para eliminar por completo usuarios existentes de un público y reemplazarlos por un nuevo conjunto de usuarios. Una actualización de público realizada con la API de reemplazo no hace que tu conjunto de anuncios regrese a la fase de aprendizaje.

Crear un público personalizado

Paso 1: Crear un público personalizado vacío

Especifica subtype=CUSTOM y customer_file_source en tu llamada a la 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

NombreDescripción

Cadena de enumeración customer_file_source

Describe cómo se recopiló originalmente la información de cliente en tu público personalizado.
Valores:

  • USER_PROVIDED_ONLY
    Los anunciantes recopilaron la información directamente de los clientes
  • PARTNER_PROVIDED_ONLY
    Los anunciantes obtuvieron la información directamente de socios (por ejemplo, agencias o proveedores de datos)
  • BOTH_USER_AND_PARTNER_PROVIDED
    Los anunciantes recopilaron la información directamente de los clientes y también la obtuvieron de socios (por ejemplo, agencias)

Cadena name

Nombre del público personalizado

Cadena description

Descripción del público personalizado

Cadena subtype

Tipo de público personalizado

Paso 2: Especifica una lista de usuarios

Usa una llamada a la API POST al punto de conexión /{audience_id}/users para especificar la lista de usuarios que quieres agregar a tu público personalizado.

Parámetros

NombreDescripción

Objeto JSON session

Obligatorio
Usa el parámetro session para realizar un seguimiento si se subió un lote de usuarios específico.
Si tienes una subida de más de 10.000 usuarios, deberás dividirla en lotes separados; cada solicitud tiene un límite de 10.000 usuarios.


Ejemplo

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

Objeto JSON payload

Obligatorio
Incluye schema y data.

Ejemplo

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

Opciones de procesamiento de datos para usuarios de EE. UU.

Si el 1 de junio de 2023 o después de esa fecha quieres activar el uso limitado de datos en el caso de las personas de California mediante el uso de públicos personalizados creados a partir de listas de clientes, deberás cargar nuevos públicos o actualizar los que ya tengas con la marca de uso limitado de datos. Actualiza periódicamente tus públicos y los estados de uso limitado de datos de las personas según sea necesario.

Ten en cuenta que una marca de uso limitado de datos que se aplica a un usuario de un público no se transferirá automáticamente a distintos públicos. De igual manera, los anunciantes deben administrar los públicos personalizados creados a partir de listas de clientes preexistentes por separado según los criterios que seleccionen. La marca de uso limitado de datos debe aplicarse por separado a cada público que se utiliza para realizar la publicidad.

Para DESACTIVAR el uso limitado de datos (LDU) del registro de forma explícita, puedes enviar una matriz data_processing_options vacía o eliminar el campo en la carga útil. Ejemplo de una matriz vacía:

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

Para activar el LDU de manera explícita y que Meta realice la geolocalización (si no se incluyen ni el estado ni el país del registro determinado), especifica una matriz que contenga LDU en cada uno de los registros:

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

Para activar el LDU y especificar la ubicación de forma manual:

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

Campos session

NombreDescripción

Número entero positivo de 64 bits session_id

Obligatorio
Identificador que se usa para hacer un seguimiento de la sesión. El anunciante es quien debe generar este número, que debe ser único dentro de una cuenta publicitaria específica.

Número entero positivo batch_seq

Obligatorio
Un número para identificar la solicitud que aparece en la sesión actual. Este número debe ser secuencial y comenzar con 1.

Booleano last_batch_flag

Obligatorio

Indica a nuestros sistemas que se proporcionaron todos los lotes de la sesión de reemplazo en curso. Cuando se configura el valor true, la solicitud actual es la última de la sesión actual y no aceptamos más lotes para esa sesión. Si no envías esta marca, finalizaremos la sesión de reemplazo 90 minutos después de recibir el primer lote. Se descartarán los lotes que se reciban después de los 90 minutos. Debes marcar la última solicitud para que Meta sepa que se trata del último lote.

Número entero estimated_num_total

Opcional
Total estimado de usuarios que se subirán a esta sesión. Este campo se usa para mejorar el procesamiento de la sesión.

Respuesta

Una respuesta satisfactoria incluye un objeto JSON con los siguientes campos:

NombreDescripción

Cadena numérica audience_id

Identificador del público

Número entero session_id

El identificador de sesión que enviaste.

Número entero num_received

Número total de usuarios recibidos por el momento en la sesión en curso

Número entero num_invalid_entries

Número de entradas enviadas con cifrado incorrecto. Esas entradas no devolvieron una coincidencia ni se agregaron al público personalizado. Este no es un número exacto, pero representa el rango de números de usuarios sin coincidencia.

Matriz JSON invalid_entry_samples
de la cadena o el mapa {string: string}

Hasta 100 muestras de entradas no válidas en la solicitud en curso

Obtén más información sobre cómo compartir tu público personalizado con objetos del negocio.

Eliminación de miembros del público

Usa una llamada a la API DELETE al punto de conexión /{audience_id}/users para especificar la lista de usuarios que quieres eliminar de tu 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

O bien, puedes agregar el parámetro method y configurarlo como DELETE en la solicitud POST que se usa para agregar miembros del público.

También puedes excluir a personas de una lista con EXTERN_ID, si está disponible.

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

Puedes eliminar una lista de personas de todos los públicos personalizados en tu cuenta publicitaria con este punto de conexión.

Esta información podría no procesarse por varios motivos. Por ejemplo, si la cuenta publicitaria no pertenece a un portfolio comercial, todavía no aceptaste las Condiciones de los públicos personalizados o la información no coincide con un usuario.

Para eliminar una cuenta del centro de cuentas, incluye los mismos campos que se usan en la actualización de usuario y haz una llamada HTTP DELETE a:

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

Coincidencia de claves múltiples

Para aumentar la proporción de coincidencias de tus registros, proporciona claves múltiples en una matriz de claves individuales; por ejemplo, [EXTERN_ID, LN, FN, EMAIL]. Si bien no es necesario que cifres EXTERN_ID, sí debes cifrar toda la información de identificación personal de los miembros del público, como correos electrónicos y nombres. Consulta información detallada en Cifrado y normalización de datos.

Puedes especificar algunas o todas las claves múltiples de un registro. Para obtener más detalles, consulta la información sobre la coincidencia de identificadores externos de claves múltiples.

Agregar usuarios con coincidencias de claves múltiples

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

Mediante PAGEUID

Si usas la clave PAGEUID, también debes incluir una lista de los identificadores de la página. Solo puedes enviarnos un PAGEUID, que debería ser una matriz con un solo 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

Cifrado y normalización para claves múltiples

Debes cifrar los datos como SHA256; no admitimos otros mecanismos de cifrado. Esto es obligatorio para todos los datos, excepto los identificadores externos, los identificadores de usuario de app, los identificadores de usuario específicos de la página y los identificadores de anunciantes en celulares.

Antes de cifrar tus datos, normalízalos para que podamos procesar la acción. Solo el nombre (FN) y el apellido (LN) admiten caracteres especiales y alfabetos no romanos. Para obtener los mejores resultados de coincidencia, proporciona la traducción al alfabeto romano sin caracteres especiales.

Descarga este archivo CSV

para ver ejemplos de datos cifrados y normalizados correctamente de los parámetros que se indican a continuación.



Descargar (Clic con el botón derecho > Guardar enlace como)
ClaveNormas

EMAIL
Criterio: direcciones de correo electrónico

Cifrado obligatorio
Elimina los espacios en blanco delanteros y finales, y convierte todos los caracteres a minúsculas.

PHONE
Criterio: números de teléfono

Cifrado obligatorio
Elimina los símbolos, las letras y los ceros iniciales. Debes utilizar el prefijo del código de país si no se especifica el campo COUNTRY.

GEN
Criterio: género

Cifrado obligatorio
Utiliza estos valores: m para masculino y f para femenino.

DOBY
Criterio: año de nacimiento

Cifrado obligatorio
Utiliza el formato YYYY: 1900 al año actual.

DOBM
Criterio: mes de nacimiento

Cifrado obligatorio
Utiliza el formato MM: de 01 a 12.

DOBD
Criterio: día de nacimiento

Cifrado obligatorio
Utiliza el formato DD: de 01 a 31.

LN y FN
Criterios: nombre y apellido

Cifrado obligatorio
Utiliza solo a-z. Solo en letra minúscula y sin puntuación. Caracteres especiales en formato UTF-8.

FI
Criterio: iniciales del nombre

Cifrado obligatorio
Utiliza solo a-z. Solo en letra minúscula. Caracteres especiales en formato UTF-8.

ST
Criterio: estados de los EE. UU.

Cifrado obligatorio
Utiliza el código de abreviatura ANSI de dos caracteres en minúscula. Normaliza los estados fuera de los EE. UU. en minúscula, sin puntuación, sin caracteres especiales y sin espacios en blanco.

CT
Criterio: ciudad

Cifrado obligatorio
Utiliza solo a-z. Solo en minúscula, sin puntuación, sin caracteres especiales y sin espacios en blanco.

ZIP
Criterio: código postal

Cifrado obligatorio
Utiliza minúscula y sin espacios en blanco. En EE. UU., usar solo los cinco primeros dígitos. En Reino Unido, usar el formato área/distrito/sector.

COUNTRY
Criterio: código de país

Cifrado obligatorio

Usa códigos de país de dos letras en minúscula en formato ISO 3166-1 alfa-2.

MADID
Criterio: identificador de anunciante en celulares

Cifrado NO obligatorio

Utiliza minúsculas y conserva los guiones.

Cifrado

Proporciona valores SHA256 para las claves normalizadas y las representaciones HEX de este valor; utiliza minúscula para las letras de la A a la F. La función hash en PHP convierte el correo electrónico y el número de teléfono normalizados.

Ejemplo:Resultado

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

f1904cf1a9d73a55fa5de0ac823c4403ded71afd4c3248d00bdcd0866552bb79

hash("sha256", "15559876543")

1ef970831d7963307784fa8688e8fce101a15685d62aa765fed23f3a2c576a4e

Identificadores externos

Puedes hacer coincidir personas para un público con tus propios identificadores, conocidos como identificadores externos (EXTERN_ID). Puede ser cualquier identificador único del anunciante, como identificadores de membresías de fidelidad, identificadores de usuarios e identificadores de cookies externas.

Si bien no es necesario que cifres este identificador, sí debes cifrar toda la información de identificación personal que envíes con los EXTERN_ID.

Para que las coincidencias funcionen mejor, también deberías usar el mismo formato cuando envíes los identificadores. Por ejemplo, si eliges utilizar la función de cifrado mediante SHA256, asegúrate de usar el mismo valor de cifrado.

Puedes utilizar estos identificadores como claves individuales para eliminar personas de públicos personalizados o crear nuevos públicos personalizados. De este modo, no es necesario que vuelvas a subir ninguna otra clave que coincida. Si etiquetas a alguien con información personal cifrada y EXTERN_ID, asignamos una prioridad menor a EXTERN_ID cuando buscamos coincidencias con personas en Facebook.

El período de retención de datos de EXTERN_ID es de 90 días.

Puedes volver a usar la asignación de EXTERN_ID para crear públicos personalizados de un archivo personalizado en una misma cuenta publicitaria.

Si tienes un público creado a partir de los campos EXTERN_ID en tu cuenta publicitaria, crea un nuevo público únicamente con los siguientes identificadores:

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

También puedes agregar a personas etiquetadas con EXTERN_ID y con coincidencia de claves múltiples.

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

Admitimos los parámetros EXTERN_ID para cuentas publicitarias individuales. No podemos usar valores de una cuenta publicitaria en ninguna otra cuenta publicitaria, incluso aunque las cuentas pertenezcan a la misma entidad.

API de reemplazo de usuarios

El punto de conexión /<CUSTOM_AUDIENCE_ID>/usersreplace te permite realizar 2 acciones con una llamada a la API:

  • Eliminar por completo los usuarios actuales de un público específico
  • Reemplazar esos usuarios por un nuevo grupo de usuarios

Usar el punto de conexión /<CUSTOM_AUDIENCE_ID>/usersreplace te permite eliminar automáticamente todos los usuarios preexistentes, en lugar de tener que subir una lista de los usuarios que deseas eliminar. Este punto de conexión tampoco restablece la fase de aprendizaje del conjunto de anuncios cuando un público es parte de los conjuntos de anuncios activos, lo que se diferencia de las llamadas a la API "POST" o "DELETE" al punto de conexión /<CUSTOM_AUDIENCE_ID>/users.

La API de reemplazo de usuarios solo funciona con públicos que cumplen con los siguientes requisitos:

  • La cantidad final de usuarios antes de ejecutar el proceso de reemplazo debe ser inferior a 100 millones. Si el público es mayor a 100 millones, te sugerimos aprovechar el punto de conexión /<CUSTOM_AUDIENCE_ID>/users para agregar o eliminar usuarios.
  • El subtipo se debe fijar en CUSTOM.
  • No se puede reemplazar un público personalizado de archivo de cliente basado en valores por un público personalizado de archivo de cliente no basado en valores o viceversa.

Primeros pasos

Antes de empezar el proceso de reemplazo, te recomendamos lo siguiente:

  • Asegúrate de que el operation_status de tu público sea Normal.

No se puede realizar otra operación de reemplazo si ya hay una en ejecución.

  • No agregues ni elimines usuarios mediante /<CUSTOM_AUDIENCE_ID>/users durante una operación de reemplazo en curso a través de /<CUSTOM_AUDIENCE_ID>/usersreplace. Si intentas ejecutar una segunda operación de reemplazo antes de que finalice la primera, recibirás un mensaje en el que se te indicará que ya hay una operación de reemplazo en curso.

  • El intervalo de duración máximo de una sesión de reemplazo es de 90 minutos. La API rechazará los lotes de una sesión que se hayan recibido 90 minutos después de iniciada la sesión. Si necesitas enviar lotes por más de 90 minutos, espera hasta que finalice la operación de reemplazo de dicha sesión y luego utilizar la operación de adición del punto de conexión /<CUSTOM_AUDIENCE>/users para el resto de las subidas.

  • Una vez que esté listo tu público, especifica la lista de usuarios que deseas reemplazar por tu público personalizado con una llamada POST al /<CUSTOM_AUDIENCE_ID>/usersreplace.

    • Una vez que inicies el proceso de reemplazo, el operation_status de tu público cambiará a replace_in_progress.
    • Si la operación de reemplazo no se completó, el operation_status cambiará a replace_error.

Parámetros de llamadas

Puedes incluir los siguientes parámetros en tu llamada POST a /<CUSTOM_AUDIENCE_ID>/usersreplace:

NombreDescripción

session

Tipo: objeto JSON

Obligatorio.

Se utiliza para hacer un seguimiento si se subió un lote de usuarios específico. Debe incluir un identificador de sesión e información de lote. Consulta Campos de sesión.


Puedes agregar hasta 10.000 personas a un público en un momento determinado. Si cuentas con más de 10.000 personas, divide tu sesión en varios lotes, que deben tener un identificador de sesión.


Ejemplo:

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

payload

Tipo: objeto JSON

Obligatorio.

Se utiliza para proporcionar información que deseas subir para tu público. Debe incluir esquemas y datos. Para obtener más información, consulta Campos de carga.


Ejemplo:

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

Campos de sesión

NombreDescripción

session_id

Tipo: número entero de 64 bits

Obligatorio.

Se utiliza para hacer un seguimiento de la sesión. Debes generar este identificador y el número debe ser único dentro de la misma cuenta publicitaria.

batch_seq

Tipo: entero

Obligatorio. Debe comenzar en 1.
Una nueva sesión de reemplazo comienza cuando recibimos una batch_seq de 1. Recomendamos no enviar lotes duplicados con una secuencia de 1 para un determinado session_id.
Etiquetar el primer lote es importante; los lotes restantes de una sesión pueden ser duplicados o tener cualquier número, excepto 1, porque usamos este parámetro para identificar el inicio de la sesión. Todos los lotes de una sesión posteriores al primero deberían enviarse después del primer lote. Ten en cuenta que el primer lote es un disparador o un paso previo para la operación de reemplazo.

last_batch_flag

Tipo: booleano

Opcional.

Indica que se proporcionaron todos los lotes de la sesión de reemplazo en curso. Si no se configura como "true", no se aceptarán más lotes en esa sesión. Si no configuras esta marca, la sesión terminará automáticamente 90 minutos después de que haya recibido el primer lote. Se descartarán los lotes que se reciban después de los 90 minutos.

estimated_num_total

Tipo: entero

Opcional.

Total estimado de usuarios que se cargarán en esta sesión. Se utiliza en nuestro sistema para mejorar el procesamiento de una sesión.

Campos de carga

NombreDescripción

schema

Tipo: cadena o JSON_Array_of_string

Obligatorio.

Especifica el tipo de información que proporcionarás. Puede ser una clave única o claves múltiples de esta lista:

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

data

Tipo: JSON_Array

Obligatorio.

Lista de datos correspondiente a un esquema.


Ejemplos:

  • Si el esquema es "EMAIL", los datos deben aparecer en una lista de correos electrónicos cifrados con sha256.
  • Si el esquema es una lista de cifrados como en el ejemplo anterior, los datos deben figurar como "phone_hash_value" o "LN_FN_ZIP_DOBYM".

Una vez que hagas tu solicitud POST, recibirás una respuesta con los siguientes campos:

NombreDescripción

account_id

Tipo: entero

El identificador de la cuenta.

session_id

Tipo: entero

El identificador de la sesión que proporcionaste.

num_received

Tipo: entero

Número total de usuarios recibidos hasta el momento en la sesión en curso.

num_invalid_entries

Tipo: entero

Número total de usuarios con un formato no válido o que no se pueden descodificar. Si este número es distinto de cero, vuelve a comprobar los datos.

invalid_entry_samples Tipo: matriz de cadena JSON

Hasta 100 muestras de entradas no válidas en la solicitud en curso. Vuelve a comprobar los datos.

Errores comunes de la API de reemplazo

Todos los errores que se devuelven del punto de conexión de reemplazo tienen el código de error 2650. Aquí, te mostramos algunos de los subcódigos de error más comunes, además de proporcionarte orientación sobre cómo resolverlos.

Subcódigo de errorDescripciónQué hacer

1870145

Actualización de público en curso

No puedes reemplazar un público personalizado de una lista de clientes que está en proceso de actualización. Espera a que la disponibilidad del público pase a "Normal" y vuelve a intentarlo.

1870158

Se agotó el tiempo de espera de la sesión de reemplazo

Alcanzaste el límite de 90 minutos de la sesión de reemplazo de lotes. Se reemplazará el público personalizado de la lista de clientes con los datos que actualizaste hasta el momento. Para agregar más lotes al público personalizado, espera que termine el proceso de reemplazo y luego usa la operación ADD.

1870147

Lote de subida no válido para reemplazo

No se detectó la primera batch_seq. Debes iniciar tu batch_seq con el número entero 1.

1870159

Finalizó la sesión de reemplazo

Esta operación de reemplazo ya finalizó porque subiste un lote con last_batch_flag==true. Para agregar más lotes al público personalizado, espera que termine el proceso de reemplazo y luego usa la operación ADD.

1870148

Se produjo un error

Tu lista de clientes no se actualizó completamente. Si el tamaño de tu público es muy diferente al esperado, considera volver a intentarlo.

1870144

Tamaño de DFCA no admitido para reemplazo

No puedes reemplazar un público personalizado de una lista de clientes que tiene un tamaño de 100 millones o más.

Recursos

Hay otros tipos de públicos que puedes desarrollar y a los que puedes dirigirte, o que puedes compartir: