Custom Audiences auf Basis von Kundendateien

Erstelle mit unserer Marketing API deine gewünschten Custom Audiences aus Kund*inneninformationen. Zu diesen Informationen gehören E-Mail-Adressen, Telefonnummern, Namen, Geburtsdaten, Geschlecht, Standorte, App-Nutzer*innen-IDs, seitenbezogene Nutzer*innen-IDs, der Advertising Identifier (IDFA) von Apple oder die Android-Advertising-ID.

Das Meta-Unternehmenskonto, manchmal auch Business Manager-Konto oder Business-Konto genannt, wird in Business-Portfolio umbenannt. Diese Änderung wird schrittweise in den Meta-Technologien eingeführt. Die Änderung wirkt sich nur auf den Namen und nicht auf Meta-Unternehmenskonto-IDs (Business-Portfolio-IDs) aus.

Als Eigentümer*in deiner Unternehmensdaten bist du für die Erstellung und Verwaltung dieser Daten verantwortlich. Dies bezieht sich auch auf Daten aus deinen Customer Relationship Management-Systemen (CRM). Um Zielgruppen zu erstellen, musst du deine Daten in einem Hashformat freigeben, um den Datenschutz sicherzustellen. Siehe Hashing und Normalisierung von Daten. Meta vergleicht diese Daten mit unseren gehashten Daten, um festzustellen, ob wir jemanden auf Facebook zur Zielgruppe für deine Werbeanzeige hinzufügen sollten.

Du kannst einer Zielgruppe beliebig viele Datensätze hinzufügen, jedoch immer nur maximal 10.000 gleichzeitig. Änderungen an deinen Custom Audiences werden üblicherweise nicht sofort, sondern erst nach 24 Stunden wirksam. Die zur Verarbeitung dieser Anforderung benötigte Zeit hängt von der Anzahl der Datensätze, deren Entfernung du angefordert hast, und/oder der Anzahl der Custom Audiences in deinem Konto ab.

Um die Erstellung und Verwaltung von Zielgruppen zu verbessern, werden Custom Audiences auf Basis von Kundendateien, die seit mehr als zwei Jahren in keinen aktiven Anzeigengruppen verwendet wurden, fortlaufend zum Löschen markiert. Die weiteren Schritte hängen von dir ab. Du kannst Zielgruppen, die als ablaufend markiert wurden, in einer aktiven Anzeigengruppe verwenden, damit sie beibehalten werden. Wenn du die markierte Zielgruppe hingegen nicht in einer aktiven Anzeigengruppe nutzt, wird sie gelöscht. Weitere Informationen dazu findest du in der Dokumentation Überblick über Custom Audiences.

Wenn du Conversion-Events mit der Conversions API teilst, kannst du eine Website für eine Custom Audience erstellen, ohne zusätzliche Daten hochzuladen. Du hast jedoch auch die Möglichkeit, weiterhin unterstützte Kundeninformationen hochzuladen und dadurch eine Custom Audience aus der Kundendatei zu erstellen.

Mit unserer neuen Replace API kannst du bestehende Nutzer einer Zielgruppe vollständig entfernen und diese durch einen neuen Satz von Nutzern ersetzen. Bei einer Aktualisierung der Zielgruppe anhand der Replace API wird deine Anzeigengruppe nicht auf die Lernphase zurückgesetzt.

Custom Audience erstellen

Schritt 1: Eine leere Custom Audience erstellen

Gib in deinem API-Aufruf subtype=CUSTOM und customer_file_source an.

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

Parameter

NameBeschreibung

customer_file_source
Enum-String

Beschreibt, wie die Kundeninformationen in deiner Custom Audience ursprünglich erfasst wurden.
Werte:

  • USER_PROVIDED_ONLY
    Die Werbetreibenden haben die Informationen direkt von den Kunden erhalten.
  • PARTNER_PROVIDED_ONLY
    Die Werbetreibenden haben die Informationen direkt von Partnern (z. B. Agenturen oder Datenanbietern) erhalten.
  • BOTH_USER_AND_PARTNER_PROVIDED
    Die Werbetreibenden haben die Informationen direkt von den Kunden und auch von Partnern (z. B. Agenturen) erhalten.

name
String

Name der Custom Audience.

description
String

Beschreibung der Custom Audience.

subtype
String

Art der Custom Audience

Schritt 2: Liste mit Nutzer*innen angeben

Sende einen POST-API-Aufruf an den /{audience_id}/users-Endpunkt, um die Liste der Nutzer*innen anzugeben, die zu deiner Custom Audience hinzugefügt werden sollen.

Parameter

NameBeschreibung

session
JSON-Objekt

Erforderlich
Mit dem Parameter session kannst du nachverfolgen, ob ein bestimmter Batch von Nutzer*innen hochgeladen wurde.
Wenn dein Upload mehr als 10.000 Nutzer*innen umfasst, musst du ihn in separate Batches aufteilen. Jede Anfrage kann bis zu 10.000 Nutzer*innen umfassen.


Beispiel

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

payload
JSON-Objekt

Erforderlich
Enthält schema und data.

Beispiel

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

Datenverarbeitungsoptionen für Nutzer*innen in den USA

Wenn du am oder nach dem 1. Juni 2023 die eingeschränkte Datennutzung für Personen in Kalifornien über Custom Audiences aus einer Kund*innenliste aktivieren möchtest, musst du neue Zielgruppen hochladen oder deine bestehenden Zielgruppen mithilfe der Kennzeichnung für die eingeschränkte Datennutzung aktualisieren. Du solltest deine Zielgruppen und den Status der eingeschränkten Datennutzung regelmäßig pflegen und bei Bedarf aktualisieren.

Bitte beachte, dass die Kennzeichnung von Nutzer*innen für die eingeschränkte Datennutzung nicht automatisch auf andere Zielgruppen übertragen wird. Werbetreibende müssen ebenfalls alle bestehenden Custom Audiences aus einer Kund*innenliste separat anhand der von ihnen gewählten Kriterien verwalten. Die Kennzeichnung für die eingeschränkte Datennutzung muss separat auf jede einzelne Zielgruppe angewandt werden, die von ihnen für Werbezwecke genutzt wird.

Sende entweder ein leeres data_processing_options-Array oder entferne das Feld in der Payload, um LDU ausdrücklich nicht für den Datensatz zu aktivieren. Beispiel für ein leeres Array:

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

Definiere ein Array mit LDU für die jeweiligen Datensätze, um LDU und die Geolocation durch Meta (indem kein Bundesstaat und Land des entsprechenden Datensatzes angegeben wird) ausdrücklich zu aktivieren:

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

Verwende Folgendes, um LDU zu aktivieren und den Standort manuell zu definieren:

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

session-Felder

NameBeschreibung

session_id
Positive 64-Bit-Ganzzahl

Erforderlich
Zur Verfolgung der Sitzung verwendete ID. Diese Zahl muss vom Werbetreibenden generiert werden und in einem bestimmten Werbekonto eindeutig sein.

batch_seq
Positive Ganzzahl

Erforderlich
Eine Zahl, um die Anfrage zu identifizieren, die in der aktuellen Sitzung aufgelistet wird. Diese Zahl muss eine fortlaufende Nummer sein und mit 1 beginnen.

last_batch_flag
Boolescher Wert

Erforderlich

Unseren Systemen angeben, dass alle Batches für die laufende Ersetzen-Sitzung bereitgestellt wurden. Wenn auf true festgelegt, ist die aktuelle Anfrage die letzte aus der aktuellen Sitzung und wir nehmen keine weiteren Batches für diese Sitzung mehr an. Wenn du dieses Flag nicht sendest, beenden wir die Sitzung automatisch 90 Minuten nach Erhalt deines ersten Batches. Alle Batches, die nach Ablauf von 90 Minuten eingehen, werden ebenfalls verworfen. Du musst die letzte Anfrage entsprechend kennzeichnen, damit Meta weiß, dass es sich dabei um den letzten Batch handelt.

estimated_num_total
Ganzzahl

Optional
Geschätzte Gesamtzahl an Nutzer*innen, die in dieser Sitzung hochgeladen werden sollen. Dieses Feld wird zur Verbesserung der Sitzungsverarbeitung verwendet.

Antwort

Eine erfolgreiche Antwort beinhaltet ein JSON-Objekt mit den folgenden Feldern:

NameBeschreibung

audience_id
Numerischer String

ID der Zielgruppe.

session_id
Ganzzahl

Übergebene Sitzungs-ID

num_received
Ganzzahl

Gesamtanzahl der bisher in der Sitzung erhaltenen Nutzer.

num_invalid_entries
Ganzzahl

Gibt die Anzahl der mit falschem Hashing gesendeten Einträge an. Diese Einträge haben keine Übereinstimmung ergeben und werden nicht der benutzerdefinierten Zielgruppe hinzugefügt. Es handelt sich um keine genaue Anzahl, doch sie gibt den Bereich der Anzahl von Nutzer*innen an, für die es keine Übereinstimmung gibt.

invalid_entry_samples
JSON-Array von Strings oder Maps {string: string}

Bis zu 100 Beispiele für ungültige Einträge in der aktuellen Anfrage.

Erfahre mehr darüber, wie du deine Custom Audience für Unternehmensobjekte freigibst.

Zielgruppenmitglieder entfernen

Sende einen DELETE-API-Aufruf an den /{audience_id}/users-Endpunkt, um die Liste der Nutzer*innen anzugeben, die aus deiner Custom Audience entfernt werden sollen.

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

Alternativ kannst du in der POST-Anfrage, mit der Zielgruppenmitglieder hinzugefügt werden, den Parameter method einfügen und auf DELETE festlegen.

Mit EXTERN_ID lassen sich Personen aus einer Liste entfernen, sofern verfügbar.

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

Du kannst mit diesem Endpunkt eine Liste mit Personen aus allen Custom Audiences in deinem Werbekonto entfernen.

Möglicherweise gibt es Gründe, die eine Verarbeitung dieser Informationen verhindern. Wenn beispielsweise das Werbekonto keinem Business-Portfolio gehört, du die Custom Audience-Nutzungsbedingungen noch nicht akzeptiert hast oder die Informationen keinem*keiner Nutzer*in zugeordnet werden können.

Nimm zum Entfernen eines Kontenübersichts-Kontos dieselben Felder auf wie beim Aktualisieren von Nutzer*innen und sende einen HTTP DELETE-Aufruf an:

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

Multi-Key-Matching (Abgleich mehrerer Schlüssel)

Um die Trefferquote für deine Datensätze zu verbessern, gib mehrere Schlüssel in einem Array einzelner Schlüssel an, z. B. [EXTERN_ID, LN, FN, EMAIL]. Eine EXTERN_ID muss nicht im Hashformat angegeben werden. Alle personenbezogenen Informationen wie z. B. E-Mail-Adressen und Namen hingegen schon. Einzelheiten findest du unter Hashing und Normalisierung von Daten.

Du kannst einige oder alle Multi-Keys für einen Datensatz angeben. Einzelheiten findest du unter Multi-Key-Matching für externe IDs.

Nutzer*innen unter Verwendung von Multi-Key-Matching hinzufügen

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

Unter Verwendung von PAGEUID

Wenn du den PAGEUID-Schlüssel verwendest, musst du eine Liste der Seiten-IDs einschließen. Du kannst uns nur eine PAGEUID senden. Diese muss ein Array mit einem Element sein.

curl -X POST \
  -F 'payload={
       "schema": [
         "PAGEUID"
       ],
       "is_raw": "true",
       "page_ids": [
            "<PAGE_IDs>"
            ],
       "data": [
         [
           "<HASH>",
           "<ID>",
           "<ID>",
           "<VALUE>"
         ],
         [
           "<HASH>",
           "<ID>",
           "<ID>",
           "<VALUE>"
         ],
         [
           "<HASH>",
           "<ID>",
           "<ID>",
           "<VALUE>"
         ]
       ]
     }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/<VERSION>/<CUSTOM_AUDIENCE_ID>/users

Hashing und Normalisierung für Multi-Key-Matching

Du musst Daten als SHA256 hashen, da wir keinen anderen Hash-Mechanismus unterstützen. Dies ist für alle Daten mit Ausnahme von externen IDs, App-Nutzer-IDs, seitenbezogenen Nutzer-IDs und mobilen Werbekunden-IDs erforderlich.

Normalisiere deine Daten vor dem Hashen, damit wir sie verarbeiten können. Nur in Vornamen (FN) und Nachnamen (LN) werden Sonderzeichen und andere Buchstaben als die des lateinischen Alphabets unterstützt. Um optimale Übereinstimmungsergebnisse zu erzielen, gib die Übersetzung im lateinischen Alphabet ohne Sonderzeichen an.

In dieser CSV-Datei

findest du Beispiele für korrekt normalisierte und gehashte Daten für die untenstehenden Parameter.



Download (Rechtsklick > Link speichern als)
SchlüsselRichtlinien

EMAIL
Kriterien: E-Mail-Adressen

Hashing erforderlich
Kürze führende und nachgestellte Leerzeichen und wandle alle Zeichen in Kleinbuchstaben um.

PHONE
Kriterien: Telefonnummern

Hashing erforderlich
Entferne Symbole, Buchstaben und alle führenden Nullen. Stelle die Landesvorwahl als Präfix voran, falls das Feld COUNTRY nicht angegeben ist.

GEN
Kriterien: Geschlecht

Hashing erforderlich
Verwende diese Werte: m für männlich, f für weiblich.

DOBY
Kriterien: Geburtsjahr

Hashing erforderlich
Verwende das Format JJJJ: von 1900 bis zum aktuellen Jahr.

DOBM
Kriterien: Geburtsmonat

Hashing erforderlich
Verwende das Format MM: 01 bis 12.

DOBD
Kriterien: Geburtstag

Hashing erforderlich
Verwende das Format TT: 01 bis 31.

LN und FN
Kriterien: Nach- und Vorname

Hashing erforderlich
Verwende nur a-z. Nur Kleinbuchstaben, keine Interpunktion. Sonderzeichen im UTF-8-Format.

FI
Kriterien: Initiale für Vorname

Hashing erforderlich
Verwende nur a-z. Nur Kleinbuchstaben. Sonderzeichen im UTF-8-Format.

ST
Kriterien: US-Bundesstaaten

Hashing erforderlich
Verwende den zweistelligen ANSI-Abkürzungscode, in Kleinbuchstaben. Normalisiere Staaten außerhalb der USA in Kleinbuchstaben, ohne Interpunktion, Sonderzeichen oder Leerzeichen.

CT
Kriterien: Ort

Hashing erforderlich
Verwende nur a-z. Nur Kleinbuchstaben, ohne Interpunktion, Sonderzeichen oder Leerzeichen.

ZIP
Kriterien: Postleitzahl

Hashing erforderlich
Verwende Kleinbuchstaben ohne Leerzeichen. Verwende nur die ersten fünf Ziffern für die USA. Verwende für GB das Format „Gebiet/Kreis/Bezirk“.

COUNTRY
Kriterien: Länderkennzeichen

Hashing erforderlich

Verwende zweistellige Länderkennzeichen im Format ISO 3166-1 Alpha-2 in Kleinbuchstaben.

MADID
Kriterien: Mobile Advertiser ID

Kein Hashing erforderlich

Verwende nur Kleinbuchstaben, Bindestriche beibehalten.

Hashing

Gib SHA256-Werte für normalisierte Schlüssel und HEX-Darstellungen dieses Werts an. Verwende dafür die Kleinbuchstaben a bis f. Die Hashfunktion in PHP wandelt normalisierte E-Mail-Adressen und Telefonnummern um:

BeispielErgebnis

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

f1904cf1a9d73a55fa5de0ac823c4403ded71afd4c3248d00bdcd0866552bb79

hash("sha256", "15559876543")

1ef970831d7963307784fa8688e8fce101a15685d62aa765fed23f3a2c576a4e

Externe IDs

Du kannst Personen für eine Zielgruppe mit deinen eigenen IDs abgleichen. Diese werden als „externe IDs“ oder EXTERN_ID bezeichnet. Dies kann eine beliebige eindeutige ID des Werbetreibenden sein, wie zum Beispiel IDs für Loyalitäts-Mitgliedschaften, Nutzer-IDs und externe Cookie-IDs.

Diese ID musst du nicht hashen. Alle personenbezogenen Informationen, die du mit den EXTERN_IDs sendest, hingegen schon.

Für ein besseres Matching musst du beim Senden der IDs genau dasselbe Format verwenden. Wenn du dich z. B. für das Hashen mit SHA256 entscheidest, musst du später den gleichen Hashwert verwenden.

Diese IDs können dann als individuelle Schlüssel verwendet werden, um Personen aus Custom Audiences zu löschen oder um neue Custom Audiences zu erstellen. So musst du keine anderen Abgleichsschlüssel hochladen. Wenn du jemanden mit personenbezogenen Informationen im Hashformat und EXTERN_ID markierst, erhält EXTERN_ID eine geringere Priorität, wenn wir sie mit Personen auf Facebook abgleichen.

Die Datenaufbewahrungsfrist für EXTERN_ID beträgt 90 Tage.

Du kannst die EXTERN_ID-Zuordnung in einem einzelnen Werbekonto wiederverwenden, um benutzerdefinierte Zielgruppen für benutzerdefinierte Dateien zu erstellen.

Wenn dein Werbekonto eine Zielgruppe aus EXTERN_ID-Feldern enthält, erstelle eine neue Zielgruppe nur mit diesen IDs.

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

Du kannst mit EXTERN_ID getaggte Personen auch mit Multi-Key-Matching hinzufügen.

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

Wir unterstützen EXTERN_ID-Parameter für einzelne Werbekonten. Wir können Werte in einem Werbekonto nicht für andere Werbekonten verwenden, selbst dann nicht, wenn die Konten zu derselben Entität gehören.

Replace Users API

Der /<CUSTOM_AUDIENCE_ID>/usersreplace-Endpunkt erlaubt dir, bis zu zwei Aktionen mit einem API-Aufruf durchzuführen:

  • bestehende Nutzer*innen vollständig aus einer bestimmten Zielgruppe entfernen
  • diese Nutzer*innen durch einen neuen Satz von Nutzer*innen ersetzen

Mit dem /<CUSTOM_AUDIENCE_ID>/usersreplace-Endpunkt kannst du alle vorhandenen Nutzer*innen automatisch löschen, anstatt eine Liste der zu löschenden Nutzer*innen hochladen zu müssen. Wenn eine Zielgruppe Teil einer aktiven Anzeigengruppe ist, setzt dieser Endpunkt die Lernphasedeiner Anzeigengruppe nicht zurück, anders als die POST oder DELETE API-Aufrufe zum /<CUSTOM_AUDIENCE_ID>/users-Endpunkt.

Die Replace Users API kann nur mit Zielgruppen mit den folgenden Voraussetzungen verwendet werden:

  • Vor einer Ersetzung muss die Zahl der Nutzer unter 100 Millionen liegen. Wenn deine Zielgruppe mehr als 100 Millionen Personen enthält, empfehlen wir dir, den /<CUSTOM_AUDIENCE_ID>/users-Endpunkt zu verwenden, um Nutzer hinzuzufügen und zu entfernen.
  • Der Untertyp muss auf CUSTOM festgelegt werden.
  • Du kannst eine wertbasierte Kundendatei-Custom Audience nicht durch eine nicht-wertbasierte Kundendatei-Custom Audience ersetzen und umgekehrt.

Erste Schritte

Wir empfehlen dir, vor dem Ersetzen Folgendes zu prüfen:

  • Stelle sicher, dass der operation_status deiner Zielgruppe normal lautet.

Wenn bereits ein Ersetzen-Vorgang läuft, kannst du keinen weiteren durchführen.

  • Du kannst während eines laufenden Ersetzen-Vorgangs über /<CUSTOM_AUDIENCE_ID>/usersreplace keine Nutzer*innen über /<CUSTOM_AUDIENCE_ID>/users hinzufügen oder entfernen. Wenn du versuchst, einen zweiten Ersetzen-Vorgang auszuführen, bevor der erste abgeschlossen ist, gibt eine Meldung an, dass bereits ein Ersetzen-Vorgang durchgeführt wird.

  • Die maximale Dauer von Batch-Sitzungen für Ersetzungen beträgt 90 Minuten. Die API lehnt alle Batches für eine Sitzung ab, die mehr als 90 Minuten nach Sitzungsstart eingehen. Wenn du länger als 90 Minuten Batches senden musst, warte, bis der Ersetzen-Vorgang für diese Sitzung abgeschlossen ist. Verwende dann für den Rest der Uploads den Hinzufügen-Vorgang des /<CUSTOM_AUDIENCE>/users-Endpunkts.

  • Sobald deine Zielgruppe bereit ist, kannst du mit einem POST-Aufruf an /<CUSTOM_AUDIENCE_ID>/usersreplace eine Liste von Personen angeben, die deiner Custom Audience hinzugefügt werden sollen.

    • Sobald du den Ersetzen-Vorgang startest, wechselt der operation_status deiner Zielgruppe zu replace_in_progress.
    • Wenn dein Ersetzen-Vorgang fehlschlägt, wechselt der operation_status deiner Zielgruppe zu replace_error.

Aufrufparameter

Du kannst die folgenden Parameter in deinen POST-Aufruf an /<CUSTOM_AUDIENCE_ID>/usersreplace aufnehmen:

NameBeschreibung

session

Typ: JSON-Objekt

Erforderlich.

Damit wird verfolgt, ob ein bestimmter Batch von Nutzern hochgeladen wurde. Muss eine Sitzungs-ID und Batch-Informationen enthalten. Siehe Sitzungsfelder.


Du kannst einer Zielgruppe gleichzeitig bis zu 10.000 Personen hinzufügen. Bei mehr als 10.000 Personen ist eine Aufteilung deiner Sitzung in mehrere Batches mit einer Sitzungs-ID erforderlich.


Beispiel:

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

payload

Typ: JSON-Objekt

Erforderlich.

Hiermit werden die Informationen angegeben, die zu deiner Zielgruppe hochgeladen werden sollen. Muss Schema und Daten enthalten. Weitere Informationen findest du unter Payload-Felder.


Beispiel:

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

Sitzungsfelder

NameBeschreibung

session_id

Typ: 64-Bit-Ganzzahl

Erforderlich.

Hiermit wird die Sitzung verfolgt. Du musst diese ID generieren. Die Zahl muss im Werbekonto eindeutig sein.

batch_seq

Typ: Ganzzahl

Erforderlich. Muss mit 1 beginnen.
Eine neue Ersetzungssitzung beginnt, wenn wir eine batch_seq von 1 erhalten. Wir raten davon ab, doppelte Batches mit einer Sequenz von 1 für eine bestimmte session_id zu senden.
Es ist wichtig, dass der erste Batch gekennzeichnet wird. Die übrigen Batches einer Sitzung können Duplikate sein oder eine beliebige Nummer haben, ausgenommen 1, da wir mit diesem Parameter den Beginn der Sitzung identifizieren. Alle Batches, die keine ersten Batches einer Sitzung sind, sollten nach dem ersten Batch gesendet werden. Betrachte den ersten Batch als Trigger/Vorbereitungsschritt für das Ersetzen.

last_batch_flag

Typ: Boolescher Wert

Optional.

Gibt an, dass alle Batches für die laufende Ersetzen-Sitzung bereitgestellt wurden. Ist hier „true“ festgelegt, werden für diese Sitzung keine weiteren Batches angenommen. Wenn du dieses Flag nicht festlegst, wird die Sitzung automatisch 90 Minuten nach Erhalt des ersten Batches beendet. Alle Batches, die nach Ablauf von 90 Minuten eingehen, werden ebenfalls verworfen.

estimated_num_total

Typ: Ganzzahl

Optional.

Geschätzte Gesamtzahl an Nutzern, die in dieser Sitzung hochgeladen werden sollen. Wird von unserem System zur besseren Verarbeitung der Sitzung genutzt.

Payload-Felder

NameBeschreibung

schema

Typ: String oder JSON_Array_of_string

Erforderlich.

Hiermit wird angegeben, welche Art von Informationen du bereitstellst. Dabei kann es sich um einen einzelnen Key oder um mehrere Keys aus dieser Liste handeln:

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

data

Typ: JSON_Array

Erforderlich.

Liste der Daten, die dem Schema entsprechen.


Beispiele:

  • Wenn das Schema "EMAIL" lautet, sollten die Daten eine Liste von E-Mail-Adressen sein, die mit sha256 gehasht wurden.
  • Wenn das Schema wie im vorigen Beispiel eine Liste von Hashes ist, sollten die Daten "phone_hash_value", "LN_FN_ZIP_DOBYM" entsprechen.

Wenn du deine POST-Anfrage sendest, erhältst du eine Antwort mit den folgenden Feldern:

NameBeschreibung

account_id

Typ: Ganzzahl

Konto-ID.

session_id

Typ: Ganzzahl

Die von dir zuvor angegebene Sitzungs-ID.

num_received

Typ: Ganzzahl

Gesamtanzahl der bisher in der Sitzung erhaltenen Nutzer*innen.

num_invalid_entries

Typ: Ganzzahl

Anzahl der Nutzer*innen, deren Format ungültig ist oder die nicht decodiert werden können. Wenn diese Zahl nicht 0 ist, solltest du deine Daten überprüfen.

invalid_entry_samples Typ: JSON-String-Array

Bis zu 100 Beispiele für ungültige Einträge in der aktuellen Anfrage. Überprüfe deine Daten.

Replace API: gängige Fehler

Alle vom Replace-Endpunkt zurückgegebenen Fehler haben den Fehlercode 2650. Es folgen einige der gängigsten Fehler-Subcodes sowie Hinweise zu ihrer Behebung.

Fehler-SubcodeBeschreibungVorgehensweise

1870145

Zielgruppen-Update läuft

Du kannst eine Custom Audience mit Kundenliste, die gerade aktualisiert wird, nicht ersetzen. Warte, bis die Audience-Verfügbarkeit „Normal“ lautet, und versuche es noch einmal.

1870158

Zeitüberschreitung bei Ersetzen-Sitzung

Bei deiner Replace-Batch-Sitzung wurde das Zeitlimit von 90 Minuten erreicht. Deine Custom Audience auf Basis einer Kundenliste wird durch die Daten ersetzt, die bislang hochgeladen wurden. Um der Custom Audience weitere Daten hinzuzufügen, warte, bis der Ersetzen-Vorgang abgeschlossen wurde, und verwende dann den Vorgang ADD.

1870147

Ungültiger Upload-Batch für Replace

Die erste batch_seq wurde nicht erkannt. Du musst deine batch_seq mit der Ganzzahl 1 beginnen.

1870159

Ersetzen-Sitzung beendet

Dieser Ersetzen-Vorgang ist bereits beendet, da du einen Batch mit last_batch_flag==true hochgeladen hast. Um weitere Batches zur Custom Audience hinzuzufügen, musst du warten, bis der Ersetzen-Vorgang beendet wurde. Verwende dann den ADD-Vorgang.

1870148

Etwas ist schiefgelaufen.

Deine Kundenliste wurde nicht vollständig hochgeladen. Wenn deine Zielgruppengröße erheblich anders als erwartet ist, versuche es noch einmal.

1870144

DFCA-Größe wird für Replace nicht unterstützt

Du kannst eine Custom Audience auf Basis einer Kundenliste mit einer Größe von 100 Millionen oder mehr nicht ersetzen.

Ressourcen

Du kannst weitere Arten von Zielgruppen erstellen, ansprechen und teilen:

  • Custom Audiences über deine Webseite – Erstelle eine Zielgruppe auf Basis von Personen, die eine bestimmte Seite besucht oder eine Handlung auf deiner Webseite durchgeführt haben. Erstelle eine Zielgruppe auf Basis von Daten des Meta-Pixels auf deiner Website.

  • Custom Audiences über deine mobile App – Erstelle eine Audience basierend auf Personen, die deine mobile App nutzen. Erstelle eine Zielgruppe auf Basis von Daten aus App-Events.

  • Lookalike Audiences – Identifiziere Personen, die du bereits kennst, und richte deine Werbeanzeigen an ähnliche Personen in der Facebook-App.

  • Offline-Custom Audiences – Erstelle eine Zielgruppe auf Basis von Personen, die deinen Store besucht oder deinen Kundendienst angerufen haben oder über andere Offline-Methoden aktiv geworden sind.

  • Canvas-Interaktionszielgruppen – Erstelle eine Zielgruppe mit allen Personen, die mit deinem Canvas interagiert haben.