Với quảng cáo danh mục Advantage+, bạn có thể hiển thị quảng cáo cho mọi người dựa trên ý định mua hàng của họ trên nhiều thiết bị. Bạn có thể thu thập tín hiệu về ý định của người dùng từ các ứng dụng di động và trang web, sau đó dùng dữ liệu này để tạo đối tượng nhằm nhắm mục tiêu đến khách hàng tiềm năng.
Tài liệu này đề cập đến cách:
Để thu thập tín hiệu của người dùng, bạn cần dùng Sự kiện trong ứng dụng (đối với ứng dụng di động) hoặc Meta Pixel (đối với trang web).
Nếu có một ứng dụng và hiện chỉ chạy quảng cáo trên máy tính, bạn vẫn nên cài đặt Facebook SDK. Nhờ vậy, bạn có thể thu thập tín hiệu và mở rộng đối tượng mục tiêu của mình.
Bạn phải thêm những sự kiện sau đây vào ứng dụng của mình thông qua Facebook SDK dành cho iOS và Android:
Sự kiện | Sự kiện trên iOS | Sự kiện trên Android |
---|---|---|
Tìm kiếm |
|
|
Xem nội dung |
|
|
Thêm vào giỏ hàng |
|
|
Mua hàng | // Gửi thông qua logPurchase |
|
Tất cả những sự kiện này phải bao gồm content_id
(hoặc mảng content_id
ở định dạng JSON).
Khác với Meta Pixel, Sự kiện trong ứng dụng không có thông số product_catalog_id
. Do đó, bạn phải tạo liên kết giữa danh mục và ứng dụng của mình bằng điểm cuối external_event_sources
như mô tả bên dưới.
Sự kiện Thêm vào giỏ hàng trên iOS:
[[FBSDKAppEvents shared] logEvent:FBSDKAppEventNameAddedToCart valueToSum:54.23 parameters:@{ FBSDKAppEventParameterNameCurrency : @"USD", FBSDKAppEventParameterNameContentType : @"product", FBSDKAppEventParameterNameContentID : @"123456789" } ];
Sự kiện Mua hàng trên iOS có 2 mặt hàng khác nhau được mua kèm theo số lượng:
[[FBSDKAppEvents shared] logPurchase:21.97 currency:@"USD" parameters:@{ FBSDKAppEventParameterNameContent : @"[{\"id\":\"1234\",\"quantity\":2},{\"id\":\"5678\",\"quantity\":1}]", FBSDKAppEventParameterNameContentType : @"product" } ];
Sự kiện Mua hàng trên Android có 2 mặt hàng khác nhau được mua kèm theo số lượng:
Bundle parameters = new Bundle(); parameters.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "USD"); parameters.putString(AppEventsConstants.EVENT_PARAM_CONTENT_TYPE, "product"); parameters.putString(AppEventsConstants.EVENT_PARAM_CONTENT, "[{\"id\":\"1234\",\"quantity\":2},{\"id\":\"5678\",\"quantity\":1}]"); logger.logEvent( AppEventsConstants.EVENT_NAME_PURCHASED, 21.97, parameters );
Sự kiện Mua hàng trên Android có 2 mặt hàng được mua:
Bundle parameters = new Bundle(); parameters.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "USD"); parameters.putString(AppEventsConstants.EVENT_PARAM_CONTENT_TYPE, "product"); parameters.putString(AppEventsConstants.EVENT_PARAM_CONTENT_ID, "[\"1234\",\"5678\"]"); logger.logEvent( AppEventsConstants.EVENT_NAME_PURCHASED, 21.97, parameters );
Lưu ý rằng bạn có thể dùng CONTENT_ID
hoặc CONTENT
với quảng cáo danh mục Advantage+ để báo cáo ID sản phẩm. Với thông số CONTENT
, bạn có thể cung cấp thêm thông tin về các sản phẩm.
Để sử dụng quảng cáo danh mục Advantage+ với một đối tác đo lường di động (MMP), bạn phải kích hoạt các sự kiện bắt buộc riêng biệt khi ai đó dùng ứng dụng của bạn. Những điểm tương tác chính mà bạn nên theo dõi là khi ai đó tìm kiếm sản phẩm, xem sản phẩm, thêm sản phẩm nào đó vào giỏ hàng và mua hàng. Bạn phải chọn các sự kiện tại MMP của mình tương ứng với những sự kiện tiêu chuẩn sau đây trong quảng cáo danh mục Advantage+:
Tên | Mô tả |
---|---|
| Ai đó tìm kiếm sản phẩm |
| Khi một tài khoản trong Trung tâm tài khoản xem sản phẩm |
| Ai đó thêm một mặt hàng vào giỏ hàng |
| Một tài khoản trong Trung tâm tài khoản mua một hoặc nhiều mặt hàng |
Ngoài ra, bạn cần có 2 thông số bổ sung cho mỗi sự kiện để đăng ký thành công dưới dạng sự kiện hợp lệ trong quảng cáo danh mục Advantage+. 2 thông số này biểu thị ID của mặt hàng đang được xem/thêm vào giỏ hàng/mua và cho biết liệu ID đó là ID của sản phẩm hay của nhóm sản phẩm. Dưới đây là các thông số bổ sung hiện có:
Tên | Mô tả |
---|---|
chuỗi | Bắt buộc phải có |
chuỗi | Bắt buộc phải có Bắt buộc phải có trường |
chuỗi | Không bắt buộc. Nếu không có Hãy xem phần "Chọn đúng |
chuỗi | Không bắt buộc. |
chuỗi | Không bắt buộc. |
Lưu ý: Bạn nên gửi các thông số _valueToSum
và fb_currency
khi một giao dịch mua hàng được thực hiện.
Nếu có thể, bạn phải thêm những sự kiện sau đây vào trang web của mình:
Search
ViewCategory
ViewContent
AddToCart
Purchase
Bạn phải gửi các sự kiện này cùng với những thông số dữ liệu sau đây:
Tên | Mô tả |
---|---|
chuỗi hoặc chuỗi[] | Bắt buộc phải có |
đối tượng[] | Bắt buộc phải có Bắt buộc phải có trường |
chuỗi | Không bắt buộc. Nếu không có Hãy xem phần "Chọn đúng |
chuỗi | Không bắt buộc. |
Dưới đây là ví dụ minh họa sự kiện tiêu chuẩn Search
. Bạn nên cung cấp từ 5 đến 10 mặt hàng trong content_ids
dựa trên những kết quả tìm kiếm hàng đầu của mình.
<!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); // Insert Your Facebook Pixel ID below. fbq('init', '<FB_PIXEL_ID>'); fbq('track', 'PageView'); fbq('track', 'Search', { search_string: 'leather sandals', content_ids: ['1234', '2424', '1318', '6832'], // top 5-10 search results content_type: 'product' }); </script> <!-- End Facebook Pixel Code -->
Dưới đây là ví dụ minh họa sự kiện ViewCategory
. Bạn nên cung cấp từ 5 đến 10 mặt hàng trong content_ids
dựa trên những kết quả hàng đầu của mình. Lưu ý rằng ViewCategory
không phải là sự kiện tiêu chuẩn nên hàm trackCustom
sẽ được sử dụng.
<!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); // Insert Your Facebook Pixel ID below. fbq('init', '<FB_PIXEL_ID>'); fbq('track', 'PageView'); fbq('trackCustom', 'ViewCategory', { content_name: 'Really Fast Running Shoes', content_category: 'Apparel & Accessories > Shoes', content_ids: ['1234', '2424', '1318', '6832'], // top 5-10 results content_type: 'product' }); </script> <!-- End Facebook Pixel Code -->
Dưới đây là ví dụ minh họa sự kiện tiêu chuẩn ViewContent
. Hãy xem phần Meta Pixel để biết thêm chi tiết về cách thiết lập Pixel.
<!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); // Insert Your Facebook Pixel ID below. fbq('init', '<FB_PIXEL_ID>'); fbq('track', 'PageView'); fbq('track', 'ViewContent', { content_ids: ['1234'], content_type: 'product', value: 0.50, currency: 'USD' }); </script> <!-- End Facebook Pixel Code -->
Sự kiện tiêu chuẩn AddToCart
phụ thuộc vào cách nền tảng thương mại điện tử của bạn xử lý quá trình thêm mặt hàng vào giỏ hàng. Nếu quá trình đó diễn ra tự động, sự kiện này sẽ được đặt trong trình xử lý sự kiện onclick
để hệ thống kích hoạt sự kiện này khi có người nhấp vào nút. Nếu quá trình đó tải một trang riêng biệt, sự kiện Pixel có thể được kích hoạt như bình thường.
<!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); // Insert Your Facebook Pixel ID below. fbq('init', '<FB_PIXEL_ID>'); fbq('track', 'PageView'); // If you have a separate add to cart page that is loaded. fbq('track', 'AddToCart', { content_ids: ['1234', '1853', '9386'], content_type: 'product', value: 3.50, currency: 'USD' }); </script> <!-- End Facebook Pixel Code -->
Nếu sự kiện này cần được kích hoạt khi có người nhấp vào nút và không tải trang riêng biệt nào:
<!-- The below method uses jQuery, but that is not required --> <button id="addToCartButton">Add To Cart</button> <!-- Add event to the button's click handler --> <script type="text/javascript"> $( '#addToCartButton' ).click(function() { fbq('track', 'AddToCart', { content_ids: ['1234'], content_type: 'product', value: 2.99, currency: 'USD' }); }); </script>
Sự kiện tiêu chuẩn Purchase
có 2 mặt hàng kèm theo số lượng:
<!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); // Insert Your Facebook Pixel ID below. fbq('init', '<FB_PIXEL_ID>'); fbq('track', 'PageView'); fbq('track', 'Purchase', { contents: [ {'id': '1234', 'quantity': 2}, {'id': '4642', 'quantity': 1} ], content_type: 'product', value: 21.97, currency: 'USD' }); </script> <!-- End Facebook Pixel Code -->
Sự kiện tiêu chuẩn Purchase
có 2 mặt hàng:
<!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); // Insert Your Facebook Pixel ID below. fbq('init', '<FB_PIXEL_ID>'); fbq('track', 'PageView'); fbq('track', 'Purchase', { content_ids: ['1234', '4642'], content_type: 'product', value: 21.97, currency: 'USD' }); </script> <!-- End Facebook Pixel Code -->
content_type
Lưu ý:fb_content_type
là loại nội dung dành cho di động.
Nếu nội dung của trang là về một SKU cụ thể (kích thước, màu sắc nào đó, v.v.), hãy sử dụng product
cho content_type
và chuyển ID sản phẩm (tức là cột id
trong Nguồn cấp dữ liệu sản phẩm) qua content_ids
. Tất cả sự kiện AddToCart
và Purchase
đều phải sử dụng content_type=product
vì mọi người sẽ mua các sản phẩm cụ thể. Mọi người sẽ không mua một chiếc áo sơ mi chung chung, không có kích cỡ và màu sắc rõ ràng; họ sẽ mua một chiếc áo sơ mi cụ thể, có kích cỡ và màu sắc riêng.
Nếu nội dung trang là về một nhóm sản phẩm liên quan khác nhau về kích thước, màu sắc, v.v. nhưng thuộc cùng một nhóm sản phẩm, hãy sử dụng product_group
và chuyển ID nhóm sản phẩm (tức là cột item_group_id
trong Nguồn cấp dữ liệu sản phẩm) qua content_ids
. Một trường hợp sử dụng phổ biến là trang ViewContent
, trong đó người dùng chưa chọn kích thước. Không sử dụngproduct_group
với AddToCart
hoặc Purchase
.
Điều quan trọng là content_type
phải khớp với loại ID có trong thông số content_ids
hoặc contents
.
Việc chuyển các ID sản phẩm cụ thể (content_type=product
) sẽ giúp Meta biết người dùng đã thể hiện sự quan tâm đến mẫu mã cụ thể nào (kích thước, màu sắc, v.v.), từ đó có thể đề xuất các sản phẩm phù hợp hơn. Chúng tôi sẽ luôn hiển thị sản phẩm (chứ không phải nhóm sản phẩm), ngay cả khi content_type=product_group
.
Nếu không có content_type
nào được cung cấp, Meta sẽ khớp sự kiện với mọi mặt hàng có cùng ID, bất kể loại ID. Bạn nên gửi content_type
, vì nhờ đó bạn có thể kiểm soát tốt hơn ID cụ thể mà mình muốn so khớp với sự kiện.
Bạn cần liên kết các nguồn sự kiện với từng danh mục sản phẩm để Facebook có thể tải dữ liệu này và hiển thị đúng sản phẩm trong quảng cáo. Để thực hiện việc này, bạn có thể truy cập vào Trang danh mục của Trình quản lý kinh doanh rồi nhấp vào nút Liên kết nguồn sự kiện. Hãy nhớ chọn ứng dụng và Pixel sẽ nhận các sự kiện trong quảng cáo danh mục Advantage+.
Ngoài ra, bạn có thể thực hiện lệnh gọi API HTTP POST
với danh sách gồm các nguồn sự kiện bên ngoài dưới dạng thông số chuỗi truy vấn được mã hóa UTF-8:
use FacebookAds\Object\ProductCatalog;
$product_catalog = new ProductCatalog(<PRODUCT_CATALOG_ID>);
$product_catalog->createExternalEventSource(array(), array(
'external_event_sources' => array(
<PIXEL_ID>,
<APP_ID>,
),
));
from facebookads.adobjects.productcatalog import ProductCatalog
product_catalog = ProductCatalog(<PRODUCT_CATALOG_ID>)
product_catalog.add_external_event_sources([
<PIXEL_ID>,
<APP_ID>,
])
curl \
-F 'external_event_sources=["<PIXEL_ID>","<APP_ID>"]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<PRODUCT_CATALOG_ID>/external_event_sources
Lưu ý: Bạn cần có các quyền đối với danh mục, Pixel và ứng dụng cũng như doanh nghiệp.
Tên | Mô tả |
---|---|
| Bắt buộc. |
Bước tiếp theo là tạo đối tượng của sản phẩm dựa vào hoạt động trên trang web và các ứng dụng di động của bạn. Bạn có thể chọn sự kiện sẽ sử dụng và nhắm mục tiêu quảng cáo bằng đối tượng của sản phẩm.
Đối với các sự kiện tiêu chuẩn trong ứng dụng, đối tượng sẽ được tổng hợp theo tên sự kiện Pixel trong quảng cáo:
Search
ViewContent
AddToCart
Purchase
Hãy sử dụng các tên sự kiện nêu trên trong quy tắc đối tượng của bạn, ngay cả khi đối tượng đó bao gồm người dùng trên Android và iOS.
Để tạo đối tượng của sản phẩm, hãy thực hiện lệnh gọi API POST
đến điểm cuối /act_{ad-account-id}/product_audiences
.
https://graph.facebook.com/v21.0
/act_AD_ACCOUNT_ID/product_audiences
Tên | Mô tả |
---|---|
chuỗi | Bắt buộc. |
chuỗi | Không bắt buộc. |
chuỗi số | Bắt buộc. Nhóm sản phẩm cần nhắm mục tiêu bằng đối tượng này. |
Đối tượng JSON | Bắt buộc. |
số nguyên | Bắt buộc. |
đối tượng[] | Bắt buộc. |
Đối tượng JSON | Không bắt buộc. |
số nguyên | Bắt buộc, nếu bạn chỉ định trường hợp loại trừ. |
đối tượng[] | Bắt buộc, nếu bạn chỉ định trường hợp loại trừ. |
Mỗi quy tắc phải thêm event
bằng toán tử eq
dưới dạng quy tắc ở cấp độ cao nhất hoặc dưới dạng một phần của quy tắc and
ở cấp độ cao nhất.
Nếu cả trường hợp bao gồm lẫn trường hợp loại trừ đều sử dụng cùng một event
, bất kỳ lần kiểm tra thông số bổ sung nào cũng phải giống hệt nhau.
Để tạo một đối tượng nhắm mục tiêu đến những người đã xem hoặc thêm sản phẩm vào giỏ hàng nhưng chưa mua:
curl -X POST \
-F 'name="Test Product Audience"' \
-F 'product_set_id="<PRODUCT_SET_ID>"' \
-F 'inclusions=[
{
"retention_seconds": 86400,
"rule": {
"event": {
"eq": "AddToCart"
}
}
},
{
"retention_seconds": 72000,
"rule": {
"event": {
"eq": "ViewContent"
}
}
}
]' \
-F 'exclusions=[
{
"retention_seconds": 172800,
"rule": {
"event": {
"eq": "Purchase"
}
}
}
]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/product_audiences
Nếu bạn muốn nhắm mục tiêu đến những người đã xem sản phẩm trên web bằng iPhone nhưng chưa mua trên bất kỳ thiết bị nào, hãy tạo đối tượng như bên dưới.
Ví dụ sau đây giả sử rằng bạn thêm thông số userAgent
vào Meta Pixel của mình.
curl -X POST \
-F 'name="Test Iphone Product Audience"' \
-F 'product_set_id="<PRODUCT_SET_ID>"' \
-F 'inclusions=[
{
"retention_seconds": 86400,
"rule": {
"and": [
{
"event": {
"eq": "AddToCart"
}
},
{
"userAgent": {
"i_contains": "iPhone"
}
}
]
}
}
]' \
-F 'exclusions=[
{
"retention_seconds": 172800,
"rule": {
"event": {
"eq": "Purchase"
}
}
}
]' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/product_audiences
Sau khi tạo đối tượng của sản phẩm, bạn có thể truy xuất đối tượng này bằng API Đối tượng tùy chỉnh. Bạn có thể lấy các thông số ban đầu được dùng để tạo đối tượng bằng thông số data_source
.
Đối tượng của sản phẩm là một loại đối tượng tùy chỉnh cụ thể được tạo động từ các sự kiện sản phẩm. Điểm cuối act_{ad-account-id}/product_audiences
là một điểm cuối POST
đặc biệt dùng để tạo các đối tượng này.
Cách truy xuất Đối tượng tùy chỉnh:
curl -X GET \
-d 'fields="data_source,subtype"' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/act_<AD_ACCOUNT_ID>/customaudiences
Cách truy xuất đối tượng cụ thể của sản phẩm:
use FacebookAds\Object\ProductAudience;
$product_audience = new ProductAudience(<PRODUCT_AUDIENCE_ID>);
$product_audience->read();
from facebookads.objects import ProductAudience
product_audience = ProductAudience(<PRODUCT_AUDIENCE_ID>)
product_audience.remote_read()
CustomAudience customAudience2 = new CustomAudience(<PRODUCT_AUDIENCE_ID>, context).get()
.execute();
curl -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<PRODUCT_AUDIENCE_ID>