Audiencias personalizadas de archivos de clientes

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

Las cuentas empresariales de Meta, a veces denominadas “cuentas de Business Manager” o simplemente “cuentas empresariales”, pasarán a llamarse porfolios empresariales. Este cambio se implementará de forma gradual en las tecnologías de Meta. El cambio solo es estético y no afecta a los identificadores de las cuentas empresariales de Meta (identificadores de porfolios empresariales).

Como propietario de los datos de tu empresa, eres responsable de crear y administrar estos datos. Estos incluyen información de tus sistemas de gestión de las relaciones con los clientes (CRM). Para crear audiencias, debes compartir tus datos en un formato cifrado con hash a fin de mantener la privacidad. Consulta Aplicación de algoritmos hash y normalización de los datos. Meta los compara con los datos cifrados con hash que posee para ver si se debe añadir a alguien de Facebook a la audiencia de tu anuncio.

Puedes añadir un número ilimitado de registros a una audiencia, pero solo un máximo de 10 000 a la vez. Los cambios en las audiencias personalizadas no se realizarán de forma inmediata, sino que normalmente tardarán un total de 24 horas en aplicarse. En función del número de registros que solicites eliminar o el número de audiencias personalizadas que contenga tu cuenta, se puede tardar más tiempo en procesar la solicitud.

Para mejorar la forma en que los anunciantes crean y administran sus audiencias, las audiencias personalizadas de archivos de clientes que no se han utilizado en ningún conjunto de anuncios activo durante más de dos años se marcarán para eliminarse de forma continuada. Deberás proporcionarnos instrucciones antes de que llevemos a cabo ninguna acción. Una vez que las audiencias se han movido a la fase “Audiencia a punto de caducar” y se han marcado, deberás proporcionarnos instrucciones mediante la audiencia marcada en un conjunto de anuncios activo, lo que se considerará una instrucción para conservar la audiencia, o bien mediante la decisión de no utilizar la audiencia marcada en un conjunto de anuncios activo, lo que se considerará una instrucción para eliminar la audiencia. Para obtener más información, consulta la documentación Información de audiencias personalizadas.

Si compartes eventos de conversión mediante la API de conversiones, puedes crear un sitio web para una audiencia personalizada sin tener que subir ningún dato adicional. Sin embargo, puedes continuar subiendo información del cliente complementaria para crear una audiencia personalizada de archivo de cliente.

Utiliza nuestra nueva API de reemplazo para eliminar por completo los usuarios existentes de una audiencia y reemplazarlos por un nuevo conjunto de usuarios. La actualización de una audiencia realizada con la API de reemplazo no devuelve el conjunto de anuncios a la fase de aprendizaje.

Crear una audiencia personalizada

Paso 1: Crear una audiencia personalizada vacía

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

customer_file_source
Cadena de enumeración

Describe cómo se recopiló originalmente la información de cliente de tu audiencia personalizada.
Valores:

  • USER_PROVIDED_ONLY
    Los anunciantes recopilaron información directamente de los clientes.
  • PARTNER_PROVIDED_ONLY
    Los anunciantes obtuvieron información directamente de los socios (p. ej., agencias o proveedores de datos).
  • BOTH_USER_AND_PARTNER_PROVIDED
    Los anunciantes recopilaron información directamente de clientes, pero esta también se obtuvo de socios (p. ej., agencias).

name
Cadena

Nombre de la audiencia personalizada

description
Cadena

Descripción de la audiencia personalizada

subtype
Cadena

Tipo de audiencia personalizada

Paso 2: Especificar una lista de usuarios

Utiliza una llamada a la API POST al extremo /{audience_id}/users para especificar la lista de usuarios que quieres añadir a tu audiencia personalizada.

Parámetros

NombreDescripción

session
Objeto JSON

Obligatorio
Utiliza el parámetro session para hacer un seguimiento de si se ha subido un lote específico de usuarios.
Si tienes una subida con más de 10 000 usuarios, debes dividirla en lotes independientes (cada solicitud puede admitir un total de 10 000 usuarios).


Ejemplo

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

payload
Objeto JSON

Obligatorio
Incluye schema y data.

Ejemplo

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

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

Si quieres activar la función de uso limitado de datos para los usuarios en California mediante las audiencias personalizadas a partir de listas de clientes a partir del 1 de junio de 2023, debes subir audiencias nuevas o actualizar las audiencias existentes con la marca de uso limitado de datos. Revisa y actualiza con frecuencia las audiencias y los estados de uso limitado de datos de los usuarios según sea necesario.

Ten en cuenta que una marca de uso limitado de datos aplicada a un usuario en una audiencia no se pasará automáticamente a otras audiencias. Al igual que los anunciantes deben administrar cada una de sus audiencias personalizadas a partir de listas de clientes existentes por separado según los criterios que seleccionen, la marca de uso limitado de datos debe aplicarse de forma independiente a cada audiencia que usen para su publicidad.

Si NO quieres activar el LDU de forma explícita para el registro, 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 forma explícita y que Meta realice una geolocalización (al no incluir el estado ni el país de un registro determinado), especifica una matriz que contenga LDU para cada registro:

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

Para activar el LDU y especificar manualmente la ubicación:

{
    "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

session_id
Entero positivo de 64 bits

Obligatorio
Identificador que se utiliza para hacer un seguimiento de la sesión. Este número debe generarlo el anunciante y ser único en una cuenta publicitaria concreta.

batch_seq
Entero positivo

Obligatorio
Número para identificar la solicitud enumerada en la sesión actual. Este número debe ser secuencial y empezar en 1.

last_batch_flag
Booleano

Obligatorio

Indica a nuestros sistemas que se han proporcionado todos los lotes de la sesión de reemplazo en curso. Cuando se establece en true, la solicitud actual es la última de la sesión actual y no aceptamos ningún lote más para dicha sesión. Si no envías esta marca, finalizamos la sesión automáticamente 90 minutos después de recibir el primer lote. Cualquier lote que se reciba una vez transcurridos 90 minutos se descartará. Debes marcar la última solicitud para informar a Meta de que se trata del último lote.

estimated_num_total
Entero

Opcional
Número de usuarios total estimado que se subirán en esta sesión. Este campo se usa para mejorar el procesamiento de esta sesión.

Respuesta

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

NombreDescripción

audience_id
Cadena numérica

Identificador de la audiencia.

session_id
Entero

Identificador de la sesión que has pasado.

num_received
Entero

Número total de usuarios que se han recibido por el momento en la sesión en curso.

num_invalid_entries
Entero

Número de entradas enviadas con algoritmos hash incorrectos. Estas entradas no devolvieron ninguna coincidencia y no se añaden a la audiencia personalizada. No es un número exacto, pero representa el intervalo numérico de usuarios sin coincidencia.

invalid_entry_samples
Mapa o matriz de cadenas JSON {string: string}

Se encontraron hasta 100 muestras de entradas no válidas en la solicitud actual.

Obtén más información sobre cómo compartir la audiencia personalizada con los objetos empresariales.

Eliminación de miembros de la audiencia

Utiliza una llamada a la API DELETE al extremo /{audience_id}/users para especificar la lista de usuarios que quieres eliminar de tu audiencia personalizada.

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

También puedes añadir el parámetro method y establecerlo en DELETE en la solicitud POST utilizada para añadir miembros de la audiencia.

Puedes eliminar usuarios de una lista con el valor de 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 usuarios de todas las audiencias personalizadas de tu cuenta publicitaria mediante este extremo.

Esta información puede no tratarse por varios motivos. Por ejemplo, si la cuenta publicitaria no pertenece a ningún porfolio empresarial, si aún no has aceptado las condiciones de las audiencias personalizadas o si la información no coincide con la de ningún usuario.

Para eliminar una cuenta del Centro de cuentas, incluye los mismos campos que 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, especifica varias claves en una matriz de claves individuales; por ejemplo, [EXTERN_ID, LN, FN, EMAIL]. Aunque no necesitas aplicar algoritmos hash en EXTERN_ID, sí que debes aplicarlos en toda la información de identificación personal, como correos electrónicos y nombres. Para obtener más información, consulta Aplicación de algoritmos hash y normalización de los datos.

Puedes proporcionar algunas o todas las claves múltiples de un registro. Para obtener más información, consulta Coincidencia de identificadores externos de claves múltiples.

Añadir usuarios mediante 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

Uso de PAGEUID

Si utilizas la clave PAGEUID, también debes incluir una lista de identificadores de la página. Solo puedes enviarnos un valor de PAGEUID, que debe ser una matriz con un 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

Algoritmos hash y normalización de claves múltiples

Debes aplicar algoritmos hash a los datos como SHA256. No admitimos otros mecanismos de algoritmos hash. Esto se requiere para todos los datos, excepto los identificadores externos, identificadores de usuario de la aplicación, identificadores de usuario específicos de la página o identificadores de anunciante en móviles.

Antes de aplicar algoritmos hash a los datos, normalízalos para que los podamos gestionar. Solo el nombre (FN) y los apellidos (LN) admiten caracteres especiales y alfabetos no latinos. Para obtener los mejores resultados de coincidencia, proporciona la traducción del alfabeto latino sin caracteres especiales.

Descarga este archivo CSV

para obtener ejemplos de datos cifrados con hash y normalizados correctamente para los parámetros siguientes.



Descargar (Haz clic con el botón derecho > Guardar enlace como)
ClaveDirectrices

EMAIL
Criterio: direcciones de correo electrónico

Se requieren algoritmos hash.
Elimina los espacios en blanco del principio y del final y convierte todos los caracteres a minúsculas.

PHONE
Criterio: números de teléfono

Se requieren algoritmos hash.
Elimina los símbolos, las letras y los ceros del principio. Si no se especifica el campo COUNTRY, debes añadir el código de país como prefijo.

GEN
Criterio: género

Se requieren algoritmos hash.
Utiliza los valores siguientes: m para hombres y f para mujeres.

DOBY
Criterio: año de nacimiento

Se requieren algoritmos hash.
Utiliza el formato AAAA: de 1900 hasta el año actual.

DOBM
Criterio: mes de nacimiento

Se requieren algoritmos hash.
Utiliza el formato MM: de 01 a 12.

DOBD
Criterio: día de nacimiento

Se requieren algoritmos hash.
Utiliza el formato DD: de 01 a 31.

LN y FN
Criterio: nombre y apellidos

Se requieren algoritmos hash.
Utiliza solo letras de la a a la z. Solo minúsculas, sin signos de puntuación. Caracteres especiales en formato UTF-8.

FI
Criterio: inicial del nombre

Se requieren algoritmos hash.
Utiliza solo letras de la a a la z. Solo minúsculas. Caracteres especiales en formato UTF-8.

ST
Criterio: estados de EE. UU.

Se requieren algoritmos hash.
Utiliza el código de abreviatura ANSI de dos caracteres en minúsculas. Normaliza los estados de fuera de EE. UU. en minúsculas y sin signos de puntuación, caracteres especiales ni espacios en blanco.

CT
Criterio: ciudad

Se requieren algoritmos hash.
Utiliza solo letras de la a a la z. Solo minúsculas y sin signos de puntuación, caracteres especiales ni espacios en blanco.

ZIP
Criterio: código postal

Se requieren algoritmos hash.
Utiliza minúsculas sin espacios en blanco. Para los EE. UU., utiliza solo los cinco primeros dígitos. En el caso del Reino Unido, utiliza el formato Área/Distrito/Sector.

COUNTRY
Criterio: código de país

Se requieren algoritmos hash.

Utiliza códigos de país de dos letras en minúsculas en formato ISO 3166-1 alpha-2.

MADID
Criterio: identificador de anunciante en móviles

NO se requieren algoritmos hash.

Utiliza caracteres en minúsculas y mantén los guiones.

Algoritmos hash

Proporciona valores SHA256 para las claves normalizadas y representaciones HEX de este valor, con minúsculas de la A a la F. La función hash de PHP convierte números de teléfono y correos electrónicos normalizados.

EjemploResultado

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

f1904cf1a9d73a55fa5de0ac823c4403ded71afd4c3248d00bdcd0866552bb79

hash("sha256", "15559876543")

1ef970831d7963307784fa8688e8fce101a15685d62aa765fed23f3a2c576a4e

Identificadores externos

Puedes establecer coincidencias entre personas y una audiencia con tus propios identificadores, conocidos como identificadores externos (EXTERN_ID). Puedes utilizar cualquier identificador único del anunciante, como los identificadores de solicitudes de miembros de fidelidad, de usuario y de cookies externas.

Aunque no es necesario que apliques algoritmos hash a este identificador, sí que debes aplicarlos a toda la información de identificación personal que envíes con los valores de EXTERN_ID.

Para mejorar las coincidencias, también debes usar el mismo formato exacto cuando envíes los identificadores. Por ejemplo, si optas por aplicar un algoritmo hash con SHA256, asegúrate de utilizar el mismo valor al que lo has aplicado.

Puedes utilizar estos identificadores como claves individuales para eliminar personas de las audiencias personalizadas o crear nuevas audiencias personalizadas. De este modo, no es necesario volver a subir ninguna otra clave coincidente. Si etiquetas a alguien con información personal cifrada con hash y EXTERN_ID, damos menos prioridad al valor EXTERN_ID cuando establecemos coincidencias entre este y los usuarios de Facebook.

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

Puedes volver a utilizar la asignación EXTERN_ID para crear audiencias personalizadas de archivos de clientes en una cuenta publicitaria única.

Si tienes una audiencia de los campos EXTERN_ID en tu cuenta publicitaria, crea una nueva solo con estos 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 añadir usuarios con la etiqueta EXTERN_ID y con la 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 las cuentas publicitarias individuales. No podemos utilizar valores de una cuenta publicitaria para ninguna otra cuenta de este tipo, aunque pertenezcan a la misma entidad.

API de reemplazo de usuarios

El extremo /<CUSTOM_AUDIENCE_ID>/usersreplace te permite realizar dos acciones con una llamada a la API:

  • Eliminar por completo los usuarios existentes de una audiencia específica.
  • Reemplazar a dichos usuarios por un nuevo conjunto de usuarios.

El uso del extremo /<CUSTOM_AUDIENCE_ID>/usersreplace te permite eliminar automáticamente todos los usuarios existentes en lugar de tener que subir una lista de usuarios que quieres eliminar. Este extremo no restablece la fase de aprendizaje del conjunto de anuncios cuando la audiencia forma parte de conjuntos de anuncios activos como llamadas POST o DELETE a la API para el extremo /<CUSTOM_AUDIENCE_ID>/users.

La API de reemplazo de usuarios solo funciona con audiencias que cumplen los requisitos siguientes:

  • El número de usuarios disponibles antes de ejecutar un proceso de reemplazo debe ser inferior a 100 millones. Si tu audiencia supera los 100 millones, te sugerimos que utilices el extremo /<CUSTOM_AUDIENCE_ID>/users para añadir y eliminar usuarios.
  • El subtipo debe establecerse en CUSTOM.
  • No puedes reemplazar una audiencia personalizada de archivos de clientes basada en valores por otra que no se base en valores, ni viceversa.

Primeros pasos

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

  • Asegúrate de que el valor de operation_status de tu audiencia sea Normal.

No puedes realizar ninguna otra operación de reemplazo si ya hay una en ejecución.

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

  • El periodo máximo de duración de una sesión de reemplazo es de 90 minutos. La API rechazará todos los lotes de una sesión que reciba 90 minutos después del inicio de dicha sesión. Si necesitas enviar lotes durante un periodo superior a 90 minutos, espera hasta que se complete la operación de reemplazo de dicha sesión y, a continuación, utiliza la operación de adición del extremo /<CUSTOM_AUDIENCE>/users para el resto de las subidas.

  • Una vez que la audiencia esté lista, especifica la lista de usuarios que quieres reemplazar por la audiencia personalizada con una llamada POST a /<CUSTOM_AUDIENCE_ID>/usersreplace.

    • Una vez que inicies el proceso de reemplazo, el objeto operation_status de la audiencia cambiará a replace_in_progress.
    • Si la operación de reemplazo está incompleta, el objeto operation_status de la audiencia cambiará a replace_error.

Parámetros de llamada

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

NombreDescripción

session

Tipo: objeto JSON

Obligatorio.

Se utiliza para realizar un seguimiento si se ha subido un lote de usuarios específico. Debe incluir un identificador de la sesión e información sobre el lote. Consulta la documentación Campos de la sesión.


Puedes añadir un máximo de 10 000 usuarios a una audiencia en un momento determinado. Si tienes más de 10 000 usuarios, divide la sesión en varios lotes, todos con 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 la información que quieres subir a tu audiencia. Debe incluir el esquema y los datos. Consulta la documentación Campos de la carga para obtener más información.


Ejemplo:

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

Campos de la sesión

NombreDescripción

session_id

Tipo: 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 en la misma cuenta publicitaria.

batch_seq

Tipo: entero

Obligatorio. Debe empezar en 1.
Se inicia una nueva sesión de reemplazo cuando recibimos 1 como valor de batch_seq. Te recomendamos que no envíes lotes duplicados con una secuencia de 1 para un valor concreto de session_id.
Etiquetar el primer lote es importante; el resto de los lotes de una sesión pueden ser duplicados o cualquier número, excepto 1, ya que este parámetro se utiliza para identificar el principio de la sesión. Todos los lotes distintos del primero de una sesión deben enviarse después del primero. Considera el primer lote como un activador o un paso previo de la operación de reemplazo.

last_batch_flag

Tipo: booleano

Opcional.

Indica que se han proporcionado todos los lotes de la sesión de reemplazo en curso. Cuando se define como true, no se aceptan más lotes para dicha sesión. Si no estableces esta marca, la sesión se finaliza automáticamente 90 minutos después de recibir el primer lote. Cualquier lote que se reciba una vez transcurridos 90 minutos se descartará.

estimated_num_total

Tipo: entero

Opcional.

Número de usuarios total estimado que se subirá en esta sesión. Nuestro sistema lo utiliza para mejorar el procesamiento de una sesión.

Campos de la 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 o varias de la lista siguiente:

  • 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 correspondientes al esquema.


Ejemplos:

  • Si el esquema es "EMAIL", los datos deben ser una lista de algoritmos hash sha256 de correo electrónico.
  • Si el esquema es una lista de algoritmos hash como en el ejemplo anterior, los datos deben ser similares a "phone_hash_value" y "LN_FN_ZIP_DOBYM".

Una vez que realices una solicitud POST, obtendrás una respuesta con los campos siguientes:

NombreDescripción

account_id

Tipo: entero

Identificador de la cuenta.

session_id

Tipo: entero

Identificador de la sesión que has proporcionado anteriormente.

num_received

Tipo: entero

Número total de usuarios que se han recibido hasta ahora 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 no es cero, vuelve a comprobar los datos.

invalid_entry_samples Tipo: matriz de cadenas JSON

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

Errores comunes de la API de reemplazo

Todos los errores que se devuelven del extremo de reemplazo tienen el código de error 2650. A continuación, se indican algunos de los subcódigos de error que se devuelven con más frecuencia, así como instrucciones sobre cómo resolverlos.

Subcódigo de errorDescripciónQué hacer

1870145

Actualización de la audiencia en curso

No puedes reemplazar una audiencia personalizada de lista de clientes que esté en proceso de actualización. Espera a que la disponibilidad de la audiencia sea “Normal” y vuelve a intentarlo.

1870158

Tiempo de espera de la sesión de reemplazo agotado

Has alcanzado el límite de tiempo de 90 minutos para la sesión de reemplazo por lotes. La audiencia personalizada de lista de clientes se reemplazará por lo que hayas subido hasta el momento. Para añadir más usuarios a la audiencia personalizada, espera a que el proceso de reemplazo termine y, a continuación, usa la operación ADD.

1870147

Lote de subida no válido para el reemplazo

El primer valor de batch_seq no se ha detectado. Debes iniciar el valor de batch_seq en el entero 1.

1870159

Sesión de reemplazo terminada

Esta operación de reemplazo ya se ha terminado porque subiste un lote con last_batch_flag==true. Para añadir lotes adicionales a la audiencia personalizada, espera a que el proceso de reemplazo termine y, a continuación, usa la operación ADD.

1870148

Se ha producido un error

La lista de clientes no se actualizó por completo. Si el tamaño de la audiencia es significativamente diferente al esperado, considera la posibilidad de volver a intentarlo.

1870144

El tamaño de la audiencia personalizada de archivo de datos no se admite para el reemplazo

No puedes reemplazar una audiencia personalizada de lista de clientes que tenga un tamaño de 100 millones o más.

Recursos

Existen otros tipos de audiencias que puedes crear y segmentar o compartir:

  • Audiencias personalizadas del sitio web: crea una audiencia basada en usuarios que han visitado una página específica o que han realizado alguna acción en tu sitio web. Crea una audiencia basada en datos del píxel de Meta en tu sitio.

  • Audiencias personalizadas de tu aplicación para móviles: crea una audiencia basada en usuarios que utilizan tu aplicación para móviles. Crea una audiencia basada en datos de los eventos de la aplicación.

  • Audiencias similares: identifica a usuarios que ya conoces y muestra anuncios a usuarios similares en la aplicación de Facebook.

  • Audiencias personalizadas offline: crea una audiencia basada en usuarios que han visitado tu tienda, que han hecho llamadas al servicio de atención al cliente o que han realizado alguna acción mediante otros medios fuera de internet.

  • Audiencias de interacción de Canvas: crea una audiencia que contenga las personas que hayan interactuado con tu instancia de Canvas.