Đối tượng tùy chỉnh từ file khách hàng

Nhờ có API Marketing, bạn có thể tạo Đối tượng tùy chỉnh mục tiêu dựa trên thông tin khách hàng. Thông tin này bao gồm địa chỉ email, số điện thoại, tên, ngày sinh, giới tính, vị trí, ID người dùng ứng dụng, ID người dùng trong Trang, Mã nhận dạng quảng cáo của Apple (IDFA) hoặc ID quảng cáo của Android.

Là chủ sở hữu dữ liệu của doanh nghiệp, bạn chịu trách nhiệm tạo và quản lý dữ liệu này. Dữ liệu này gồm các thông tin trong hệ thống Quản lý quan hệ khách hàng (CRM) của bạn. Để tạo đối tượng, bạn phải chia sẻ dữ liệu của mình ở định dạng được băm nhằm đảm bảo quyền riêng tư. Hãy xem phần Băm và chuẩn hóa dữ liệu. Meta so sánh dữ liệu này với dữ liệu dạng băm của chúng tôi để biết chúng tôi có nên thêm ai đó trên Facebook vào đối tượng quảng cáo của bạn hay không.

Bạn có thể thêm số lượng bản ghi không giới hạn cho một đối tượng. Tuy nhiên, mỗi lần bạn chỉ có thể thêm tối đa 10.000 bản ghi. Những thay đổi bạn thực hiện với Đối tượng tùy chỉnh không có hiệu lực ngay lập tức mà thường mất đến 24 giờ. Thời gian xử lý yêu cầu này tùy thuộc vào số lượng bản ghi bạn yêu cầu gỡ và/hoặc số lượng Đối tượng tùy chỉnh có trên tài khoản của bạn.

Để cải thiện cách nhà quảng cáo tạo và quản lý đối tượng của họ, những Đối tượng tùy chỉnh từ file khách hàng không được sử dụng trong bất kỳ nhóm quảng cáo đang hoạt động nào trong hơn 2 năm sẽ bị gắn cờ để xóa theo định kỳ. Bạn cần đưa ra hướng dẫn cho chúng tôi trước khi chúng tôi thực hiện bất kỳ hành động nào. Sau khi các đối tượng được chuyển sang giai đoạn "Đối tượng sắp hết hạn" và bị gắn cờ, bạn cần đưa ra hướng dẫn theo 2 cách: Thứ nhất là sử dụng đối tượng bị gắn cờ trong một nhóm quảng cáo đang hoạt động, chúng tôi sẽ xem đó là hướng dẫn giữ lại đối tượng này. Thứ hai là quyết định không sử dụng đối tượng bị gắn cờ trong một nhóm quảng cáo đang hoạt động, chúng tôi sẽ xem đó là hướng dẫn xóa đối tượng này. Để biết thêm thông tin, hãy xem tài liệu Tổng quan về Đối tượng tùy chỉnh.

Nếu chia sẻ các sự kiện chuyển đổi thông qua API Chuyển đổi, bạn có thể tạo trang web cho đối tượng tùy chỉnh mà không cần tải thêm dữ liệu lên. Tuy nhiên, bạn có thể tiếp tục tải thông tin khách hàng được hỗ trợ lên để tạo Đối tượng tùy chỉnh từ file khách hàng.

Hãy dùng API Thay thế mới của chúng tôi để xóa hoàn toàn những người dùng hiện có trong một đối tượng và thay thế họ bằng nhóm người dùng mới. Thao tác cập nhật đối tượng bằng API Thay thế không chuyển nhóm quảng cáo của bạn về lại giai đoạn máy học.

Tạo Đối tượng tùy chỉnh

Bước 1: Tạo một Đối tượng tùy chỉnh trống

Chỉ định subtype=CUSTOMcustomer_file_source trong lệnh gọi API của bạn.

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

Thông số

TênMô tả

customer_file_source
chuỗi liệt kê

Mô tả cách thu thập thông tin khách hàng ban đầu trong Đối tượng tùy chỉnh.
Giá trị:

  • USER_PROVIDED_ONLY
    Nhà quảng cáo thu thập thông tin trực tiếp từ khách hàng
  • PARTNER_PROVIDED_ONLY
    Nhà quảng cáo lấy thông tin trực tiếp từ đối tác (ví dụ: các agency hoặc nhà cung cấp dữ liệu)
  • BOTH_USER_AND_PARTNER_PROVIDED
    Nhà quảng cáo thu thập thông tin trực tiếp từ khách hàng cũng như lấy thông tin từ đối tác (ví dụ: các agency)

name
chuỗi

Tên Đối tượng tùy chỉnh

description
chuỗi

Mô tả Đối tượng tùy chỉnh

subtype
chuỗi

Loại Đối tượng tùy chỉnh

Bước 2: Chỉ định danh sách người dùng

Để chỉ định danh sách người dùng mà bạn muốn thêm vào Đối tượng tùy chỉnh, hãy gửi lệnh gọi API POST đến điểm cuối /{audience_id}/users.

Thông số

TênMô tả

session
Đối tượng JSON

Bắt buộc
Sử dụng thông số session để theo dõi xem một lô người dùng cụ thể đã được tải lên hay chưa.
Nếu tải lên hơn 10.000 người dùng, bạn cần phải phân tách thành các lô riêng biệt. Mỗi yêu cầu chỉ có thể tải tối đa 10.000 người dùng.


Ví dụ

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

payload
Đối tượng JSON

Bắt buộc
Bao gồm schemadata.

Ví dụ

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

Tùy chọn xử lý dữ liệu cho người dùng tại Hoa Kỳ

Nếu muốn bật tính năng Giới hạn mức sử dụng dữ liệu cho những người ở California thông qua đối tượng tùy chỉnh từ danh sách khách hàng vào hoặc sau ngày 01/06/2023, bạn phải tải đối tượng mới lên hoặc cập nhật đối tượng hiện có với cờ Giới hạn mức sử dụng dữ liệu. Thường xuyên cập nhật và duy trì trạng thái Giới hạn mức sử dụng dữ liệu của đối tượng và mọi người khi cần.

Lưu ý rằng cờ Giới hạn mức sử dụng dữ liệu áp dụng cho người dùng trong một đối tượng sẽ không tự động chuyển sang các đối tượng khác. Tương tự, nhà quảng cáo phải quản lý từng đối tượng tùy chỉnh từ danh sách khách hàng hiện có một cách riêng biệt theo tiêu chí đã chọn, cờ Giới hạn mức sử dụng dữ liệu phải được áp dụng riêng cho từng đối tượng mà họ tận dụng cho quảng cáo.

Để rõ ràng KHÔNG bật LDU cho hồ sơ, bạn có thể gửi một mảng data_processing_options trống hoặc gỡ trường này trong phần tải dữ liệu. Ví dụ về một mảng trống:

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

Để rõ ràng bật LDU và yêu cầu Meta xác định vị trí địa lý (bằng cách không thêm tiểu bang và quốc gia của hồ sơ cụ thể), hãy chỉ định một mảng chứa LDU cho từng hồ sơ:

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

Để bật tính năng LDU và chỉ định vị trí theo cách thủ công:

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

Trường session

TênMô tả

session_id
số nguyên dương 64 bit

Bắt buộc
Thông tin nhận dạng dùng để theo dõi phiên. Số này phải do nhà quảng cáo tạo và dành riêng cho một tài khoản quảng cáo cụ thể.

batch_seq
số nguyên dương

Bắt buộc
Số để xác định yêu cầu nêu trong phiên hiện tại. Số này phải theo thứ tự và bắt đầu từ 1.

last_batch_flag
boolean

Bắt buộc

Cho hệ thống của chúng tôi biết rằng mọi lô của phiên Thay thế đang diễn ra đã được cung cấp. Khi đặt thành true, yêu cầu hiện tại sẽ là yêu cầu cuối cùng của phiên hiện tại và chúng tôi sẽ không chấp nhận thêm lô nào khác cho phiên đó. Nếu bạn không gửi cờ này, chúng tôi sẽ tự động chấm dứt phiên sau 90 phút kể từ khi nhận được lô đầu tiên. Mọi lô nhận được sau 90 phút đều sẽ bị bỏ. Bạn phải đánh dấu yêu cầu cuối để cho Meta biết rằng đây là lô cuối cùng.

estimated_num_total
số nguyên

Không bắt buộc
Tổng số người dùng ước tính sẽ được tải lên trong phiên này. Hệ thống dùng trường này để cải thiện khả năng xử lý của phiên tải lên.

Phản hồi

Nếu thành công, phản hồi sẽ bao gồm đối tượng JSON cùng với các trường sau đây:

TênMô tả

audience_id
chuỗi số

Thông tin nhận dạng đối tượng

session_id
số nguyên

ID phiên mà bạn đã chuyển vào

num_received
số nguyên

Tổng số người dùng nhận được trong phiên này tính đến thời điểm hiện tại

num_invalid_entries
số nguyên

Số mục đã gửi nhưng không được băm đúng cách. Những mục đó không trả về kết quả trùng khớp và không được thêm vào đối tượng tùy chỉnh. Dù không phải là con số chính xác nhưng thông số này cho thấy phạm vi số lượng người dùng không khớp.

invalid_entry_samples
Mảng JSON gồm chuỗi hoặc sơ đồ {string: string}

Tìm thấy tối đa 100 mẫu gồm các mục không hợp lệ trong yêu cầu hiện tại

Hãy tìm hiểu thêm về cách chia sẻ Đối tượng tùy chỉnh của bạn với các đối tượng kinh doanh.

Xóa thành viên trong đối tượng

Để chỉ định danh sách người dùng bạn muốn xóa khỏi Đối tượng tùy chỉnh, hãy gửi lệnh gọi API DELETE đến điểm cuối /{audience_id}/users.

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

Hoặc bạn có thể thêm thông số method rồi đặt thông số đó thành DELETE trong yêu cầu POST dùng để thêm thành viên vào đối tượng.

Bạn có thể xóa mọi người khỏi một danh sách với EXTERN_ID, nếu có.

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

Bạn có thể dùng điểm cuối này để xóa danh sách người dùng khỏi tất cả đối tượng tùy chỉnh trên tài khoản quảng cáo của bạn.

Có một số lý do khiến thông tin này không được xử lý. Chẳng hạn như trường hợp tài khoản quảng cáo không thuộc sở hữu của tài khoản kinh doanh, bạn chưa chấp nhận Điều khoản về Đối tượng tùy chỉnh hoặc thông tin không khớp với người dùng.

Để gỡ một tài khoản trong Trung tâm tài khoản, hãy thêm các trường giống như trong phần cập nhật người dùng và gửi lệnh gọi HTTP DELETE đến:

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

So khớp nhiều khóa

Để tăng tỷ lệ khớp cho các bản ghi của bạn, hãy cung cấp nhiều khóa trong một mảng gồm các khóa riêng lẻ, chẳng hạn như [EXTERN_ID, LN, FN, EMAIL]. Mặc dù không cần băm EXTERN_ID, nhưng bạn phải băm mọi thông tin nhận dạng cá nhân, chẳng hạn như email và tên. Để biết thông tin chi tiết, hãy xem phần Băm và chuẩn hóa dữ liệu.

Bạn có thể cung cấp một số hoặc tất cả các lần khớp nhiều khóa cho một bản ghi. Để biết thông tin chi tiết, hãy xem phần khớp id bên ngoài gồm nhiều khóa.

Thêm người dùng bằng cách so khớp nhiều khóa

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

Sử dụng PAGEUID

Nếu sử dụng khóa PAGEUID, bạn cũng phải thêm danh sách ID trang. Bạn chỉ có thể gửi cho chúng tôi một PAGEUID. Đây phải là mảng chứa một thành phần.

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

Băm và chuẩn hóa dữ liệu cho nhiều khóa

Bạn phải băm dữ liệu dưới dạng SHA256. Chúng tôi không hỗ trợ các cơ chế băm khác. Đây là yêu cầu bắt buộc đối với tất cả các dữ liệu, ngoại trừ Thông tin nhận dạng bên ngoài, ID người dùng ứng dụng, ID người dùng trên trang và ID nhà quảng cáo di động.

Hãy chuẩn hóa dữ liệu trước khi băm để chúng tôi có thể xử lý dữ liệu. Chỉ có Tên (FN) và Họ (LN) hỗ trợ các ký tự đặc biệt và không thuộc bảng chữ cái Latinh. Để có kết quả khớp tốt nhất, hãy cung cấp bản dịch theo bảng chữ cái Latinh mà không có ký tự đặc biệt.

Vui lòng tải xuống file CSV này

để xem các ví dụ về dữ liệu được băm và chuẩn hóa đúng cách cho các thông số bên dưới.



Tải xuống (Nhấp chuột phải > Lưu liên kết dưới dạng)
KhóaNguyên tắc

EMAIL
tiêu chí: địa chỉ email

Phải băm
Cắt khoảng trắng ở đầu và cuối rồi chuyển đổi tất cả các ký tự thành chữ thường.

PHONE
tiêu chí: số điện thoại

Phải băm
Xóa các biểu tượng, chữ cái và bất kỳ số 0 nào ở đầu. Bạn phải thêm mã quốc gia vào đầu dãy số nếu không chỉ định trường COUNTRY.

GEN
tiêu chí: giới tính

Cần phải băm
Sử dụng các giá trị sau đây: m cho nam, f cho nữ.

DOBY
tiêu chí: năm sinh

Phải băm
Sử dụng định dạng YYYY: từ năm 1900 đến năm hiện tại.

DOBM
tiêu chí: tháng sinh

Cần phải băm
Sử dụng định dạng MM: 01 đến 12.

DOBD
tiêu chí: ngày sinh

Cần phải băm
Sử dụng định dạng DD: 01 đến 31.

LNFN
tiêu chí: họ và tên

Phải băm
Chỉ sử dụng a-z. Chỉ dùng chữ thường, không có dấu câu. Các ký tự đặc biệt ở định dạng UTF-8.

FI
tiêu chí: tên viết tắt

Cần phải băm
Chỉ sử dụng a-z. Chỉ dùng chữ thường. Các ký tự đặc biệt ở định dạng UTF-8.

ST
tiêu chí: tiểu bang của Hoa Kỳ

Cần phải băm
Sử dụng mã viết tắt ANSI gồm 2 ký tự, ở dạng chữ thường. Chuẩn hóa các tiểu bang bên ngoài Hoa Kỳ bằng chữ thường, không có dấu câu, không có ký tự đặc biệt và không có dấu cách.

CT
tiêu chí: thành phố

Cần phải băm
Chỉ sử dụng a-z. Chỉ dùng chữ thường, không có dấu câu, không có ký tự đặc biệt và không có dấu cách.

ZIP
tiêu chí: mã zip

Phải băm
Sử dụng dạng chữ thường và không có dấu cách. Đối với Hoa Kỳ, chỉ sử dụng 5 chữ số đầu tiên. Đối với Vương quốc Anh, hãy sử dụng định dạng Khu vực/Quận/Địa hạt.

COUNTRY
tiêu chí: mã quốc gia

Cần phải băm

Sử dụng mã quốc gia gồm 2 chữ cái viết thường theo tiêu chuẩn ISO 3166-1 alpha-2.

MADID
tiêu chí: ID nhà quảng cáo di động

KHÔNG cần phải băm

Sử dụng dạng chữ viết thường toàn bộ và giữ nguyên các dấu gạch nối.

Băm

Hãy cung cấp giá trị SHA256 cho các khóa đã chuẩn hóa và dạng HEX của giá trị này - sử dụng chữ thường cho các chữ cái từ A đến F. Hàm băm trong PHP sẽ chuyển đổi email và số điện thoại đã chuẩn hóa.

Ví dụKết quả

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

f1904cf1a9d73a55fa5de0ac823c4403ded71afd4c3248d00bdcd0866552bb79

hash("sha256", "15559876543")

1ef970831d7963307784fa8688e8fce101a15685d62aa765fed23f3a2c576a4e

Thông tin nhận dạng bên ngoài

Bạn có thể so khớp mọi người cho một đối tượng bằng các thông tin nhận dạng riêng của mình, còn gọi là Thông tin nhận dạng bên ngoài (EXTERN_ID). Đây có thể là bất kỳ ID duy nhất nào nhận được từ nhà quảng cáo, chẳng hạn như ID thành viên trung thành, ID người dùng và ID cookie bên ngoài.

Mặc dù không cần băm ID này, nhưng bạn phải băm mọi Thông tin nhận dạng cá nhân (PII) mà bạn gửi cùng với EXTERN_ID.

Để so khớp hiệu quả hơn, bạn cũng nên sử dụng cùng một định dạng khi gửi các ID này. Ví dụ: nếu bạn chọn băm bằng SHA256, hãy nhớ sử dụng chính giá trị đã băm này.

Bạn có thể sử dụng những ID này làm các khóa riêng lẻ để xóa mọi người khỏi Đối tượng tùy chỉnh hoặc tạo mới Đối tượng tùy chỉnh. Như vậy, bạn không cần tải lên lại bất kỳ khóa so khớp nào khác. Nếu bạn gắn thẻ ai đó bằng thông tin cá nhân đã băm và EXTERN_ID, chúng tôi sẽ ưu tiên ít hơn đối với EXTERN_ID khi khớp những thông tin đó với mọi người trên Facebook.

Khoảng thời gian lưu giữ dữ liệu đối với EXTERN_ID là 90 ngày.

Bạn có thể sử dụng lại quy trình đối ghép EXTERN_ID để xây dựng đối tượng tùy chỉnh từ file khách hàng trong một tài khoản quảng cáo.

Nếu bạn có một đối tượng gồm các trường EXTERN_ID trong tài khoản quảng cáo của mình, hãy tạo một đối tượng mới chỉ bằng các thông tin nhận dạng sau đây.

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

Bạn cũng có thể thêm những người được gắn thẻ EXTERN_ID và thêm bằng cách so khớp nhiều khóa.

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

Chúng tôi hỗ trợ các thông số EXTERN_ID cho từng tài khoản quảng cáo. Chúng tôi không thể sử dụng các giá trị từ một tài khoản quảng cáo cho bất kỳ tài khoản quảng cáo nào khác, ngay cả khi các tài khoản đó thuộc cùng một thực thể.

API Thay thế người dùng

Với điểm cuối /<CUSTOM_AUDIENCE_ID>/usersreplace, bạn có thể thực hiện 2 hành động chỉ với 1 lệnh gọi API, đó là:

  • Xóa hoàn toàn những người dùng hiện có khỏi một đối tượng cụ thể
  • Thay thế những người dùng đó bằng nhóm người dùng mới.

Với điểm cuối /<CUSTOM_AUDIENCE_ID>/usersreplace, bạn có thể tự động xóa tất cả người dùng hiện có thay vì phải tải lên danh sách người dùng mà bạn muốn xóa. Điểm cuối này không đặt lại giai đoạn máy học của nhóm quảng cáo khi một đối tượng thuộc nhóm quảng cáo đang hoạt động khác với lệnh gọi API POST hoặc DELETE đến điểm cuối /<CUSTOM_AUDIENCE_ID>/users.

API Thay thế người dùng chỉ hoạt động với các đối tượng đáp ứng những yêu cầu sau đây:

  • Số lượng người dùng hiện có trước khi chạy quy trình thay thế phải nhỏ hơn 100 triệu. Nếu đối tượng của bạn lớn hơn 100 triệu, bạn nên tận dụng điểm cuối /<CUSTOM_AUDIENCE_ID>/users để thêm và xóa người dùng.
  • Loại phụ phải được đặt thành CUSTOM.
  • Bạn không thể thay thế đối tượng tùy chỉnh theo giá trị từ file khách hàng bằng một đối tượng tùy chỉnh không theo giá trị từ file khách hàng hoặc ngược lại.

Bắt đầu

Trước khi bắt đầu quy trình thay thế, bạn nên:

  • Đảm bảo operation_status của đối tượng là Normal.

Bạn không thể thực hiện thao tác thay thế nếu đã có một thao tác đang diễn ra.

  • Không được thêm hoặc xóa người dùng thông qua /<CUSTOM_AUDIENCE_ID>/users trong khi một thao tác thay thế đang diễn ra thông qua /<CUSTOM_AUDIENCE_ID>/usersreplace. Nếu cố thực hiện một thao tác thay thế thứ hai trước khi hoàn tất thao tác đầu tiên, bạn sẽ nhận được thông báo cho biết thao tác thay thế đang diễn ra.

  • Khoảng thời gian tối đa của 1 phiên thay thế là 90 phút. API này sẽ từ chối mọi lô tải lên của một phiên nhận được sau 90 phút kể từ khi phiên đó bắt đầu. Nếu cần gửi các lô trong khoảng thời gian lâu hơn 90 phút, bạn nên đợi cho đến khi thao tác thay thế của phiên đó hoàn tất, sau đó dùng thao tác thêm của điểm cuối /<CUSTOM_AUDIENCE>/users cho các quá trình tải lên còn lại.

  • Sau khi đối tượng đã sẵn sàng, hãy chỉ định danh sách những người dùng bạn muốn thay thế bằng đối tượng tùy chỉnh thông qua lệnh gọi POST đến /<CUSTOM_AUDIENCE_ID>/usersreplace.

    • Sau khi bạn bắt đầu quá trình thay thế, operation_status của đối tượng sẽ chuyển thành replace_in_progress.
    • Nếu thao tác thay thế của bạn chưa hoàn tất, operation_status của đối tượng sẽ chuyển thành replace_error.

Các thông số trong lệnh gọi

Bạn có thể đưa các thông số sau vào lệnh gọi POST đến /<CUSTOM_AUDIENCE_ID>/usersreplace:

TênMô tả

session

Loại: đối tượng JSON

Bắt buộc.

Dùng để theo dõi xem lô người dùng cụ thể đã được tải lên hay chưa. Phải bao gồm ID phiên và thông tin lô. Hãy xem phần Trường thông tin phiên.


Bạn có thể thêm tối đa 10.000 người vào đối tượng tại một thời điểm cụ thể. Nếu bạn có hơn 10.000 người, hãy tách phiên thành nhiều lô, tất cả phải có cùng 1 ID phiên.


Ví dụ:

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

payload

Loại: đối tượng JSON

Bắt buộc.

Dùng để cung cấp thông tin mà bạn muốn tải lên đối tượng của mình. Phải bao gồm lược đồ và dữ liệu - xem phần Trường thông tin phần tải dữ liệu để biết thêm thông tin.


Ví dụ:

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

Trường thông tin phiên

TênMô tả

session_id

Loại: số nguyên 64 bit

Bắt buộc.

Dùng để theo dõi phiên tải lên. Bạn phải tạo số nhận dạng này và trong cùng một tài khoản quảng cáo, số đó phải là duy nhất.

batch_seq

Loại: số nguyên

Bắt buộc. Phải bắt đầu bằng 1.
Phiên thay thế mới bắt đầu khi chúng tôi nhận được batch_seq1. Vì vậy, bạn không nên gửi các lô trùng lặp có thứ tự là 1 cho session_id cụ thể.
Bạn phải gắn nhãn lô đầu tiên, các lô còn lại của một phiên có thể có nhãn trùng lặp hoặc số bất kỳ, ngoại trừ 1 vì chúng tôi sử dụng thông số này để xác định phần đầu của phiên. Tất cả các lô không phải lô đầu tiên của phiên phải được gửi sau lô đầu tiên. Hãy xem lô đầu tiên là bước kích hoạt/bước chuẩn bị cho thao tác thay thế.

last_batch_flag

Loại: boolean

Không bắt buộc.

Cho biết mọi lô của phiên Thay thế đang diễn ra đã được cung cấp. Khi bạn đặt thành true, hệ thống sẽ không chấp nhận thêm lô nào khác cho phiên đó. Nếu bạn không đặt cờ này, phiên sẽ tự động chấm dứt sau 90 phút kể từ khi nhận được lô đầu tiên. Bất kỳ lô nào nhận được sau 90 phút đều sẽ bị bỏ.

estimated_num_total

Loại: số nguyên

Không bắt buộc.

Tổng số người dùng ước tính sẽ được tải lên trong phiên này. Hệ thống sử dụng trường này để cải thiện khả năng xử lý của phiên tải lên.

Trường thông tin phần tải dữ liệu

TênMô tả

schema

Loại: chuỗi hoặc JSON_Array_of_string

Bắt buộc.

Chỉ định loại thông tin bạn sẽ cung cấp. Đây có thể là một hoặc nhiều khóa trong danh sách sau đây:

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

data

Loại: JSON_Array

Bắt buộc.

Danh sách dữ liệu tương ứng với lược đồ.


Ví dụ:

  • Nếu lược đồ là "EMAIL", dữ liệu phải là danh sách email được băm bằng phương thức sha256.
  • Nếu lược đồ là danh sách hàm băm như trong ví dụ trước đó, dữ liệu phải là "phone_hash_value", "LN_FN_ZIP_DOBYM".

Sau khi gửi yêu cầu POST, bạn sẽ nhận được phản hồi có các trường sau đây:

TênMô tả

account_id

Loại: số nguyên

Thông tin nhận dạng tài khoản.

session_id

Loại: số nguyên

ID phiên mà bạn đã cung cấp trước đó.

num_received

Loại: số nguyên

Tổng số người dùng nhận được trong phiên này tính đến thời điểm hiện tại.

num_invalid_entries

Loại: số nguyên

Tổng số người dùng có định dạng không hợp lệ hoặc không thể giải mã được. Nếu số này khác 0, hãy kiểm tra lại dữ liệu của bạn.

invalid_entry_samples Loại: Mảng chuỗi JSON

Tối đa 100 mẫu gồm các mục không hợp lệ trong yêu cầu hiện tại. Hãy kiểm tra lại dữ liệu của bạn.

Lỗi thường gặp về API Thay thế

Tất cả lỗi mà điểm cuối Thay thế trả về đều có mã lỗi 2650. Dưới đây là mã phụ của một số lỗi thường gặp nhất được trả về, cũng như hướng dẫn cách khắc phục.

Mã phụ của lỗiMô tảViệc cần làm

1870145

Đang cập nhật đối tượng

Bạn không thể thay thế đối tượng tùy chỉnh từ danh sách khách hàng đang trong quá trình cập nhật. Hãy chờ đến khi trạng thái đối tượng chuyển thành "Bình thường" rồi thử lại.

1870158

Phiên thay thế đã hết thời gian chờ

Bạn đã đạt đến giới hạn thời gian 90 phút cho phiên thay thế theo lô. Đối tượng tùy chỉnh từ danh sách khách hàng sẽ được thay thế bằng dữ liệu bạn đã tải lên cho đến thời điểm này. Để thêm dữ liệu khác vào đối tượng tùy chỉnh, hãy chờ đến khi quy trình thay thế kết thúc, rồi sử dụng thao tác ADD.

1870147

Lô tải lên không hợp lệ cho quy trình thay thế

Không phát hiện thấy batch_seq đầu tiên. Bạn phải bắt đầu batch_seq bằng số nguyên 1.

1870159

Phiên thay thế đã hoàn tất

Thao tác thay thế này đã hoàn tất do bạn đã tải lên một lô có last_batch_flag==true. Để thêm lô khác vào đối tượng tùy chỉnh, hãy chờ đến khi quy trình thay thế kết thúc, rồi sử dụng thao tác ADD.

1870148

Đã xảy ra lỗi

Danh sách khách hàng của bạn chưa được cập nhật đầy đủ. Nếu quy mô đối tượng của bạn khác nhiều so với dự kiến, hãy cân nhắc thử lại.

1870144

Không hỗ trợ quy mô DFCA cho quy trình thay thế

Bạn không thể thay thế đối tượng khách hàng từ danh sách khách hàng có quy mô từ 100 triệu trở lên.

Thông tin và nguồn lực

Bạn có thể tạo và nhắm mục tiêu hoặc chia sẻ các loại đối tượng khác sau đây: