Gruppi di pubblico personalizzato dai file dei clienti

L'API Marketing consente di creare gruppi di pubblico personalizzato di destinatari partendo dalle informazioni sui clienti. Queste informazioni includono: indirizzi email, numeri di telefono, nomi, date di nascita, genere, luoghi, ID utente app, ID utente per singola pagina, ID pubblicitari di Apple (IDFA) e ID pubblicitari Android.

L'account business di Meta, a volte chiamato account Business Manager o semplicemente account business, è stato rinominato in portfolio business. Questa modifica sarà introdotta gradualmente in tutte le tecnologie di Meta. La modifica è solo di carattere estetico e non influisce sugli ID di account business di Meta (ID del portfolio business).

Come proprietario dei dati aziendali, sei responsabile della loro creazione e gestione. Ciò include informazioni dai sistemi CRM. Per creare un pubblico, devi condividere i tuoi dati in formato hash per tutelare la privacy. Consulta Uso di algoritmi di hashing e normalizzazione dei dati. Meta li mette a confronto con i nostri dati in formato hash per valutare se possiamo aggiungere persone al tuo pubblico.

Puoi aggiungere un numero illimitato di record al tuo pubblico, entro un massimo di 10 000 per volta. Le modifiche al pubblico personalizzato non vengono applicate immediatamente; di solito sono necessarie fino a 24 ore. Il numero di record che richiedi di rimuovere e/o il numero di gruppi di pubblico personalizzato contenuti nel tuo account aumenteranno il tempo necessario per elaborare la richiesta.

Per migliorare il modo in cui gli inserzionisti creano e gestiscono i propri gruppi di pubblico, i gruppi di pubblico personalizzato dal file clienti che non sono stati utilizzati in alcun gruppo di inserzioni attivo da oltre due anni verranno contrassegnati per l'eliminazione su base continuativa. Dovrai fornirci delle istruzioni prima che intraprendiamo qualsiasi azione. Una volta che i gruppi di pubblico vengono spostati nella fase "Pubblico in scadenza" e contrassegnati, dovrai fornirci delle istruzioni utilizzando il pubblico contrassegnato in un gruppo di inserzioni attivo (che interpreteremo come un'indicazione di mantenere il pubblico) oppure decidendo di non utilizzare il pubblico contrassegnato in un gruppo di inserzioni attivo (che interpreteremo come un'indicazione di eliminare il pubblico). Per ulteriori informazioni, consulta la documentazione relativa alla Panoramica dei gruppi di pubblico personalizzato.

Se condividi eventi di conversione, utilizzando l'API Conversions, puoi creare un pubblico personalizzato dal sito web senza caricamenti di dati aggiuntivi. Tuttavia, puoi continuare a caricare informazioni sui clienti supportate per creare un pubblico personalizzato dai file dei clienti.

Utilizza la nostra nuova API Replace per rimuovere completamente gli utenti esistenti di un pubblico e sostituirli con un nuovo insieme di utenti. Un aggiornamento del pubblico effettuato con l'API Replace non sposta nuovamente il gruppo di inserzioni nella fase di apprendimento.

Creazione di un pubblico personalizzato

Passaggio 1: creazione di un pubblico personalizzato vuoto

Specifica subtype=CUSTOM e customer_file_source nella chiamata 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', })

Parametri

NomeDescrizione

customer_file_source
tipo: stringa enum

Descrive in che modo sono state originariamente raccolte le informazioni sui clienti nel tuo pubblico personalizzato.
Valori:

  • USER_PROVIDED_ONLY
    Gli inserzionisti hanno raccolto informazioni direttamente dai clienti
  • PARTNER_PROVIDED_ONLY
    Gli inserzionisti hanno acquisito informazioni direttamente dai partner (ad esempio, agenzie o provider di dati)
  • BOTH_USER_AND_PARTNER_PROVIDED
    Gli inserzionisti hanno raccolto informazioni direttamente dai clienti e anche dai partner (ad esempio, agenzie)

name
tipo: stringa

Nome del pubblico personalizzato

description
tipo: stringa

Descrizione del pubblico personalizzato

subtype
tipo: stringa

Tipo di pubblico personalizzato

Passaggio 2: definizione di una lista di utenti

Per specificare la lista di utenti che desideri aggiungere al tuo pubblico personalizzato, utilizza una chiamata API POST all'endpoint /{audience_id}/users.

Parametri

NomeDescrizione

session
Oggetto JSON

Obbligatorio
Usa il parametro session per monitorare se un batch specifico di utenti è stato caricato.
Dal momento che ogni richiesta può includere fino a 10 000 utenti, i caricamenti con più di 10 000 utenti vanno divisi in batch separati.


Esempio

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

payload
Oggetto JSON

Obbligatorio
Include schema e data.

Esempio

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

Opzioni di elaborazione dei dati per gli utenti negli Stati Uniti

Se vuoi abilitare la funzione Utilizzo limitato dei dati per le persone in California attraverso il pubblico personalizzato da un elenco clienti in data 1° giugno 2023 o successivamente, dovrai caricare un nuovo pubblico o aggiornare il pubblico esistente con il contrassegno Utilizzo limitato dei dati. Aggiorna e provvedi alla manutenzione regolare del tuo pubblico e degli stati di Utilizzo limitato dei dati delle persone come necessario.

Tieni presente che un contrassegno Utilizzo limitato dei dati applicato a un utente in un gruppo di pubblico non verrà trasferito automaticamente a gruppi di pubblico diversi. Allo stesso modo in cui gli inserzionisti devono gestire separatamente ciascuno dei loro gruppi di pubblico personalizzato da un elenco di clienti esistente secondo i criteri selezionati, il contrassegno Utilizzo limitato dei dati deve essere applicato separatamente a ogni gruppo di pubblico impiegato per la pubblicità.

Per indicare esplicitamente la NON abilitazione della funzione LDU per il record, puoi inviare un array data_processing_options vuoto o rimuovere il campo nel payload. Esempio di array vuoto:

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

Per abilitare esplicitamente la funzione LDU e richiedere a Meta di individuare la posizione geografica (escludendo lo stato e il Paese del record dato), specifica un array contenente LDU per ogni record:

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

Per abilitare la funzione LDU e specificare manualmente la posizione:

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

Campi session

NomeDescrizione

session_id
intero positivo a 64 bit

Obbligatorio
Identificativo usato per monitorare la sessione. Questo numero deve essere generato dall'inserzionista ed essere univoco all'interno di uno specifico account pubblicitario.

batch_seq
intero positivo

Obbligatorio
Numero per identificare la richiesta elencata nella sessione corrente. Questo numero deve essere sequenziale e iniziare da 1.

last_batch_flag
booleano

Obbligatorio

Indica ai nostri sistemi che sono stati forniti tutti i batch per la sessione di sostituzione in corso. Se impostato su true, la richiesta attuale è l'ultima della sessione corrente e non accettiamo ulteriori batch per quella sessione. Se non invii questo flag, termineremo automaticamente la sessione 90 minuti dopo aver ricevuto il primo batch. Qualsiasi batch ricevuto dopo 90 minuti sarà scartato. Devi contrassegnare l'ultima richiesta per far sapere a Meta che si tratta dell'ultimo batch.

estimated_num_total
intero

Opzionale
Numero totale stimato di utenti da caricare in questa sessione. Questo campo viene utilizzato per migliorare l'elaborazione di questa sessione.

Risposta

Una risposta corretta comprende un oggetto JSON con i campi seguenti:

NomeDescrizione

audience_id
stringa numerica

Identificativo del pubblico

session_id
intero

L'ID sessione che hai passato

num_received
intero

Il numero totale di utenti ricevuti nella sessione fino a questo momento

num_invalid_entries
intero

Indica il numero di voci inviate con hashing errato. Tali voci non hanno restituito una corrispondenza e non sono aggiunte al pubblico personalizzato. Questo non è un numero esatto, ma rappresenta l'intervallo numerico di utenti senza corrispondenza.

invalid_entry_samples
array JSON di stringhe o mappe {string: string}

Fino a 100 esempi di voci non valide trovati nella richiesta corrente

Maggiori informazioni sulla condivisione del tuo pubblico personalizzato con gli oggetti aziendali.

Rimozione dei membri del pubblico

Usa una chiamata API DELETE all'endpoint /{audience_id}/users per specificare l'elenco di utenti che desideri rimuovere dal tuo pubblico personalizzato.

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

In alternativa, puoi aggiungere il parametro method e impostarlo su DELETE nella richiesta POST usata per aggiungere membri del pubblico.

Puoi rimuovere le persone da una lista con EXTERN_ID, se disponibile.

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

Puoi rimuovere una lista di persone da tutti i gruppi di pubblico personalizzato nel tuo account pubblicitario utilizzando questo endpoint.

Queste informazioni potrebbero non essere elaborate per diversi motivi. Ad esempio, se l'account pubblicitario non è di proprietà di un portfolio business, non hai ancora accettato le Condizioni per il pubblico personalizzato oppure le informazioni non corrispondono a un utente.

Per rimuovere un account dal Centro gestione account, includi gli stessi campi di aggiornamento utente ed esegui una chiamata HTTP DELETE a:

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

Corrispondenza a più voci

Per aumentare il tasso di corrispondenza dei tuoi record, fornisci voci multiple in un array di voci individuali, ad esempio: [EXTERN_ID, LN, FN, EMAIL]. Sebbene tu non debba applicare l'algoritmo di hashing a EXTERN_ID, devi applicarlo a tutte le informazioni di identificazione personale, come e-mail e nomi. Per i dettagli, vedi Uso di algoritmi di hashing e normalizzazione dei dati.

Puoi fornire alcune voci o tutte le voci multiple in un record. Per i dettagli, vedi corrispondenza ID esterni a più voci.

Aggiunta di utenti con corrispondenza a più voci

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 di PAGEUID

Se usi la voce PAGEUID, devi includere anche una lista di ID Pagina. Puoi inviarci solo un PAGEUID, che deve essere un array 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

Applicazione dell'algoritmo di hashing e normalizzazione per le voci multiple

Devi applicare un algoritmo di hashing ai dati secondo la modalità SHA256; non sono supportati altri meccanismi di applicazione dell'algoritmo di hashing. È necessario per tutti i dati tranne identificativi esterni, ID utente dell'app, ID utente per singola Pagina e ID degli inserzionisti mobili.

Prima di applicare l'algoritmo di hashing ai dati, normalizzali in modo che possiamo elaborarli. Solo nome (FN) e cognome (LN) supportano i caratteri speciali e l'alfabeto non romano. Per ottenere corrispondenze ottimali, fornisci la traduzione dell'alfabeto romano senza caratteri speciali.

Scarica questo file CSV

per gli esempi di dati correttamente normalizzati e in formato hash per i seguenti parametri.



Scarica (clic con il tasto destro del mouse > salva link con nome)
ChiaveLinee guida

EMAIL
criteri: indirizzi e-mail

Hashing obbligatorio
Rimuove gli spazi vuoti iniziali e finali e converte tutti i caratteri in minuscolo.

PHONE
criteri: numeri di telefono

Hashing obbligatorio
Rimuove simboli, lettere e qualsiasi zero in prima posizione. Devi indicare il codice Paese se il campo COUNTRY non è specificato.

GEN
criteri: genere

Hashing obbligatorio
Usa questi valori: m per gli uomini e f per le donne.

DOBY
criteri: anno di nascita

Hashing obbligatorio
Usa il formato YYYY: dal 1900 all'anno corrente.

DOBM
criteri: mese di nascita

Hashing obbligatorio
Usa il formato MM: da 01 a 12.

DOBD
criteri: giorno di nascita

Hashing obbligatorio
Usa il formato DD: da 01 a 31.

LN e FN
criteri: cognome e nome

Hashing obbligatorio
Usa solo a-z. Solo minuscole, niente punteggiatura. Caratteri speciali in formato UTF-8.

FI
criteri: iniziale del nome

Hashing obbligatorio
Usa solo a-z. Solo minuscole. Caratteri speciali in formato UTF-8.

ST
criteri: stati degli Stati Uniti

Hashing obbligatorio
Usa il codice di abbreviazione ANSI a 2 caratteri in lettere minuscole. Normalizza gli stati fuori dagli Stati Uniti in lettere minuscole, senza punteggiatura, caratteri speciali né spazi vuoti.

CT
criteri: città

Hashing obbligatorio
Usa solo a-z. Solo minuscole, niente punteggiatura, niente caratteri speciali, niente spazi vuoti.

ZIP
criteri: CAP

Hashing obbligatorio
Usa lettere minuscole, niente spazi vuoti. Utilizza solo i primi 5 caratteri per gli Stati Uniti. Utilizza il formato Area/Collegio elettorale/Settore per il Regno Unito.

COUNTRY
criteri: codice Paese

Hashing obbligatorio

Usa i codici Paese di 2 lettere minuscole in conformità alla norma ISO 3166-1 alpha-2.

MADID
criteri: ID inserzionista mobile

Hashing NON obbligatorio

Usa solo lettere minuscole, mantieni i trattini.

Hashing

Fornisci valori SHA256 per le voci normalizzate e le rappresentazioni HEX di questo valore, usando le minuscole da A a F. La funzione hash in PHP converte e-mail e numeri di telefono normalizzati.

EsempioRisultato

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

f1904cf1a9d73a55fa5de0ac823c4403ded71afd4c3248d00bdcd0866552bb79

hash("sha256", "15559876543")

1ef970831d7963307784fa8688e8fce101a15685d62aa765fed23f3a2c576a4e

Identificativi esterni

Puoi combinare le persone con un pubblico utilizzando i tuoi identificativi, noti come identificativi esterni (EXTERN_ID). Può trattarsi di un qualsiasi ID unico dell'inserzionista, come ID del programma fedeltà, ID utente e ID cookie esterni.

Anche se non devi effettuare l'hashing di questo ID, devi farlo per tutte le informazioni personali (PII) che invii con EXTERN_ID.

Per una migliore corrispondenza, dovresti anche usare il formato esatto quando invii gli ID. Ad esempio, se scegli di applicare un algoritmo di hashing usando SHA256, assicurati di utilizzare lo stesso valore in formato hash.

Puoi usare questi ID come voci singole per eliminare le persone dal pubblico personalizzato o creare un nuovo pubblico personalizzato. In questo modo non dovrai ricaricare altre voci corrispondenti. Se tagghi qualcuno con informazioni personali con hash e EXTERN_ID, all'EXTERN_ID viene assegnata una precedenza minore quando viene eseguita la corrispondenza con gli utenti presenti su Facebook.

Il periodo di conservazione dei dati per EXTERN_ID è di 90 giorni.

Puoi riutilizzare la mappatura EXTERN_ID per la creazione di pubblico personalizzato dai file dei clienti in un unico account pubblicitario.

Se hai un pubblico di campi EXTERN_ID nel tuo account pubblicitario, crea un nuovo pubblico usando solo questi identificativi.

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

Puoi anche aggiungere persone taggate con EXTERN_ID e con la corrispondenza di più voci.

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

Supportiamo i parametri EXTERN_ID per singoli account pubblicitari. Non possiamo usare i valori di un account pubblicitario per un altro account pubblicitario, anche se gli account appartengono alla stessa entità.

API Replace Users

L'endpoint /<CUSTOM_AUDIENCE_ID>/usersreplace permette di eseguire 2 azioni con una chiamata API:

  • Rimuovere completamente gli utenti esistenti da un pubblico specifico
  • Sostituire quegli utenti con un nuovo insieme di utenti.

Utilizzando l'endpoint /<CUSTOM_AUDIENCE_ID>/usersreplace puoi eliminare automaticamente tutti gli utenti esistenti, così da non dover caricare una lista di utenti da eliminare. Questo endpoint non reimposta la fase di apprendimento del gruppo di inserzioni quando un pubblico è parte dei gruppi di inserzioni attivi a differenza delle chiamate API POST o DELETE all'endpoint /<CUSTOM_AUDIENCE_ID>/users.

L'API Replace Users funziona solo con i gruppi di pubblico che soddisfano i seguenti requisiti:

  • Il numero di utenti impostato prima di eseguire un processo di sostituzione deve essere inferiore a 100 milioni. Se il pubblico supera i 100 milioni, ti suggeriamo di ricorrere all'endpoint /<CUSTOM_AUDIENCE_ID>/users per aggiungere e rimuovere utenti.
  • Il sottotipo deve essere impostato su CUSTOM.
  • Non è possibile sostituire un gruppo di pubblico personalizzato del file cliente basato sul valore con un gruppo di pubblico personalizzato del file cliente non basato sul valore o viceversa.

Primi passi

Prima di avviare un processo di sostituzione, consigliamo di fare quanto segue:

  • Verifica che, per il pubblico, operation_status sia Normal.

Non è possibile eseguire un'operazione di sostituzione se ce n'è già una in esecuzione.

  • Non aggiungere o rimuovere utenti con /<CUSTOM_AUDIENCE_ID>/users durante un'operazione di sostituzione in corso con /<CUSTOM_AUDIENCE_ID>/usersreplace. Se tenti di eseguire una seconda operazione di sostituzione prima che la prima sia stata completata, riceverai un messaggio indicante che è già in corso un'operazione di sostituzione.

  • La finestra di durata massima di 1 sessione di sostituzione è di 90 minuti. L'API rifiuterà qualsiasi batch per una sessione ricevuta dopo 90 minuti dall'inizio di quella sessione. Se hai bisogno di inviare batch per un periodo superiore a 90 minuti, attendi il completamento dell'operazione di sostituzione per quella sessione, quindi usa l'operazione di aggiunta dell'endpoint /<CUSTOM_AUDIENCE>/users per il resto dei caricamenti.

  • Quando il pubblico sarà pronto, specifica la lista di utenti da sostituire con il tuo pubblico personalizzato mediante una chiamata POST a /<CUSTOM_AUDIENCE_ID>/usersreplace.

    • Una volta iniziata l'operazione di sostituzione, lo stato operation_status del pubblico cambia in replace_in_progress.
    • Se l'operazione di sostituzione non va a buon fine, lo stato operation_status del pubblico cambia in replace_error.

Parametri chiamata

Puoi includere i parametri seguenti nella chiamata POST a /<CUSTOM_AUDIENCE_ID>/usersreplace:

NomeDescrizione

session

Tipo: oggetto JSON

Obbligatorio.

Usato per monitorare se un batch specifico di utenti è stato caricato. Deve includere ID sessione e informazioni batch. Vedi Campi della sessione.


Puoi aggiungere fino a 10 000 utenti a un pubblico in un determinato momento. Se hai più di 10 000 utenti, dividi la sessione in più batch, ognuno dei quali deve avere 1 ID sessione.


Esempio:

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

payload

Tipo: oggetto JSON

Obbligatorio.

Utilizzato per fornire le informazioni che desideri vengano caricate sul tuo pubblico. Vedi includere schema e dati. Consulta Campi del payload per maggiori informazioni.


Esempio:

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

Campi della sessione

NomeDescrizione

session_id

Tipo: intero a 64 bit

Obbligatorio.

Usato per monitorare la sessione. Devi generare questo identificatore e il numero deve essere univoco all'interno dello stesso account pubblicitario.

batch_seq

Tipo: intero

Obbligatorio. Deve iniziare da 1.
Una nuova sessione di sostituzione inizia quando riceviamo un batch_seq di 1. Si raccomanda di non inviare batch duplicati con una sequenza di 1 per un dato session_id.
È importante etichettare il primo batch; i rimanenti batch di una sessione possono essere duplicati o avere qualsiasi numero tranne 1 perché usiamo questo parametro per identificare l'inizio della sessione. Tutti i batch diversi dal primo per una sessione devono essere inviati dopo il primo batch. Considera il primo batch come la fase di attivazione/preliminare per l'operazione di sostituzione.

last_batch_flag

Tipo: booleano

Facoltativo.

Indica che sono stati forniti tutti i batch per la sessione di sostituzione in corso. Se impostato su true, non verranno accettati altri batch per quella sessione. Se non imposti questo flag, la sessione terminerà automaticamente 90 minuti dopo aver ricevuto il primo batch. Qualsiasi batch ricevuto dopo 90 minuti sarà scartato.

estimated_num_total

Tipo: intero

Facoltativo.

Numero totale stimato di utenti da caricare in questa sessione. Utilizzato dal nostro sistema per migliorare l'elaborazione di una sessione.

Campi del payload

NomeDescrizione

schema

Tipo: stringa o JSON_Array_of_string

Obbligatorio.

Specifica il tipo di informazioni che fornirai. Può essere una singola voce o più voci dalla seguente lista:

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

data

Tipo: JSON_Array

Obbligatorio.

Elenco di dati corrispondenti allo schema.


Esempi:

  • Se lo schema è "EMAIL", i dati devono essere una lista di hash sha256 delle e-mail.
  • Se lo schema è una lista di hash come nell'esempio precedente, i dati dovrebbero essere simili a "phone_hash_value", "LN_FN_ZIP_DOBYM".

Una volta effettuata la richiesta POST, riceverai una risposta con i seguenti campi:

NomeDescrizione

account_id

Tipo: intero

Identificativo dell'account.

session_id

Tipo: intero

L'ID sessione che hai fornito in precedenza.

num_received

Tipo: intero

Il numero totale di utenti ricevuti nella sessione fino a questo momento.

num_invalid_entries

Tipo: intero

Numero totale di utenti con formato non valido o che non è possibile decodificare. Se questo numero è diverso da zero, controlla nuovamente i tuoi dati.

invalid_entry_samples Tipo: array di stringhe JSON

Fino a 100 esempi di voci non valide nella richiesta corrente. Controlla nuovamente i dati.

Errori comuni dell'API Replace

Tutti gli errori restituiti dall'endpoint Replace hanno il codice 2650. Ecco alcuni dei sottocodici di errore più comuni restituiti e indicazioni su come risolverli.

Sottocodice di erroreDescrizioneCosa fare

1870145

Aggiornamento del pubblico in corso

Non puoi sostituire il pubblico personalizzato di un elenco di clienti in fase di aggiornamento. Aspetta che la disponibilità del pubblico diventi "Normale" e riprova.

1870158

Sessione di sostituzione scaduta

Hai raggiunto il limite di tempo di 90 minuti per la sessione di sostituzione batch. Il pubblico personalizzato del tuo elenco di clienti verrà sostituito con quello che hai caricato finora. Per aggiungere altro al pubblico personalizzato, attendi fino al termine del processo di sostituzione, quindi usa l'operazione ADD.

1870147

Batch di caricamento non valido per la sostituzione

Il primo batch_seq non è stato rilevato. Devi avviare batch_seq all'intero 1.

1870159

Sessione di sostituzione terminata

La sessione di sostituzione è già finita perché hai caricato un batch con last_batch_flag==true. Per aggiungere altri batch al pubblico personalizzato, attendi fino al termine del processo di sostituzione, quindi usa l'operazione ADD.

1870148

Si è verificato un errore.

L'elenco clienti non è stato completamente aggiornato. Se le dimensioni del pubblico sono significativamente diverse dal previsto, valuta la possibilità di riprovare.

1870144

Dimensione DFCA non supportata per la sostituzione

Non puoi sostituire il pubblico personalizzato di un elenco clienti con dimensione pari o superiore a 100 milioni.

Risorse

È possibile creare e targetizzare o condividere altri tipi di pubblico: