Audiences personnalisées à partir d’un fichier clientèle

L’API Marketing permet de créer des audiences personnalisées cibles à partir d’informations clientèle. Celles-ci comprennent les adresses e-mail, les numéros de téléphone, les noms, les dates de naissance, le genre, les lieux, les ID utilisateur·ice de l’application, les ID utilisateur·ice spécifiques à la page, les IDFA (identifiants publicitaires d’Apple) ou encore les identifiants publicitaires d’Android.

Le compte business Meta, parfois appelé compte Business Manager, ou simplement compte business, change de nom et devient portefeuille business. Cette modification sera appliquée de manière graduelle dans les technologies Meta. Cette modification est purement cosmétique et n’affecte pas les ID de compte business Meta (ID de portefeuille business).

En tant que propriétaire des données de votre entreprise, vous êtes responsable de leur création et de leur gestion. Cela inclut les informations de vos systèmes de gestion de la relation clientèle (CRM). Pour créer des audiences, vous devez partager vos données dans un format haché afin d’en préserver la confidentialité. Consultez la section Hachage et normalisation des données. Meta compare ces données à ses propres données hachées afin de déterminer si un utilisateur ou une utilisatrice de Facebook doit être ajouté·e à l’audience de votre publicité.

Vous pouvez ajouter un nombre illimité d’enregistrements à une audience, avec toutefois un maximum de 10 000 entrées simultanées. Les modifications apportées à vos audiences personnalisées ne prennent pas effet immédiatement et sont généralement appliquées dans les 24 heures. Lorsque vous demandez la suppression de certaines entrées, le temps nécessaire au traitement de votre demande dépend du nombre d’entrées à supprimer et/ou d’audiences personnalisées contenues dans votre compte.

Afin d’améliorer la manière dont les annonceurs créent et gèrent leurs audiences, les audiences personnalisées créées à partir d’un fichier qui n’ont pas été utilisées dans des ensembles de publicités actifs pendant plus de deux ans seront automatiquement marquées pour suppression. Avant toute action de notre part, vous devrez nous communiquer vos instructions. Une fois les audiences placées dans la catégorie « Audiences arrivées à expiration » et marquées comme telles, vous devez soit les utiliser dans un ensemble de publicités actif pour nous indiquer que vous souhaitez les conserver, soit les laisser inutilisées, auquel cas, nous procéderons à leur suppression. Pour plus d’informations, consultez la documentation Vue d’ensemble des audiences personnalisées.

Si vous partagez des évènements de conversion à l’aide de l’API Conversions, vous pouvez créer une audience personnalisée de site Web sans importations de données supplémentaires. Toutefois, vous pourrez toujours importer les informations clientèle prises en charge pour créer une audience personnalisée à partir d’un fichier clientèle.

Utilisez notre nouvelle API Replace pour supprimer définitivement les utilisateur·ices existant·es d’une audience et les remplacer par un nouvel ensemble d’utilisateur·ices. La mise à jour d’une audience effectuée avec l’API Replace ne restaurera pas votre ensemble de publicités en phase d’apprentissage.

Création d’une audience personnalisée

Étape 1 : Créer une audience personnalisée vide

Indiquez subtype=CUSTOM et customer_file_source dans votre appel d’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', })

Paramètres

NomDescription

customer_file_source
chaîne d’énumération

Décrit la manière dont les informations clientèle figurant dans votre audience personnalisée ont été recueillies initialement.
Valeurs :

  • USER_PROVIDED_ONLY
    Les annonceurs ont recueilli ces informations directement auprès de la clientèle
  • PARTNER_PROVIDED_ONLY
    Les annonceurs ont obtenu ces informations directement auprès de leurs partenaires (des agences ou des fournisseurs de données, par exemple)
  • BOTH_USER_AND_PARTNER_PROVIDED
    Ces informations proviennent à la fois directement des client·es, mais aussi des partenaires (des agences, par exemple)

name
chaîne

Nom de l’audience personnalisée

description
chaîne

Description de l’audience personnalisée

subtype
chaîne

Type d’audience personnalisée

Étape 2 : Spécifier une liste d’utilisateurs ou d’utilisatrices

Utilisez un appel d’API POST au point de terminaison /{audience_id}/users pour spécifier la liste d’utilisateur·ices à ajouter dans votre audience personnalisée.

Paramètres

NomDescription

session
objet JSON

Obligatoire
Utilisez le paramètre session pour voir si un lot d’utilisateur·ices spécifique a été importé.
Si l’importation porte sur plus de 10 000 utilisateur·ices, vous devez la scinder en plusieurs lots, chaque demande ne devant pas dépasser 10 000 utilisateur·ices.


Exemple

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

payload
objet JSON

Obligatoire
Inclut les valeurs schema et data.

Exemple

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

Options de traitement des données pour les utilisateur·ices des États-Unis

Si vous voulez activer l’utilisation limitée des données pour les personnes résidant en Californie via des audiences personnalisées créées à partir d’un fichier clientèle et ce, à partir du 1er juin 2023, vous devez importer de nouvelles audiences ou mettre à jour vos audiences existantes en y intégrant le marqueur d’utilisation limitée des données. Si nécessaire, mettez régulièrement à jour vos audiences et les statuts des personnes concernées par l’utilisation limitée des données et assurez-en la maintenance.

Veuillez noter qu’un marqueur d’utilisation limitée des données appliqué à un·e utilisateur·ice dans une audience ne sera pas automatiquement transféré à d’autres audiences. De la même manière que les annonceurs doivent gérer séparément chacune de leurs audiences personnalisées créées à partir d’un fichier clientèle selon les critères sélectionnés, le marqueur d’utilisation limitée des données doit s’appliquer séparément à chaque audience utilisée à des fins publicitaires.

Pour NE PAS activer le mode LDU de manière explicite pour l’enregistrement, vous pouvez soit envoyer un tableau vide data_processing_options, soit supprimer le champ de la charge utile. Exemple de tableau vide :

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

Pour activer le mode LDU de manière explicite et demander à Meta d’effectuer la géolocalisation (en n’insérant pas l’État ni le pays dans l’enregistrement donné), utilisez un tableau contenant le mode LDU pour chaque enregistrement :

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

Pour activer le mode LDU et spécifier le lieu manuellement :

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

Champs session

NomDescription

session_id
nombre entier positif de 64 bits

Obligatoire
Identifiant utilisé pour suivre la session. Ce nombre doit être généré par l’annonceur. Il doit de plus être unique dans un compte publicitaire spécifique.

batch_seq
nombre entier positif

Obligatoire
Nombre permettant d’identifier la demande figurant dans la session en cours. Ce nombre doit être séquentiel et commencer à 1.

last_batch_flag
booléen

Obligatoire

Indique à nos systèmes que tous les lots pour la session de remplacement en cours ont été fournis. Lorsqu’elle est définie sur true, la demande actuelle est la dernière de la session en cours, et nous n’acceptons pas d’autres lots pour cette session. Si vous ne définissez pas ce marqueur, nous arrêtons automatiquement la session de remplacement 90 minutes après avoir reçu votre premier lot. Tout lot reçu après 90 minutes sera également ignoré. Vous devez marquer la dernière demande pour que Meta sache qu’il s’agit du dernier lot.

estimated_num_total
nombre entier

Facultatif
Estimation du nombre total d’utilisateurs et d’utilisatrices à importer dans cette session. Ce champ permet à notre système d’améliorer le traitement d’une session.

Réponse

Une réponse positive inclut un objet JSON accompagné des champs suivants :

NomDescription

audience_id
chaîne numérique

Identifiant de l’audience

session_id
nombre entier

ID de session transmis

num_received
nombre entier

Nombre total d’utilisateur·ices reçu·es dans cette session à ce jour.

num_invalid_entries
nombre entier

Nombre d’entrées envoyées avec un hachage incorrect. Ces entrées n’ont pas renvoyé de correspondance et n’ont pas été ajoutées à l’audience personnalisée. Ce nombre n’est pas exact, mais constitue une indication du nombre d’utilisateur·ices dont les données ne correspondent pas.

invalid_entry_samples
tableau de chaînes JSON ou carte {string: string}

Jusqu’à 100 échantillons d’entrées non valides détectés dans la demande actuelle

Découvrez comment partager votre audience personnalisée avec des objets d’entreprise.

Suppression de membres d’une audience

Utilisez un appel d’API DELETE au point de terminaison /{audience_id}/users pour spécifier la liste d’utilisateur·ices à supprimer de votre audience personnalisée.

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

Vous pouvez également ajouter le paramètre method et le définir sur DELETE dans la demande POST utilisée pour ajouter des membres à l’audience.

Vous pouvez supprimer des personnes d’une liste à l’aide de EXTERN_ID (si 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

Vous pouvez supprimer une liste de personnes de toutes les audiences personnalisées de votre compte publicitaire à l’aide de ce point de terminaison.

Ces informations peuvent ne pas être traitées pour différentes raisons, par exemple, si le compte publicitaire n’est pas détenu par un portefeuille business, si vous n’avez pas encore accepté les conditions applicables aux audiences personnalisées ou si les informations ne correspondent pas à un utilisateur ou une utilisatrice.

Pour supprimer un compte de l’Espace Comptes, renseignez tous les champs, comme pour la mise à jour d’un·e utilisateur·ice, et envoyez un appel HTTP DELETE à :

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

Correspondance à clés multiples

Pour augmenter le taux de correspondance de vos entrées, fournissez plusieurs clés dans un tableau de clés individuelles ; par exemple [EXTERN_ID, LN, FN, EMAIL]. Si vous n’avez pas besoin de hacher EXTERN_ID, vous devez néanmoins hacher toutes les informations d’identification personnelle, comme les adresses e-mail et les noms. Pour plus de détails, consultez la section Hachage et normalisation des données.

Vous pouvez indiquer une partie ou l’ensemble des clés multiples pour un enregistrement. Pour plus de détails, consultez la section Correspondance d’ID externes à clés multiples.

Ajout d’utilisateur·ices avec des correspondances à clés multiples

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

Utilisation de PAGEUID

Si vous utilisez la clé PAGEUID, vous devez également inclure une liste d’ID de Page. Vous ne pouvez nous envoyer qu’un seul PAGEUID, qui doit se présenter sous la forme d’un tableau comportant un élément.

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

Hachage et normalisation pour clés multiples

Vous devez hacher vos données au format SHA256 ; les autres mécanismes de hachage ne sont pas pris en charge. Cette opération est obligatoire pour toutes les données, à l’exception des identifiants externes, des ID utilisateur·ice de l’application, des ID utilisateur·ice au niveau de la page (Page Scoped User ID) et des ID d’annonceur mobile.

Avant de hacher vos données, normalisez-les afin que nous puissions les traiter. La saisie de caractères spéciaux et non latins n’est possible que pour le prénom (FN) et le nom (LN). Pour optimiser les résultats de la correspondance, veuillez indiquer la traduction en caractères latins, sans caractère spécial.

Veuillez télécharger ce fichier CSV

pour voir des exemples de données correctement normalisées et hachées concernant les paramètres ci-dessous.



Télécharger (Clic droit > Enregistrer le lien sous)
CléRègles

EMAIL
critères : adresses e-mail

Hachage obligatoire
Supprimez les espaces en début et en fin de mot, et convertissez tous les caractères en minuscules.

PHONE
critères : numéros de téléphone

Hachage obligatoire
Supprimez les symboles, les lettres et les éventuels zéros non significatifs. Vous devez ajouter le code du pays en préfixe si le champ COUNTRY n’est pas renseigné.

GEN
critères : genre

Hachage obligatoire
Utilisez ces valeurs : m pour masculin, f pour féminin.

DOBY
critères : année de naissance

Hachage obligatoire
Utilisez le format AAAA de 1900 à l’année en cours.

DOBM
critères : mois de naissance

Hachage obligatoire
Utilisez le format MM de 01 à 12.

DOBD
critères : jour de naissance

Hachage obligatoire
Utilisez le format JJ de 01 à 31.

critères LN et FN
 : nom et prénom

Hachage obligatoire
Utilisez uniquement les lettres de a à z. Minuscules uniquement, pas de signe de ponctuation. Caractères spéciaux au format UTF-8.

FI
critères : initiale du prénom

Hachage obligatoire
Utilisez uniquement les lettres de a à z. Minuscules uniquement. Caractères spéciaux au format UTF-8.

ST
critères : États des États-Unis

Hachage obligatoire
Utilisez le code d’abréviation ANSI à deux caractères, en caractères minuscules. Normalisez les États situés hors des États-Unis : en minuscules, sans signe de ponctuation, sans caractère spécial et sans espace.

CT
critères : ville

Hachage obligatoire
Utilisez uniquement les lettres de a à z. Caractères minuscules uniquement, sans signe de ponctuation, sans caractère spécial et sans espace.

ZIP
critères : code postal

Hachage obligatoire
Utilisez des caractères minuscules, sans espace. Pour les États-Unis, utilisez uniquement les cinq premiers chiffres. Pour le Royaume-Uni, utilisez le format région/circonscription/secteur.

COUNTRY
critères : code du pays

Hachage obligatoire

Utilisez les codes de pays à deux lettres en minuscules au format ISO 3166-1 alpha-2.

MADID
critères : ID d’annonceur mobile

Hachage NON obligatoire

N’utilisez que des caractères minuscules, conservez les traits d’union.

Hachage

Indiquez des valeurs au format SHA256 pour les clés normalisées et les représentations HEX de ces valeurs, en utilisant des minuscules pour les lettres de A à F. La fonction de hachage de PHP convertit les adresses e-mail et les numéros de téléphone normalisés.

ExempleRésultat

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

f1904cf1a9d73a55fa5de0ac823c4403ded71afd4c3248d00bdcd0866552bb79

hash("sha256", "15559876543")

1ef970831d7963307784fa8688e8fce101a15685d62aa765fed23f3a2c576a4e

Identifiants externes

Vous pouvez faire correspondre les membres d’une audience à vos propres identifiants, connus sous le nom d’identifiants externes (EXTERN_ID). Il peut s’agir de tout ID unique émanant de l’annonceur, tel que des ID de programme de fidélité, des ID d’utilisateur·ice et des ID de cookie externe.

Si vous n’avez pas besoin de hacher cet identifiant, vous devez néanmoins hacher toutes les informations à caractère personnel (PII, Personally Identifying Information) que vous envoyez avec les EXTERN_ID.

Pour une meilleure correspondance, vous devez également utiliser le même format que celui que vous utilisez pour envoyer les ID. Par exemple, si vous choisissez d’utiliser le format SHA-256, assurez-vous d’utiliser la même valeur hachée.

Ces identifiants peuvent ensuite être utilisés comme clés individuelles pour supprimer des personnes des audiences personnalisées ou créer d’autres audiences de ce type. Cela vous évite de devoir réimporter d’autres clés de correspondance. Si vous identifiez une personne à l’aide d’informations personnelles hachées et d’un EXTERN_ID, nous attribuons à l’élément EXTERN_ID une priorité inférieure pour la mise en correspondance avec d’autres personnes sur Facebook.

Le délai de conservation des EXTERN_ID est de 90 jours.

Vous pouvez réutiliser la mise en correspondance de EXTERN_ID pour créer les audiences personnalisées au sein d’un compte publicitaire.

Si votre compte publicitaire comporte une audience de champs EXTERN_ID, créez une audience composée uniquement de ces identifiants.

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

Vous pouvez également ajouter des personnes identifiées avec EXTERN_ID et avec une correspondance à clés multiples.

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

Nous prenons en charge des paramètres EXTERN_ID pour les comptes publicitaires individuels. Nous ne pouvons pas utiliser les valeurs d’un compte publicitaire pour un autre, même si ces comptes appartiennent à la même entité.

API Replace Users

Le point de terminaison /<CUSTOM_AUDIENCE_ID>/usersreplace permet de réaliser deux actions avec un seul appel d’API :

  • Supprimer définitivement les utilisateur·ices existant·es d’une audience spécifique
  • Les remplacer par un nouvel ensemble d’utilisateur·ices

Le point de terminaison /<CUSTOM_AUDIENCE_ID>/usersreplace permet de supprimer automatiquement tous les utilisateur·ices existant·es au lieu d’importer une liste des utilisateur·ices à supprimer. Ce point de terminaison ne réinitialise pas la phase d’apprentissage de votre ensemble de publicités quand une audience fait partie d’ensembles de publicités actifs, comme le font les appels d’API POST ou DELETE au point de terminaison /<CUSTOM_AUDIENCE_ID>/users.

L’API Replace Users fonctionne uniquement avec les audiences qui satisfont aux exigences suivantes :

  • Le nombre d’utilisateur·ices avant le processus de remplacement doit être inférieur à 100 millions. Si votre audience est supérieure à 100 millions, nous vous suggérons d’utiliser le point de terminaison /<CUSTOM_AUDIENCE_ID>/users pour ajouter et supprimer des utilisateur·ices.
  • Le sous-type doit être défini sur CUSTOM.
  • Vous ne pouvez pas remplacer une audience personnalisée à partir d’un fichier clientèle qui est basée sur la valeur par une audience non basée sur la valeur et inversement.

Démarrer

Avant de lancer le processus de remplacement, nous recommandons les actions suivantes :

  • Vérifiez que le statut operation_status de votre audience est bien Normal.

Vous ne pouvez pas effectuer de remplacement si un remplacement est déjà en cours d’exécution.

  • Vous ne pouvez non plus ajouter ou supprimer des utilisateur·ices via /<CUSTOM_AUDIENCE_ID>/users lorsqu’un remplacement est en cours via /<CUSTOM_AUDIENCE_ID>/usersreplace. Si vous essayez de lancer une autre opération de remplacement avant que le remplacement en cours soit terminé, vous recevez un message vous informant qu’un remplacement est déjà en cours.

  • La durée maximale d’une session de remplacement est de 90 minutes. L’API refuse tout lot d’une session reçu 90 minutes après le début de la session. Si vous devez envoyer des lots au-delà de ces 90 minutes, attendez la fin de l’opération de remplacement pour la session en cours, puis utilisez le point de terminaison /<CUSTOM_AUDIENCE>/users pour ajouter vos autres lots.

  • Lorsque votre audience est prête, spécifiez la liste des utilisateur·ices à remplacer dans votre audience personnalisée en effectuant un appel POST à /<CUSTOM_AUDIENCE_ID>/usersreplace.

    • Une fois le processus de remplacement démarré, l’operation_status de votre audience passe à replace_in_progress.
    • Si le remplacement est incomplet, l’operation_status de votre audience passe à replace_error.

Paramètres d’appel

Vous pouvez inclure les paramètres suivants dans votre appel POST à /<CUSTOM_AUDIENCE_ID>/usersreplace :

NomDescription

session

Type : objet JSON

Obligatoire.

Permet de voir si un lot d’utilisateur·ices spécifique a été importé. Doit inclure un ID de session et les informations du lot. Voir les champs Session.


Vous pouvez ajouter jusqu’à 10 000 personnes dans une audience à un moment donné. S’il y a plus de 10 000 personnes, scindez votre session en plusieurs lots, en veillant à ce qu’ils partagent le même ID de session.


Exemple :

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

payload

Type : objet JSON

Obligatoire.

Permet de fournir les informations à importer dans votre audience. Doit inclure les schémas et les données ; voir les champs Charge utile pour plus d’informations.


Exemple :

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

Champs Session

NomDescription

session_id

Type : nombre entier de 64 bits

Obligatoire.

Permet de suivre la session. Vous devez générer cet identifiant et ce nombre doit être unique au sein du même compte publicitaire.

batch_seq

Type : nombre entier

Obligatoire. Doit commencer à 1.
Une nouvelle session de remplacement démarre lorsque nous recevons une batch_seq égale à 1. Nous ne recommandons pas d’envoyer de doublons de lots avec une séquence égale à 1 pour un session_id donné.
Il est important d’étiqueter le premier lot ; le reste des lots d’une session peuvent être des doublons ou n’importe quel autre chiffre à l’exception de 1, car nous utilisons ce paramètre pour détecter le début de la session. Tous les lots qui ne sont pas les premiers lots d’une session doivent être envoyés après le premier lot. Le premier lot est en quelque sorte le déclencheur ou la pré-étape de l’opération de remplacement.

last_batch_flag

Type : booléen

Facultatif.

Indique que tous les lots pour la session de remplacement en cours ont été fournis. Lorsque ce paramètre est défini sur true, aucun autre lot n’est accepté pour cette session. Si vous ne définissez pas ce marqueur, la session est automatiquement terminée 90 minutes après la réception du premier lot. Tout lot reçu après 90 minutes sera également ignoré.

estimated_num_total

Type : nombre entier

Facultatif.

Estimation du nombre total d’utilisateur·ices à importer dans cette session. Permet à notre système d’améliorer le traitement d’une session.

Champs Charge utile

NomDescription

schema

Type : chaîne ou JSON_Array_of_string

Obligatoire.

Indique le type d’informations que vous fournirez. Il peut s’agir d’une clé unique ou multiple dans la liste suivante :

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

data

Type : JSON_Array

Obligatoire.

Liste des données correspondant au schéma.


Exemples :

  • Si le schéma est "EMAIL", les données doivent être un liste d’adresses e-mail hachées avec sha256.
  • Si le schéma est une liste de hachages comme dans l’exemple précédent, les données doivent ressembler à ceci : "phone_hash_value", "LN_FN_ZIP_DOBYM".

Une fois votre requête POST envoyée, vous recevez une réponse avec les champs suivants :

NomDescription

account_id

Type : nombre entier

Identifiant de compte.

session_id

Type : nombre entier

ID de session que vous avez indiqué au préalable.

num_received

Type : nombre entier

Nombre total d’utilisateur·ices reçu·es dans cette session à ce jour.

num_invalid_entries

Type : nombre entier

Nombre total d’utilisateurs ou d’utilisatrices avec un format non valide ou un format impossible à décoder. Si ce nombre n’est pas nul, vérifiez à nouveau vos données.

invalid_entry_samples Type : ensemble de chaînes JSON

Jusqu’à 100 échantillons d’entrées non valides dans la requête actuelle. Vérifiez à nouveau vos données.

Erreurs courantes de l’API Replace

Toutes les erreurs renvoyées par le point de terminaison Replace affichent le code d’erreur 2650. Voici les sous-codes d’erreur les plus couramment renvoyés, ainsi que des conseils pour résoudre ces problèmes.

Sous-code d’erreurDescriptionAction requise

1870145

Mise à jour de l’audience en cours

Vous ne pouvez pas remplacer une audience personnalisée de liste de clients et de clientes en cours de mise à jour. Attendez que la disponibilité de l’audience affiche Normal pour réessayer.

1870158

Expiration de la session de remplacement

Vous avez atteint la limite de 90 minutes pour votre session de remplacement par lot. Votre audience personnalisée de liste de clients et de clientes est remplacée par ce que vous avez importé jusqu’à présent. Pour ajouter d’autres membres de votre clientèle à l’audience personnalisée, attendez que le processus de remplacement soit terminé, puis utilisez l’opération ADD.

1870147

Lot importé non valide pour un remplacement

La première batch_seq n’a pas été détectée. Votre batch_seq doit commencer à 1.

1870159

Session de remplacement terminée

Cette opération de remplacement est déjà terminée, car vous avez téléchargé un lot avec last_batch_flag==true. Pour ajouter d’autres lots à l’audience personnalisée, attendez que le processus de remplacement soit terminé, puis utilisez l’opération ADD.

1870148

Une erreur s’est produite

Votre liste de clients et clientes n’a pas été entièrement mise à jour. Si la taille de votre audience est plus différente que prévu, réessayez.

1870144

Taille DFCA non prise en charge pour le remplacement

Vous ne pouvez pas remplacer une audience client de liste de clients et clientes dont la taille est supérieure ou égale à 100 millions.

Ressources

Voici les autres types d’audience que vous pouvez créer, cibler ou partager :