Pemirsa Khusus File Pelanggan

Marketing API mengizinkan Anda membuat target Pemirsa Khusus berdasarkan informasi pelanggan. Ini termasuk alamat email, nomor telepon, nama, tanggal lahir, jenis kelamin, lokasi, ID Pengguna Aplikasi, ID Pengguna Lingkup Halaman, Pengidentifikasi Periklanan Apple (IDFA), atau ID Periklanan Android.

Sebagai pemilik data bisnis Anda, Anda bertanggung jawab untuk membuat dan mengelola data ini. Ini menyertakan informasi dari sistem Manajemen Hubungan Pelanggan (CRM). Untuk membuat pemirsa, Anda harus membagikan data dalam format yang telah di-hash untuk menjaga privasi. Lihat Hashing dan Normalisasi Data. Meta akan membandingkan data ini dengan data yang telah kami hash untuk melihat apakah kami perlu menambahkan seseorang di Facebook ke pemirsa iklan Anda.

Anda bisa menambahkan jumlah data yang terbatas ke suatu pemirsa, tetapi hanya hingga 10.000 setiap kalinya. Perubahan pada Pemirsa Khusus Anda tidak langsung terjadi dan biasanya membutuhkan waktu hingga 24 jam. Jumlah rekaman yang Anda minta untuk dihapus dan/atau jumlah Pemirsa Khusus yang ada di akun Anda akan meningkatkan jumlah waktu yang dibutuhkan untuk memproses permintaan ini.

Untuk meningkatkan cara pengiklan membuat dan mengelola pemirsa mereka, Pemirsa Khusus File Pelanggan yang belum pernah digunakan dalam set iklan aktif apa pun selama lebih dari dua tahun akan ditandai untuk dihapus secara bergilir. Anda harus memberi kami instruksi Anda sebelum kami mengambil tindakan apa pun. Setelah pemirsa dipindahkan ke tahap "Pemirsa Kedaluwarsa" dan ditandai, Anda harus memberikan instruksi dengan menggunakan pemirsa yang ditandai di set iklan aktif, yang akan kami anggap sebagai instruksi untuk mempertahankan pemirsa, atau dengan memutuskan untuk tidak menggunakan pemirsa yang ditandai di set iklan aktif, yang akan kami anggap sebagai instruksi untuk menghapus pemirsa. Untuk informasi selengkapnya, lihat dokumentasi Ringkasan Pemirsa Khusus.

Jika Anda membagikan peristiwa konversi menggunakan Conversions API, Anda dapat membuat situs web pemirsa khusus tanpa unggahan data tambahan. Namun, Anda dapat terus mengunggah informasi pelanggan yang didukung untuk membuat Pemirsa Khusus File Pelanggan.

Gunakan API Ganti untuk sepenuhnya menghapus pengguna yang ada dari pemirsa dan menggantinya dengan set pengguna baru. Pembaruan pemirsa yang dibuat dengan API Ganti tidak mengembalikan set iklan Anda ke fase pembelajaran.

Membuat Pemirsa Khusus

Langkah 1: Buat Pemirsa Khusus yang Masih Kosong

Tentukan subtype=CUSTOM dan customer_file_source dalam panggilan API Anda.

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/v19.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

NamaDeskripsi

customer_file_source
string enum

Mendeskripsikan cara awal pengumpulan informasi pelanggan di Pemirsa Khusus Anda.
Nilai:

  • USER_PROVIDED_ONLY
    Pengiklan mengumpulkan informasi secara langsung dari pelanggan
  • PARTNER_PROVIDED_ONLY
    Pengiklan mengambil informasi secara langsung dari partner (mis., agensi atau penyedia data)
  • BOTH_USER_AND_PARTNER_PROVIDED
    Pengiklan mengumpulkan informasi secara langsung dari pelanggan dan informasi juga diambil dari partner (mis., agensi)

name
string

Nama Pemirsa Khusus

description
string

Deskripsi Pemirsa Khusus

subtype
string

Jenis Pemirsa Khusus

Langkah 2: Tentukan Daftar Pengguna

Gunakan panggilan API POST ke endpoint /{audience_id}/users endpoint untuk menentukan daftar pengguna yang ingin ditambahkan ke Pemirsa Khusus Anda.

Parameter

NamaDeskripsi

session
Objek JSON

Wajib
Gunakan parameter session untuk melacak jika sekelompok pengguna tertentu telah diunggah
Jika Anda memiliki unggahan dengan lebih dari 10.000 pengguna, Anda perlu membaginya menjadi beberapa kelompok terpisah; setiap permintaan dapat memerlukan hingga 10.000 pengguna.


Contoh

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

payload
Objek JSON

Wajib
Mencakup schema dan data.

Contoh

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

Opsi Pemrosesan Data bagi Pengguna di AS

Jika Anda ingin mengaktifkan Penggunaan Data Terbatas bagi orang-orang di California melalui pemirsa khusus daftar pelanggan pada atau setelah 1 Juni 2023, Anda harus mengunggah pemirsa baru atau memperbarui pemirsa yang ada dengan tanda Penggunaan Data Terbatas. Secara rutin perbarui dan pertahankan pemirsa Anda dan status Penggunaan Data Terbatas orang-orang sesuai kebutuhan.

Harap diperhatikan bahwa tanda Penggunaan Data Terbatas diterapkan pada seorang pengguna dalam satu pemirsa tidak akan secara otomatis dibawa ke pemirsa yang berbeda. Dengan cara yang sama, pengiklan harus mengelola masing-masing daftar pelanggan yang ada secara terpisah berdasarkan kriteria yang mereka pilih, tanda Penggunaan Data Terbatas harus diterapkan secara terpisah untuk setiap pemirsa yang mereka manfaatkan untuk iklan mereka.

Untuk secara eksplisit TIDAK mengaktifkan LDU untuk rekaman, Anda dapat mengirim array data_processing_options kosong atau menghapus kolom di payload. Contoh array kosong:

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

Untuk secara eksplisit mengaktifkan LDU, dan minta Meta melakukan geolokasi (dengan tidak menyertakan negara bagian dan negara dari rekaman yang diberikan), tentukan array yang berisi LDU untuk setiap rekaman:

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

Untuk mengaktifkan LDU dan menentukan lokasi secara manual:

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

Kolom session

NamaDeskripsi

session_id
bilangan bulat positif 64 bit

Wajib
Pengidentifikasi yang digunakan untuk melacak sesi. Nomor ini harus dibuat oleh pengiklan dan unik dalam akun iklan tertentu.

batch_seq
bilangan bulat positif

Wajib
Nomor untuk mengidentifikasi permintaan yang terdaftar dalam sesi saat ini. Angka ini harus urut dan dimulai dari 1.

last_batch_flag
Boolean

Wajib

Menunjukkan ke sistem kami bahwa semua batch untuk sesi Penggantian yang sedang berlangsung telah disediakan. Ketika diatur ke true, permintaan saat ini adalah yang terakhir dari sesi saat ini, dan kami tidak menerima batch lebih lanjut untuk sesi itu. Jika Anda tidak mengatur bendera ini, kami akan secara otomatis mengakhiri sesi penggantian 90 menit setelah kami menerima batch pertama Anda. Semua batch yang diterima setelah 90 menit juga akan dibuang. Anda harus menandai permintaan terakhir untuk memberi tahu Meta bahwa ini adalah batch terakhir.

estimated_num_total
bilangan bulat

Opsional
Estimasi jumlah total pengguna yang akan diunggah dalam sesi ini. Kolom ini digunakan untuk meningkatkan pemrosesan sesi ini.

Tanggapan

Tanggapan yang berhasil menyertakan objek JSON dengan kolom berikut:

NamaDeskripsi

audience_id
string numerik

Pengidentifikasi pemirsa

session_id
bilangan bulat

ID sesi yang Anda teruskan

num_received
bilangan bulat

Jumlah total pengguna yang diterima di dalam sesi sejauh ini

num_invalid_entries
bilangan bulat

Jumlah entri yang dikirim dengan hashing yang salah. Entri tersebut tidak memberikan kecocokan dan tidak ditambahkan ke pemirsa khusus. Ini bukan angka pasti, tetapi ini mewakili jumlah pengguna yang tidak cocok.

invalid_entry_samples
Array JSON String atau Peta {string: string}

Hingga 100 sampel entri yang tidak valid ditemukan dalam permintaan saat ini

Pelajari selengkapnya tentang membagikan Pemirsa Khusus Anda dengan objek bisnis.

Menghapus Anggota Pemirsa

Gunakan panggilan API DELETE ke endpoint /{audience_id}/users untuk menentukan daftar pengguna yang ingin dihapus dari Pemirsa Khusus Anda.

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

Atau, Anda dapat menambahkan parameter method dan mengaturnya ke DELETE dalam permintaan POST yang digunakan untuk menambahkan anggota pemirsa.

Anda juga dapat menghapus orang dari daftar dengan EXTERN_ID, jika tersedia.

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

Anda dapat menghapus daftar orang dari semua Pemirsa Khusus di seluruh akun iklan Anda menggunakan endpoint ini.

Mungkin ada beberapa alasan mengapa informasi ini tidak diproses. Contoh: jika iklan akun tidak dimiliki oleh akun bisnis, Anda belum menerima Ketentuan Pemirsa Khusus, atau informasi tidak cocok dengan pengguna.

Untuk menghapus akun Pusat Akun, sertakan kolom yang sama seperti di pembaruan pengguna dan buat panggilan HTTP DELETE ke:

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

Pencocokan Multikode

Untuk meningkatkan tingkat pencocokan bagi rekaman Anda, sediakan beberapa kode dalam array kode individu; contoh: [EXTERN_ID, LN, FN, EMAIL]. Meski tidak perlu hashing EXTERN_ID, semua informasi identifikasi pribadi, seperti email dan nama, wajib hashing. Untuk detailnya, lihat Hashing dan Normalisasi Data.

Anda dapat menyediakan sebagian atau semua multikode untuk rekaman. Untuk detailnya, lihat pencocokan ID eksternal multikode.

Menambahkan Pengguna dengan Kecocokan Multikode

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

Menggunakan PAGEUID

Jika menggunakan kode PAGEUID, Anda juga harus menyertakan daftar ID Halaman. Anda hanya bisa mengirimi kami satu PAGEUID, yang harus merupakan array dengan satu elemen.

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 dan Normalisasi untuk Multikode

Data harus di-hash sebagai SHA256; kami tidak mendukung mekanisme hashing lainnya. Ini diperlukan untuk semua data, kecuali Pengidentifikasi Eksternal, ID Pengguna Aplikasi, ID Pengguna Lingkup Halaman, dan ID Pengiklan Seluler.

Sebelum Anda meng-hashing data, normalkan data itu agar kami bisa menanganinya. Hanya Nama Depan (FN) dan Nama Belakang (LN) yang mendukung karakter khusus dan abjad non-Romawi. Untuk mendapatkan hasil kecocokan terbaik, sediakan terjemahan abjad Romawi tanpa karakter khusus apa pun.

Silakan unduh file CSV ini

untuk contoh data yang dinormalisasi dengan benar dan data dengan hash untuk parameter di bawah ini.



Unduh (Klik kanan > Simpan Tautan sebagai)
KodePedoman

Kriteria EMAIL
: alamat email

Wajib hashing
Hilangkan spasi di depan dan di belakang, dan ubah semua karakter menjadi huruf kecil.

Kriteria PHONE
: nomor telepon

Wajib hashing
Hapus simbol, huruf, dan angka nol di depannya. Tambahkan kode negara di depan jika kolom COUNTRY tidak ditentukan.

Kriteria GEN
: jenis kelamin

Wajib hashing
Gunakan nilai ini: m untuk laki-laki, f untuk perempuan.

Kriteria DOBY
: tahun lahir

Wajib hashing
Gunakan format TTTT: 1900 sampai tahun sekarang.

Kriteria DOBM
: bulan lahir

Wajib hashing
Gunakan format BB: 01 sampai 12.

Kriteria DOBD
: ulang tahun

Wajib hashing
Gunakan format HH: 01 sampai 31.

Kriteria LN dan FN
: nama belakang dan nama depan

Wajib hashing
Hanya gunakan a-z. Huruf kecil saja, tanpa tanda baca. Karakter khusus dalam format UTF-8.

Kriteria FI
: inisial nama depan

Wajib hashing
Hanya gunakan a-z. Huruf kecil saja. Karakter khusus dalam format UTF-8.

Kriteria ST
: negara bagian AS

Wajib hashing
Gunakan 2 karakter kode singkatan ANSI, huruf kecil. Normalisasi negara bagian di luar AS dalam huruf kecil, tanpa tanda baca, tanpa karakter khusus, dan tanpa spasi.

Kriteria CT
: kota

Wajib hashing
Hanya gunakan a-z. Hanya huruf kecil, tanpa tanda baca, tanpa karakter khusus, dan tanpa spasi.

Kriteria ZIP
: kode pos

Wajib hashing
Gunakan huruf kecil, tanpa spasi. Untuk AS, hanya gunakan 5 digit pertama. Untuk Inggris Raya, gunakan format Area/Distrik/Sektor.

Kriteria COUNTRY
: kode negara

Hashing diperlukan

Gunakan kode negara 2 huruf kecil dalam ISO 3166-1 alpha-2.

Kriteria MADID
: ID pengiklan seluler

Hashing TIDAK wajib

Gunakan hanya huruf kecil, jangan hapus tanda hubung.

Hashing

Sediakan nilai SHA256 untuk kode yang dinormalisasi dan perwakilan HEX dari nilai ini, menggunakan huruf kecil untuk A sampai F. Fungsi hash dalam PHP mengubah email dan nomor telepon yang dinormalisasi.

ContohHasil

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

f1904cf1a9d73a55fa5de0ac823c4403ded71afd4c3248d00bdcd0866552bb79

hash("sha256", "15559876543")

1ef970831d7963307784fa8688e8fce101a15685d62aa765fed23f3a2c576a4e

Pengidentifikasi Eksternal

Anda dapat mencocokkan orang untuk suatu pemirsa dengan pengidentifikasi Anda sendiri, yang disebut Pengidentifikasi Eksternal (EXTERN_ID). Ini bisa berupa ID unik apa pun dari pengiklan, seperti ID keanggotaan loyalitas, ID pengguna, dan ID cookie eksternal.

Meski ID ini tidak wajib hashing, Anda harus hashing semua Informasi Identifikasi Pribadi (PII) yang Anda kirimkan bersama dengan EXTERN_ID.

Untuk pencocokan yang lebih baik, Anda juga harus menggunakan format yang sama persis saat Anda mengirim ID. Contoh: jika Anda memilih untuk melakukan hash menggunakan SHA256, pastikan untuk menggunakan nilai hash yang sama.

ID ini selanjutnya dapat digunakan sebagai kode individual untuk menghapus orang dari Pemirsa Khusus atau membuat Pemirsa Khusus baru. Dengan begitu Anda tidak perlu mengunggah ulang kode kecocokan lain mana pun. Jika Anda melabeli seseorang dengan informasi pribadi yang di-hashing dan EXTERN_ID, kami memberi EXTERN_ID prioritas yang lebih rendah saat kami mencocokkannya dengan orang-orang di Facebook.

Periode retensi data untuk EXTERN_ID adalah 90 hari.

Anda dapat menggunakan ulang pemetaan EXTERN_ID untuk membuat file khusus pemirsa khusus dalam satu akun iklan.

Jika Anda memiliki pemirsa dengan kolom EXTERN_ID dalam akun iklan Anda, buatlah pemirsa baru hanya dengan pengidentifikasi ini.

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

Anda juga dapat menambahkan orang yang ditandai EXTERN_ID dan dengan pencocokan multikode.

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

Kami mendukung parameter EXTERN_ID untuk akun iklan individual. Kami tidak dapat menggunakan nilai dari satu akun iklan untuk akun iklan lainnya, bahkan jika akun tersebut milik entitas yang sama.

API Ganti Pengguna

Endpoint /<CUSTOM_AUDIENCE_ID>/usersreplace memungkinkan Anda untuk melakukan 2 tindakan dengan satu panggilan API:

  • Sepenuhnya menghapus pengguna yang ada dari pemirsa tertentu
  • Menggantikan pengguna tersebut dengan satu set pengguna baru.

Menggunakan endpoint /<CUSTOM_AUDIENCE_ID>/usersreplace memungkinkan Anda untuk secara otomatis menghapus semua pengguna yang ada daripada harus mengunggah daftar pengguna yang ingin dihapus. Endpoint ini tidak mengatur ulang fase pembelajaran set iklan Anda saat pemirsa adalah bagian dari set iklan aktif, tidak seperti panggilan POST atau DELETE API ke endpoint /<CUSTOM_AUDIENCE_ID>/users.

API Ganti Pengguna hanya berfungsi dengan pemirsa yang memenuhi persyaratan berikut:

  • Jumlah pengguna yang ada sebelum menjalankan proses penggantian harus lebih kecil dari 100 juta. Jika pemirsa Anda lebih besar dari 100 juta, kami sarankan untuk memanfaatkan endpoint /<CUSTOM_AUDIENCE_ID>/users untuk menambahkan dan menghapus pengguna.
  • Subjenis harus diatur ke CUSTOM.
  • Anda tidak dapat mengganti pemirsa khusus file pelanggan berbasis nilai dengan pemirsa khusus file pelanggan berbasis non-nilai, atau sebaliknya.

Memulai

Sebelum Anda memulai proses penggantian, kami merekomendasikan hal-hal berikut:

  • Pastikan operation_status pemirsa Anda adalah Normal.

Anda tidak dapat melakukan operasi penggantian lagi jika ada yang sudah dijalankan.

  • Jangan menambah atau menghapus pengguna melalui /<CUSTOM_AUDIENCE_ID>/users selama operasi penggantian yang sedang berlangsung melalui /<CUSTOM_AUDIENCE_ID>/usersreplace. Jika Anda mencoba melakukan operasi penggantian kedua sebelum yang pertama selesai, Anda akan menerima pesan yang menunjukkan bahwa operasi penggantian sedang berlangsung.

  • Termin durasi maksimum untuk 1 sesi penggantian adalah 90 menit. API akan menolak batch apa pun untuk sesi yang diterima setelah 90 menit sejak sesi dimulai. Jika Anda perlu mengirim batch untuk durasi lebih dari 90 menit, kami sarankan menunggu hingga operasi penggantian untuk sesi itu selesai, lalu gunakan operasi penambahan endpoint /<CUSTOM_AUDIENCE>/users untuk sisa unggahan Anda.

  • Setelah pemirsa Anda siap, tentukan daftar pengguna yang ingin Anda ganti dengan pemirsa khusus Anda menggunakan panggilan POST ke /<CUSTOM_AUDIENCE_ID>/usersreplace.

    • Setelah Anda memulai kemajuan penggantian, operation_status pemirsa Anda beralih ke replace_in_progress.
    • Jika operasi penggantian Anda gagal, operation_status pemirsa Anda beralih ke replace_error.

Parameter Panggilan

Anda dapat menyertakan parameter berikut di panggilan POST ke /<CUSTOM_AUDIENCE_ID>/usersreplace:

NamaDeskripsi

session

Jenis: objek JSON

Wajib.

Digunakan untuk melacak apakah sekelompok pengguna tertentu telah diunggah. Harus menyertakan ID sesi dan informasi batch. Lihat Kolom Sesi.


Anda dapat menambahkan hingga 10.000 orang ke pemirsa pada waktu tertentu. Jika Anda memiliki lebih dari 10.000 orang, bagi sesi Anda menjadi beberapa kelompok, yang semuanya harus memiliki 1 ID sesi.


Contoh:

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

payload

Jenis: objek JSON

Wajib.

Digunakan untuk memberikan informasi yang ingin Anda unggah ke pemirsa Anda. Harus menyertakan schema dan data — lihat Kolom Payload untuk informasi selengkapnya.


Contoh:

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

Kolom Sesi

NamaDeskripsi

session_id

Jenis: bilangan bulat 64 bit

Wajib.

Digunakan untuk melacak sesi. Anda harus membuat pengidentifikasi ini dan angkanya harus unik dalam akun iklan yang sama.

batch_seq

Jenis: bilangan bulat

Wajib. Harus dimulai dari 1.
Sesi penggantian baru dimulai saat kami menerima batch_seq1. Kami merekomendasikan untuk tidak mengirim batch duplikat dengan urutan 1 untuk session_id yang diberikan.
Melabeli batch pertama itu penting; sisa batch dari suatu sesi dapat berupa duplikat atau angka apa pun kecuali 1 karena kami menggunakan parameter ini untuk mengidentifikasi awal sesi. Semua batch yang bukan pertama untuk suatu sesi harus dikirim setelah batch pertama. Pertimbangkan batch pertama sebagai pemicu/langkah awal untuk operasi penggantian.

last_batch_flag

Jenis: Boolean

Opsional.

Menunjukkan semua batch untuk sesi Penggantian yang sedang berlangsung telah disediakan. Ketika diatur ke true, tidak ada batch lebih lanjut yang diterima untuk sesi itu. Jika Anda tidak mengatur bendera ini, sesi secara otomatis dihentikan 90 menit setelah batch pertama diterima. Semua batch yang diterima setelah 90 menit juga akan dibuang.

estimated_num_total

Jenis: bilangan bulat

Opsional.

Estimasi jumlah total pengguna yang akan diunggah di sesi ini. Digunakan oleh sistem kami untuk meningkatkan pemrosesan sesi.

Kolom Payload

NamaDeskripsi

schema

Jenis: string atau JSON_Array_of_string

Wajib.

Tentukan jenis informasi yang akan Anda berikan. Informasi ini bisa berupa kode tunggal atau multikode dari daftar berikut:

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

data

Jenis: JSON_Array

Wajib.

Daftar data yang sesuai dengan schema.


Contoh:

  • Jika skemanya "EMAIL", data haruslah daftar email dengan hash sha256.
  • Jika skema adalah daftar hash seperti pada contoh sebelumnya, datanya harus seperti: "phone_hash_value", "LN_FN_ZIP_DOBYM".

Setelah Anda membuat permintaan POST, Anda mendapatkan tanggapan dengan kolom berikut:

NamaDeskripsi

account_id

Jenis: bilangan bulat

Pengidentifikasi akun.

session_id

Jenis: bilangan bulat

ID sesi yang telah Anda berikan sebelumnya.

num_received

Jenis: bilangan bulat

Jumlah total pengguna yang diterima di dalam sesi sejauh ini.

num_invalid_entries

Jenis: bilangan bulat

Jumlah total pengguna dengan format yang tidak valid atau tidak dapat dihapus kodenya. Jika angka ini tidak nol, periksa kembali data Anda.

invalid_entry_samples Jenis: Array string JSON

Hingga 100 sampel entri yang tidak valid di dalam permintaan saat ini. Periksa kembali data Anda.

Kesalahan Umum API Ganti

Semua kesalahan yang diberikan dari endpoint Ganti memiliki kode kesalahan 2650. Berikut ini adalah beberapa subkode kesalahan yang paling umum ditampilkan, serta panduan tentang cara menyelesaikannya.

Subkode KesalahanDeskripsiYang Harus Dilakukan

1870145

Pembaruan Pemirsa sedang Berlangsung

Anda tidak dapat mengganti pemirsa khusus daftar pelanggan yang sedang dalam proses pembaruan. Tunggu ketersediaan pemirsa menjadi "Normal" dan coba lagi.

1870158

Waktu Habis untuk Sesi Penggantian

Anda telah mencapai batas waktu 90 menit untuk sesi ganti batch Anda. Pemirsa khusus daftar pelanggan Anda akan diganti dengan apa yang telah Anda unggah sejauh ini. Untuk menambahkan lebih banyak ke pemirsa khusus, tunggu sampai proses penggantian selesai, lalu gunakan operasi ADD.

1870147

Pengunggahan Batch untuk Penggantian Tidak Valid

batch_seq pertama tidak terdeteksi. batch_seq harus dimulai dari bilangan bulat 1.

1870159

Sesi Penggantian Selesai

Operasi penggantian ini sudah selesai karena Anda mengunggah batch dengan last_batch_flag==true. Untuk menambahkan lebih banyak ke pemirsa khusus, tunggu sampai proses penggantian selesai, lalu gunakan operasi ADD.

1870148

Terjadi Kesalahan

Daftar pelanggan Anda belum sepenuhnya diperbarui. Jika ukuran pemirsa Anda berbeda secara signifikan dari yang diharapkan, pertimbangkan untuk mencoba lagi.

1870144

Ukuran DFCA Tidak Didukung untuk Penggantian

Anda tidak bisa mengganti pemirsa khusus daftar pelanggan yang memiliki ukuran 100 juta atau lebih.

Sumber Informasi

Ada jenis pemirsa lainnya yang dapat Anda buat dan targetkan, atau bagikan: