Thiết lập danh mục

Để thiết lập Quảng cáo động, bạn sẽ cần danh mục, các nguồn cấp danh mục và bộ sản phẩm.

Danh mục của bạn là một tệp dữ liệu có cấu trúc chứa danh sách các mặt hàng mà bạn muốn quảng cáo. Mỗi dòng đều chứa tất cả thông tin cần thiết để tạo Quảng cáo động. Nguồn cấp sản phẩm là quá trình tải dữ liệu lên tự động để luôn cập nhật danh mục sản phẩm của bạn.

Trong tài liệu này, chúng tôi sẽ hướng dẫn bạn cách thiết lập danh mục, bao gồm:

Ngoài ra, hãy xem cách Bắt đầu với quảng cáo độngThiết lập quảng cáo động qua giao diện người dùng.

Bước 1: Tạo danh mục

Cách tạo danh mục cho Quảng cáo động:

use FacebookAds\Object\ProductCatalog;
use FacebookAds\Object\Fields\ProductCatalogFields;

$product_catalog = new ProductCatalog(null, <BUSINESS_ID>);

$product_catalog->setData(array(
  ProductCatalogFields::NAME => "Catalog",
));

$product_catalog->create();
from facebookads.adobjects.productcatalog import ProductCatalog

product_catalog = ProductCatalog(parent_id=<BUSINESS_ID>)

product_catalog[ProductCatalog.Field.name] = 'Catalog'

product_catalog.remote_create()
ProductCatalog catalog = new Business(<BUSINESS_ID>, context).createProductCatalog()
  .setName("Catalog")
  .execute();
String catalog_id = catalog.getId();
curl \
  -F 'name=Catalog' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<BUSINESS_ID>/product_catalogs

Để sử dụng API Danh mục, bạn cần có Mức truy cập ở cấp API Tiếp thị phù hợp và phải đồng ý với các Điều khoản dịch vụ bằng cách tạo danh mục đầu tiên thông qua Trình quản lý doanh nghiệp. Hãy xem Tài liệu tham khảo về danh mục.

Bước 2: Thiết lập nguồn cấp

Đây là nhóm các mặt hàng được tải lên hoặc tìm nạp của một doanh nghiệp, do đó danh mục sản phẩm của bạn luôn cập nhật. Một mục sản phẩm là một mặt hàng trong cửa hàng trực tuyến của bạn, chẳng hạn như một SKU. Bạn có thể có một nguồn cấp sản phẩm đại diện cho tất cả các sản phẩm trong danh mục hoặc nhiều nguồn cấp sản phẩm với mỗi nguồn cấp đại diện cho một quốc gia hay sản phẩm của một phòng ban. Hãy xem Tài liệu tham khảo về nguồn cấpTài liệu tham khảo về mặt hàng.

Sau khi bạn tạo một danh mục sản phẩm, hãy sử dụng catalog id để tạo và lên lịch Nguồn cấp sản phẩm:

use FacebookAds\Object\ProductFeed;
use FacebookAds\Object\Fields\ProductFeedFields;
use FacebookAds\Object\Fields\ProductFeedScheduleFields;

$product_feed = new ProductFeed(null, <PRODUCT_CATALOG_ID>);

$product_feed->setData(array(
  ProductFeedFields::NAME => 'Test Feed',
  ProductFeedFields::SCHEDULE => array(
    ProductFeedScheduleFields::INTERVAL => 'DAILY',
    ProductFeedScheduleFields::URL =>'http://www.example.com/sample_feed.tsv',
    ProductFeedScheduleFields::HOUR => 22,
  ),
));

$product_feed->create();
from facebookads.adobjects.productfeed import ProductFeed

product_feed = ProductFeed(parent_id=<PRODUCT_CATALOG_ID>)

product_feed[ProductFeed.Field.name] = 'Test Feed'
product_feed[ProductFeed.Field.schedule] = {
    'interval': 'DAILY',
    'url': 'http://www.example.com/sample_feed.tsv',
    'hour': 22,
}

product_feed.remote_create()
ProductFeed productFeed = new ProductCatalog(<PRODUCT_CATALOG_ID>, context).createProductFeed()
  .setName("Test Feed")
  .setSchedule("{\"interval\":\"DAILY\",\"url\":\"http://www.example.com/sample_feed.tsv\",\"hour\":\"22\"}")
  .execute();
String product_feed_id = productFeed.getId();
curl \
  -F 'name=Test Feed' \
  -F 'schedule={ 
    "interval": "DAILY", 
    "url": "http:\/\/www.example.com\/sample_feed.tsv", 
    "hour": 22 
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<PRODUCT_CATALOG_ID>/product_feeds

Các định dạng được hỗ trợ

Hãy cung cấp nguồn cấp sản phẩm ở một trong các định dạng sau:

Định dạng nguồn cấp Mô tả Nguồn cấp mẫu

CSV

Giá trị được phân tách bằng dấu phẩy. Hàng đầu tiên là tiêu đề cột. Hãy đưa các trường có chứa dấu phẩy vào "ngoặc kép"

Tải xuống (nhấp chuột phải và lưu liên kết dưới dạng)

TSV

Các giá trị được phân tách bằng tab. Hàng đầu tiên là tiêu đề cột. Hãy đưa các trường có chứa dấu phẩy vào "ngoặc kép"

Tải xuống (nhấp chuột phải và lưu liên kết dưới dạng)

RSS XML

Định dạng thường được tạo bởi các máy chủ web và hệ thống cung cấp nguồn cấp tự động. Một nhóm nút XML của mặt hàng đại diện cho một danh sách sản phẩm và phải bắt đầu bằng thẻ khai báo <?xml.

Tải xuống (nhấp chuột phải và lưu liên kết dưới dạng)

XML ATOM

Định dạng thường được tạo bởi các máy chủ web và hệ thống cung cấp nguồn cấp tự động. Một nhóm nút XML của mặt hàng đại diện cho một danh sách sản phẩm và phải bắt đầu bằng thẻ khai báo <?xml.

Tải xuống (nhấp chuột phải và lưu liên kết dưới dạng)

Các trường bắt buộc

Hãy cung cấp tất cả các tên cột bằng tiếng Anh.

Tên Loại Mô tả

id


Kích thước tối đa: 100

String

ID duy nhất của mặt hàng. Đây có thể là một mẫu mã của sản phẩm. Nếu có nhiều bản sao của cùng một ID, chúng tôi sẽ bỏ qua tất cả các bản sao. Trường này ánh xạ tới retailer_id sau khi sản phẩm được nhập.

availability

String

Liệu mặt hàng có còn hàng hay không. Các giá trị được chấp nhận là:


in stock - Giao hàng ngay lập tức.


out of stock - Không có kế hoạch lấy thêm hàng.


preorder- Sẽ có trong tương lai.


available for order - Giao hàng sau 1-2 tuần.


discontinued - Hàng ngừng bán


condition

string

Tình trạng hàng: new, refurbished hoặc used

description


Kích thước tối đa: 5000

string

Đoạn văn bản ngắn mô tả về sản phẩm.

image_link


string

Liên kết tới hình ảnh của mặt hàng được sử dụng trong quảng cáo. Định dạng quay vòng sử dụng các hình ảnh vuông có tỷ lệ khung hình 1:1 (600x600px) trong khi quảng cáo một sản phẩm sử dụng hình ảnh có tỷ lệ khung hình 1,91:1 (1200x630px). Hãy cung cấp các hình ảnh phù hợp cho mục đích sử dụng của bạn.

link


string

Liên kết tới trang web cho phép mua hàng của người bán.

title


Kích thước tối đa: 100

string

Tên mặt hàng.

price

string

Giá của mặt hàng và đơn vị tiền tệ. Đơn vị tiền tệ phải tuân thủ mã đơn vị tiền tệ theo ISO 4217, chẳng hạn như 9.99 USD

gtin, mpn hoặc brand


Kích thước tối đa: 70

string

gtin - Mã số thương phẩm toàn cầu (GTIN) có thể bao gồm UPC, EAN, JAN và ISBN.



mpn - ID nhà sản xuất duy nhất của sản phẩm.



brand - Tên thương hiệu.



Bắt buộc phải là gtin, mpn hoặc brand.

Các trường tùy chọn, liên kết sâu của sản phẩm

Hãy cung cấp các liên kết sâu trong Nguồn cấp sản phẩm tuân theo thông số của Liên kết ứng dụng. Thông tin của liên kết sâu trong Nguồn cấp sản phẩm có mức ưu tiên cao hơn so với bất kỳ thông tin nào mà Facebook thu thập qua siêu dữ liệu của Liên kết ứng dụng bằng trình thu thập dữ liệu web của chúng tôi.

Nếu đã có thông tin của liên kết sâu từ Liên kết ứng dụng, bạn không cần phải chỉ định dữ liệu này. Facebook sử dụng thông tin từ Liên kết ứng dụng để hiển thị liên kết sâu chính xác. Để hiển thị các liên kết sâu trong quảng cáo của bạn, hãy xem nội dung về Quảng cáo động, mẫu quảng cáo.

Tên Mô tả Ví dụ

ios_url

Giao thức tùy chỉnh cho ứng dụng iOS dưới dạng URL

example-ios://electronic

ios_app_store_id

ID ứng dụng dùng cho App Store

1234

ios_app_name

Tên ứng dụng để hiển thị

Electronic Example iOS

iphone_url

Giao thức tùy chỉnh cho ứng dụng iPhone dưới dạng URL

example-iphone://electronic

iphone_app_store_id

ID ứng dụng dùng cho App Store

5678

iphone_app_name

Tên ứng dụng để hiển thị

Electronic Example iPhone

ipad_url

Giao thức tùy chỉnh cho ứng dụng iPhone

example-ipad://electronic

ipad_app_store_id

ID ứng dụng dùng cho App Store

9010

ipad_app_name

Tên ứng dụng để hiển thị

Electronic Example iPad

android_url

Giao thức tùy chỉnh cho ứng dụng Android dưới dạng URL

example-android://electronic

android_package

Tên gói hoàn toàn đủ điều kiện để tạo ý định

com.electronic

android_app_name

Tên ứng dụng để hiển thị

Electronic Example Android

windows_phone_url

Giao thức tùy chỉnh cho ứng dụng Windows Phone dưới dạng URL

example-windows://electronic

windows_phone_app_id

ID ứng dụng, dưới dạng GUID, cho cửa hàng ứng dụng

ee728e01-7727-4168-9c8f-85c7eef40112

windows_phone_app_name

Tên ứng dụng để hiển thị

Electronic Example Windows

Đối với iOS, chỉ cung cấp thông tin cho ứng dụng iPhone hoặc iPad nếu thông tin này khác với thông tin chung cho ứng dụng iOS của bạn.

Hãy sử dụng nhóm sản phẩm để nhóm tất cả các mẫu mã sản phẩm. Cung cấp nhóm sản phẩm để xác định các sản phẩm gần như giống hệt nhau, ngoại trừ các khác biệt như màu sắc, chất liệu, kích thước hoặc kiểu mẫu. Nhóm giúp quảng cáo thêm màu, kiểu hoặc mẫu của một sản phẩm cụ thể dễ dàng hơn. Tất cả các sản phẩm trong một nhóm sản phẩm có cùng item_group_id. Trong Quảng cáo động, chúng tôi chỉ chọn một mặt hàng trong nhóm đó dựa trên tín hiệu mà chúng tôi nhận được từ pixel hoặc ứng dụng.

Dưới đây là các trường tùy chọn mà bạn có thể bao gồm:

Tên Loại Kích thước tối đa

additional_image_link


Kích thước tối đa: 2000

string

Bạn có thể thêm tối đa 10 hình ảnh khác; hãy cung cấp chúng dưới dạng các URL được phân tách bằng dấu phẩy.

age_group

string

Nhóm tuổi của sản phẩm. Các giá trị được chấp nhận là newborn, infant, toddler, kidsadult.

color


Kích thước tối đa: 100

string

Màu của mặt hàng.

expiration_date

ISO‑8601 (YYYY‑MM‑DD)

Ngày hết hạn của sản phẩm. Nếu sản phẩm hết hạn, Facebook sẽ loại trừ sản phẩm đó khỏi tất cả các bộ sản phẩm và không hiển thị sản phẩm trong quảng cáo.

gender

string

Các tùy chọn bao gồm: male, femaleunisex

item_group_id

string

Dành cho các mặt hàng có các mẫu mã sản phẩm khác nhau. Hãy cung cấp cùng một item_group_id cho tất cả các mặt hàng có mẫu mã khác nhau. Ví dụ: Sơ mi Polo đỏ là một mẫu mã của Sơ mi Polo. Facebook sẽ ánh xạ id này tới retailer_product_group_id sau khi chúng tôi nhận được nguồn cấp của bạn. Trong Quảng cáo động, chúng tôi chỉ chọn một mặt hàng trong nhóm đó dựa trên tín hiệu mà chúng tôi nhận được từ pixel hoặc ứng dụng.

google_product_category


Kích thước tối đa: 250

string

Các giá trị được xác định trước theo phân loại sản phẩm của Google. Ví dụ: Apparel & Accessories > Clothing > Dresses

material


Kích thước tối đa: 200

string

Chất liệu của sản phẩm, chẳng hạn như leather, denim hoặc cotton.

pattern


Kích thước tối đa: 100

string

Kiểu hoặc hình in đồ họa trên sản phẩm.

product_type


Kích thước tối đa: 750

string

Loại do nhà bán lẻ xác định cho sản phẩm.

ví dụ: trong tệp TSV
Home & Garden > Kitchen & Dining > Appliances > Refrigerators

ví dụ: trong tệp XML <product_type>Home & Garden > Kitchen & Dining > Appliances > Refrigerators</product_type>

sale_price

string

Giá được chiết khấu nếu mặt hàng đang giảm giá. Đơn vị tiền tệ phải được chỉ định dưới dạng mã đơn vị tiền tệ theo ISO 4217. Chẳng hạn như được chỉ định là 9,99 USD

sale_price_effective_date

ISO‑8601 (YYYY‑MM‑DD)

Ngày và giờ bắt đầu/kết thúc thời gian giảm giá, được phân tách bằng dấu gạch chéo:


2014-11-01T12:00-0300/2014-12-01T00:00-0300

shipping

string

Phân thành các giá khác nhau cho từng quốc gia và khu vực. Các khu vực khác nhau được phân tách bằng dấu phẩy. Định dạng phải là COUNTRY:STATE:SHIPPING_TYPE:PRICE.

ví dụ:

US:CA:Ground:9.99 USD,US:NY:Air:15.99 USD

shipping_weight

string

Trọng lượng của mặt hàng được giao. Chúng tôi chỉ chấp nhận các đơn vị trọng lượng sau: lb, oz, g, kg. Ví dụ: 3 lbs

size

string

Kích thước của mặt hàng. Ví dụ: một chiếc áo sơ mi có thể có kích thước Small hoặc XL.

custom_label_0


Kích thước tối đa: 100

string

Thông tin tùy chọn, bổ sung về mặt hàng.

custom_label_1


Kích thước tối đa: 100

string

Thông tin tùy chọn, bổ sung về mặt hàng.

custom_label_2


Kích thước tối đa: 100

string

Thông tin tùy chọn, bổ sung về mặt hàng.

custom_label_3


Kích thước tối đa: 100

string

Thông tin tùy chọn, bổ sung về mặt hàng.

custom_label_4


Kích thước tối đa: 100

string

Thông tin tùy chọn, bổ sung về mặt hàng.

Hãy kiểm tra nguồn cấp sản phẩm của bạn thông qua trang gỡ lỗi nguồn cấp sản phẩm của chúng tôi. Đối với các tệp CSV/TSV, hãy sao chép hàng đầu tiên (hàng tiêu đề cột) và một số sản phẩm; đối với XML, hãy sao chép XML đó với một số mặt hàng/mục nhập, dán các dòng vào khu vực văn bản và xác thực.

Bước 3: Các tùy chọn cập nhật

Để giữ cho thông tin sản phẩm luôn cập nhật, bạn hãy sử dụng một trong các tùy chọn sau:

  1. Tìm nạp nguồn cấp sản phẩm theo lịch
  2. Tải nguồn cấp sản phẩm lên trực tiếp
  3. Cập nhật sản phẩm

Tìm nạp nguồn cấp sản phẩm theo lịch

Facebook tìm nạp các nguồn cấp sản phẩm từ hệ thống của bạn theo lịch mà bạn xác định. Có hai loại lịch mà bạn có thể xác định - update_scheduleschedule. Lịch tải lên đã tạo qua update_schedule sẽ tạo các mặt hàng mới hoặc dùng thông tin có trong tệp nguồn cấp để cập nhật các mặt hàng hiện có. Lịch tải lên đã tạo qua schedule sẽ làm mới hoàn chỉnh nguồn cấp của bạn - chúng tôi xóa các sản phẩm không còn trong tệp, cập nhật các sản phẩm hiện có và tạo sản phẩm mới. Bạn có thể sử dụng một trong hai hoặc cả hai lịch tùy theo nhu cầu của mình.

Ví dụ: update_schedule có tần suất là HÀNG GIỜ và schedule thay thế có tần suất là HÀNG NGÀY.

Bạn nên thiết lập update_schedule chỉ có ngày thay đổi trong tệp nguồn cấp để xử lý nguồn cấp nhanh hơn. Điều này giúp cập nhật doanh số trong ngày lễ, giá cũng như tình trạng còn hàng nhanh hơn. Bạn cũng nên đánh dấu các mục sản phẩm là "hết hàng" thay vì xóa khỏi nguồn cấp đó để Facebook có thể nhắm mục tiêu lại người dùng bằng các sản phẩm tương tự hiện có.

curl \
  -F 'name=Test Feed' \
  -F 'schedule={ 
    "interval": "DAILY", 
    "url": "http:\/\/www.example.com\/sample_feed.tsv"
  }' \
  -F 'update_schedule={ 
    "interval": "HOURLY", 
    "url": "http:\/\/www.example.com\/sample_feed_updates.tsv",
    "hour": 22
  }' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.10/<PRODUCT_CATALOG_ID>/product_feeds

Phản hồi là:

{ "id" : {PRODUCT_FEED_ID} }

Hãy xem Tài liệu tham khảo về nguồn cấp sản phẩm, Tài liệu tham khảo về lịch của nguồn cấp sản phẩm.


Tải nguồn cấp sản phẩm lên trực tiếp

Cùng với tìm nạp nguồn cấp theo lịch, bạn có thể tải lên một lần theo cách thủ công:

Ví dụ này là về tệp nguồn cấp lưu trên vị trí công khai.

curl \
-F "url=http://www.example.com/sample_feed.xml" \
-F "access_token={ACCESS_TOKEN}" \
https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/uploads

Ví dụ này là về cách tải tệp nguồn cấp ngay từ máy tính lên. Đường dẫn đến tệp cần được thay đổi theo trường hợp sử dụng của bạn.

curl \
-F "file=@catalog.csv;type=text/csv" \
-F "access_token={ACCESS_TOKEN}" \
https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/uploads

Bạn có thể tùy ý đặt update_only thành true. Chúng tôi tạo các mặt hàng mới và cập nhật những mặt hàng hiện có nhưng không xóa các mặt hàng khỏi nguồn cấp. Bạn chỉ cần cung cấp id để cập nhật các mặt hàng hiện có. Điều này giúp giảm thời gian tìm nạp và xử lý tệp của bạn.

Ví dụ: để chỉ cập nhật giá và các nhãn tùy chỉnh cho 100 mặt hàng trong nguồn cấp, hãy sử dụng tùy chọn tải lên trực tiếp. Hãy cung cấp tệp chỉ có id, pricecustom_label_0 cho các mặt hàng đó và đặt update_only thành true. Chúng tôi hỗ trợ tất cả các định dạng tệp có tên ở trên; những định dạng phổ biến nhất là TSV và CSV.

Các tệp mẫu:

Định dạng nguồn cấp Trường hợp sử dụng Nguồn cấp mẫu

CSV

Cập nhật priceavailability cho một nhóm con các mặt hàng.

Tải xuống (nhấp chuột phải và lưu liên kết dưới dạng)

TSV

Đặt lại sale_price và cập nhật custom_label_0 cho một nhóm con các mặt hàng

Tải xuống (nhấp chuột phải và lưu liên kết dưới dạng)

Hãy xem Tài liệu tham khảo về tải lên theo cách thủ công.

Nếu bạn gặp lỗi trong Nguồn cấp sản phẩm, hãy xem Tài liệu tham khảo về các lỗi khi tải lên nguồn cấp sản phẩm.


Cập nhật từng sản phẩm riêng lẻ

Hãy cập nhật dữ liệu của từng sản phẩm riêng lẻ trong thời gian thực. Bao gồm các trường được cập nhật trong lệnh HTTP POST như sau:

https://graph.facebook.com/catalog:{PRODUCT_CATALOG_ID}:{base64urlencode(retailer_id)}

Trong đó retailer_id là ID sản phẩm từ nguồn cấp sản phẩm của bạn. ID này phải được mã hóa base64url. Hãy xem các trường sản phẩm có thể thay đổi trong Tài liệu tham khảo về sản phẩm trong danh mục sản phẩm.

Không cung cấp nguồn cấp sản phẩm có các cập nhật, tạo hoặc xóa sản phẩm riêng lẻ thông qua API. Việc này có thể làm gián đoạn mọi quá trình cập nhật hoặc xóa mặt hàng mà bạn đã tạo bằng API vì chúng tôi không theo dõi những dữ liệu này với nguồn cấp đó.

Ngoài ra, hãy xem: * Tài liệu tham khảo về tìm nạp nguồn cấp theo lịch * Tài liệu tham khảo về tải lên trực tiếp * Tài liệu tham khảo về nguồn cấp sản phẩm * Nguồn cấp sản phẩm trong danh mục * Tài liệu tham khảo về mục sản phẩm * Tìm kiếm sản phẩm trong danh mục

Tải lên hàng loạt đối với các danh mục lớn

Tùy chọn tải lên các danh mục rất lớn với hàng triệu sản phẩm và tình trạng hàng trong kho thay đổi nhanh chóng. Bạn có thể tạo, cập nhật và xóa nhiều sản phẩm trong một yêu cầu HTTP. API này có hai điểm cuối, đó là:

  • POST [/{product_catalog_id}/batch](#send-batch-request) - Gửi một loạt các yêu cầu tạo, cập nhật, xóa mặt hàng trong một danh mục.
  • GET [/{product_catalog_id}/check_batch_request_status](#batch-request-status) - Kiểm tra trạng thái của yêu cầu.

Gửi thông tin cập nhật về sản phẩm

Để tạo, cập nhật hoặc xóa các sản phẩm trong danh mục của mình, bạn hãy tạo một lệnh gọi HTTP POST với các thay đổi mà bạn muốn thực hiện. Bạn có thể tạo tối đa 500 cập nhật trong một lệnh gọi. Đối với từng danh mục, bạn có thể tạo tối đa 100 lệnh gọi mỗi giờ.

use FacebookAds\Api;
use FacebookAds\Http\RequestInterface;

$requests =  array(
    array(
        'method' => 'CREATE',
        'retailer_id' => 'retailer-product-id-123',
        'data' => array(
          'availability' => 'in stock',
          'brand' => 'Niky',
          'category' => 't-shirts',
          'currency' => 'USD',
          'description' => 'This is the product description.',
          'image_url' => 'http://www.images.example.com/t-shirts/1.png',
          'name' => 'My product name',
          'price' => '100',
          'url' => 'http://www.example.com/t-shirts/1.html',
        ),
    ),
);


$data = Api::instance()->call(
  '/'.<CATALOG_ID>.'/batch',
  RequestInterface::METHOD_POST,
  array('requests' => $requests))->getContent();
curl \
  -F 'requests=[ 
    { 
      "method": "CREATE", 
      "retailer_id": "retailer-product-id-123", 
      "data": { 
        "availability": "in stock", 
        "brand": "Niky", 
        "category": "t-shirts", 
        "currency": "USD", 
        "description": "This is the product description.", 
        "image_url": "http:\/\/www.images.example.com\/t-shirts\/1.png", 
        "name": "My product name", 
        "price": "100", 
        "url": "http:\/\/www.example.com\/t-shirts\/1.html" 
      } 
    } 
  ]' \
  -F 'access_token=<ACCESS_TOKEN>' \
  https://graph.facebook.com/v2.11/<CATALOG_ID>/batch

Lệnh gọi này trả về một số hiệu mà bạn có thể sử dụng để kiểm tra trạng thái của yêu cầu hàng loạt. Hãy xem nội dung về Tải trạng thái yêu cầu:

{
  "handles": ["AczwaOW7j_EuQ5peV3kGq8X9qc7cDiv_kFrrHkdKuG7LkpkkqK5939wgdoduSQ45FGK5vKdVqOaSDJEun-fvbsR1kk8Rd53AZyD1WThSemo26I"]
}
Thông số Loại Mô tả

requests

Object

Đối tượng JSON chứa tất cả các yêu cầu.

requests.method

string

CREATE, UPDATE hoặc DELETE.

requests.retailer_id

string

id sản phẩm do nhà bán lẻ cung cấp.

requests.data

Object

Đối tượng JSON chứa các trường và giá trị của sản phẩm. Khi methodCREATE, đối tượng này phải chứa tất cả các trường bắt buộc cho một sản phẩm. Khi methodUPDATE, đối tượng này có thể chứa bất kỳ trường nào. Facebook chỉ cập nhật các trường mà bạn cung cấp.

Dưới đây là các giá trị được hỗ trợ trong trường data mà bạn có thể sử dụng để CREATEUPDATE các mặt hàng:

  • additional_image_urls
  • availability
  • age_group
  • applinks
  • brand
  • category
  • color
  • condition
  • currency
  • custom_label_0
  • custom_label_1
  • custom_label_2
  • custom_label_3
  • custom_label_4
  • description
  • gender
  • gtin
  • image_url
  • manufacturer_part_number
  • name
  • pattern
  • price
  • product_type
  • sale_price
  • sale_price_end_date
  • sale_price_start_date
  • shipping
  • size
  • url

Bạn có thể sử dụng giá trị applinks cho thông tin liên kết sâu. Liên kết này hoạt động tương tự như các Liên kết sâu của sản phẩm. Định dạng như sau:

"applinks" : {
  "ios": [{
    "url":"example-ios://electronic",
    "app_store_id":42,
    "app_name":"Electronic Example iOS"
  }],
  "iphone": [{
    "url":"example-iphone://electronic",
     "app_store_id":43,
     "app_name":"Electronic Example iPhone"
  }],
  "ipad": [{
    "url":"example-ipad://electronic",
     "app_store_id":44,
     "app_name":"Electronic Example iPad"
  }],
  "android": [{
    "url":"example-android://electronic",
     "package":"com.electronic",
     "class":"com.electronic.Example",
     "app_name":"Electronic Example Android",
  }],
  "windows_phone": [{
    "url":"example-windows://electronic",
     "app_id":"64ec0d1b-5b3b-4c77-a86b-5e12d465edc0",
     "app_name":"Electronic Example Windows"
  }]
}

Hãy xem Tài liệu tham khảo về danh mục sản phẩm, cách tạo.

Tải trạng thái yêu cầu

Để tải trạng thái của một yêu cầu hàng loạt, hãy sử dụng số hiệu được trả về từ lệnh gọi tới {product_catalog_id}/batch:

curl -G \
-d 'handle=AczwaOW7j_EuQ5peV3kGq8X9qc7cDiv_kFrrHkdKuG7LkpkkqK5939wgdoduSQ45FGK5vKdVqOaSDJEun-fvbsR1kk8Rd53AZyD1WThSemo26I'
-d 'access_token={ACCESS_TOKEN}'
https://graph.facebook.com/{API_VERSION}/{PRODUCT_CATALOG_ID}/check_batch_request_status

Phản hồi:

{
  "data": [
    {
      "handle": "AczwaOW7j_EuQ5peV3kGq8X9qc7cDiv_kFrrHkdKuG7LkpkkqK5939wgdoduSQ45FGK5vKdVqOaSDJEun-fvbsR1kk8Rd53AZyD1WThSemo26Q",
      "status": "finished",
      "errors_total_count": 1,
      "errors": [
        {
          "line": 0,
          "id": "retailer-4",
          "message": "Invalid value: Value passed at position 0 (id=retailer-199) is invalid: \"You cannot create a EntProductItem without required field Availability\""
        }
      ]
    }
  ]
}

Hãy xem nội dung về Danh mục sản phẩm, tài liệu tham khảo về kiểm tra trạng thái hàng loạt.

Các quy tắc về nguồn cấp sản phẩm

Hãy khắc phục và ngăn các lỗi xảy ra khi tải lên nguồn cấp bằng các quy tắc. Bạn có thể cung cấp các quy tắc mà Facebook sẽ áp dụng cho từng lần tải lên nguồn cấp. Hãy chỉ định các quy tắc của bạn theo thuộc tính (cột) mà chúng sẽ áp dụng, theo loại của quy tắc và theo thông số. Hiện tại, bạn không thể sử dụng các quy tắc với API hàng loạt. Bạn có thể cung cấp các loại quy tắc sau:

  • Quy tắc ánh xạ - Ánh xạ các thuộc tính (tên cột) trong tệp nguồn cấp tới các thuộc tính mà chúng tôi có thể nhận ra.
  • Quy tắc ánh xạ giá trị - Ánh xạ các trường (giá trị của cột) trong tệp nguồn cấp tới các trường mà chúng tôi có thể nhận ra.
  • Quy tắc chữ hoa chữ thường - Thay đổi cách viết chữ hoa chữ thường của các từ trong một trường. Ví dụ: thay đổi tất cả các mô tả viết hoa thành viết thường.

Ví dụ: bạn có thể giải quyết các vấn đề sau bằng Quy tắc ánh xạ và quy tắc ánh xạ giá trị:

  • Lỗi đánh máy thuộc tính từ gavailability thành availability
  • Sửa các kê khai không nhận dạng được từ InStock thành in stock
  • Định dạng giá từ 45$ thành 45.00 USD
  • Chuyển từ Tình trạng: Neu thành Tình trạng: New

Bạn có thể sử dụng Quy tắc chữ hoa chữ thường để giải quyết các loại vấn đề sau:

  • Chuyển các mô tả được viết hoa toàn bộ BRAND NEW WITH LEATHER DETAIL... thành Brand new with leather detail...
  • Sửa các tên được viết hoa toàn bộ FACEBOOK T-SHIRT thành Facebook T-shirt

Các quy tắc được đề xuất

Bạn có thể tải các quy tắc được Facebook đề xuất để sửa lỗi trong nguồn cấp của mình. Để xem các quy tắc được đề xuất cho phiên tải lên của bạn, hãy làm theo các bước tiếp theo.

  • Truy xuất các phiên tải lên:
https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/uploads
  • Truy xuất các lỗi cho phiên tải lên:
https://graph.facebook.com/{API_VERSION}/{UPLOAD_SESSION_ID}/errors
  • Truy xuất các quy tắc được đề xuất cho lỗi tải lên:
curl -i -X GET 
 "https://graph.facebook.com/{API_VERSION}/{UPLOAD_ERROR_ID}/suggested_rules?access_token={ACCESS_TOKEN}

Một phản hồi mẫu với đề xuất trông sẽ như sau:

"data": [
  
    "attribute": "description",
    "type": "letter_case_rule",
    "params": [
      
        "key": "type",
        "value": "capitalize_first"
      
    ]
  
]

Để biết thông tin chi tiết, hãy xem Tài liệu tham khảo về API Quy tắc được đề xuất.

Điểm cuối

Thêm các quy tắc vào nguồn cấp

Để áp dụng quy tắc cho nguồn cấp, bạn cần liên kết quy tắc với nguồn cấp. Hãy thực hiện một lệnh gọi HTTP POST tới:

https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/rules?attribute={ATTRIBUTE}&amp;rule_type={RULE_TYPE}&amp;params={PARAMS}

Ví dụ:

curl -i -X POST 
 -d "attribute=google_product_category" 
 -d "rule_type=mapping_rule" 
 -d "params=%7B'map_from'%3A%20'gcategory'%7D" 
 -d "access_token={ACCESS_TOKEN}" 
 "https://graph.facebook.com/v2.9/{PRODUCT_FEED_ID}/rules" 
 // sample response
 
  "id": "{RULE_ID}"

Bạn phải định dạng params như sau:

Loại quy tắc Định dạng Ví dụ Ghi chú

Quy tắc ánh xạ

"map_from": <string>

"map_from": "gavailability"

Quy tắc ánh xạ giá trị

<string> : <string>

"InStock": "in stock"

Đối với quy tắc ánh xạ giá trị, số lượng ánh xạ được giới hạn là 10 và độ dài của chuỗi là 20.

Quy tắc chữ hoa chữ thường

"type": một trong số: "capitalize_first", "capitalize_all", "to_upper", "to_lower"

"type": "capitalize_first"

Để biết chi tiết, hãy xem Tài liệu tham khảo về API Quy tắc nguồn cấp sản phẩm.

Tải các quy tắc hiện tại

Để liệt kê tất cả các quy tắc được liên kết với nguồn cấp, hãy thực hiện lệnh gọi HTTP GET tới:

https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_ID}/rules

Để biết chi tiết, hãy xem Tài liệu tham khảo về API Quy tắc nguồn cấp sản phẩm.

Cập nhật và xóa quy tắc

Để thay đổi một quy tắc được liên kết với nguồn cấp, hãy thực hiện lệnh gọi HTTP POST để cập nhật bất kỳ thông số nào và HTTP DELETE để xóa quy tắc. Bạn chỉ có thể cập nhật các thông số. Nếu muốn thay đổi attribute hoặc rule_type, bạn phải xóa và tạo lại quy tắc.

https://graph.facebook.com/{API_VERSION}/{PRODUCT_FEED_RULE_ID}?params={PARAMS}

Để biết chi tiết, hãy xem Tài liệu tham khảo về API Quy tắc nguồn cấp sản phẩm

Tiếp theo: Thu thập tín hiệu đối tượng và tạo đối tượng của sản phẩm

Tạo đối tượng của sản phẩm