Hãy sử dụng các giải pháp và nguyên tắc dưới đây cho mọi vấn đề về nguồn cấp dữ liệu mà bạn có thể gặp phải.
Để liệt kê tất cả quy tắc được liên kết với một nguồn cấp dữ liệu, hãy thực hiện lệnh gọi HTTP GET
đến:
https://graph.facebook.com/<API_VERSION>/<PRODUCT_FEED_ID>/rules
Hãy xem API Quy tắc nguồn cấp dữ liệu sản phẩm, Tài liệu tham khảo để biết chi tiết.
Bạn có thể lấy các quy tắc gợi ý của Meta để sửa lỗi trong nguồn cấp dữ liệu của mình. Để xem quy tắc gợi ý cho phiên tải lên, hãy làm theo các bước sau đây:
Bước 1: Truy xuất phiên tải lên:
https://graph.facebook.com/<API_VERSION>/<PRODUCT_FEED_ID>/uploads
Bước 2: Truy xuất lỗi cho phiên tải lên:
https://graph.facebook.com/<API_VERSION>/<UPLOAD_SESSION_ID>/errors
Bước 3: Truy xuất quy tắc gợi ý 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}
Phản hồi mẫu
"data": [ "attribute": "description", "type": "letter_case_rule", "params": [ "key": "type", "value": "capitalize_first" ] ]
Hãy xem API Quy tắc gợi ý, Tài liệu tham khảo để biết chi tiết.
Để áp dụng quy tắc cho nguồn cấp dữ liệu, bạn cần liên kết quy tắc đó với nguồn cấp dữ liệu.
Thực hiện lệnh gọi HTTP POST
đến:
https://graph.facebook.com/<API_VERSION>/<PRODUCT_FEED_ID>/rules?attribute={ATTRIBUTE}&rule_type={RULE_TYPE}&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/<API_VERSION>/{PRODUCT_FEED_ID}/rules"
Phản hồi mẫu
"id": "{RULE_ID}"
Đị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" | Số lượng mục ánh xạ tối đa là 10 và độ dài chuỗi là 20. |
Quy tắc viết hoa | "type": một trong các giá trị: "capitalize_first", "capitalize_all", "to_upper", "to_lower" | "type": "capitalize_first" |
Hãy xem API Quy tắc nguồn cấp dữ liệu sản phẩm, Tài liệu tham khảo để biết chi tiết.
Sửa và ngăn chặn lỗi tải nguồn cấp dữ liệu lên xảy ra liên tục bằng quy tắc. Bạn có thể cung cấp quy tắc mà Meta áp dụng cho mỗi lần tải nguồn cấp dữ liệu lên. Hãy chỉ định quy tắc theo thuộc tính (cột) mà quy tắc sẽ áp dụng, theo loại quy tắc và theo thông số. Hiện tại, bạn không thể sử dụng quy tắc với API Loạt. Bạn có thể cung cấp các loại quy tắc sau đây:
Ví dụ: bạn có thể khắc phục các vấn đề sau đây bằng Quy tắc ánh xạ và Quy tắc ánh xạ giá trị:
gavailability
thành availability
InStock
thành in stock
45$
thành 45.00 USD
Neu
trong Tình trạng: New
Bạn có thể dùng Quy tắc viết hoa để giải quyết các loại vấn đề sau đây:
BRAND NEW WITH LEATHER DETAIL...
thành Brand new with leather detail...
FACEBOOK T-SHIRT
thành Facebook T-shirt
Nếu bạn muốn thay đổi quy tắc được liên kết với nguồn cấp dữ liệu, 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à lệnh gọi HTTP DELETE
để xóa quy tắc đó. Bạn chỉ có thể cập nhật thông số. Nếu muốn thay đổi attribute
hoặc rule_type
, bạn phải xóa rồi tạo lại quy tắc.
https://graph.facebook.com/<API_VERSION>/<PRODUCT_FEED_RULE_ID>?params={PARAMS}
Hãy xem API Quy tắc nguồn cấp dữ liệu sản phẩm, Tài liệu tham khảo để biết chi tiết.
Nếu Công cụ quản lý thương mại báo cáo về việc thiếu hoặc không tìm thấy một số mặt hàng trong danh mục, bạn có thể cần kiểm tra để đảm bảo Meta pixel hoặc ứng dụng của bạn đã được thiết lập đúng cách. Bạn có thể gặp lỗi này khi:
content_id
có trong sự kiện pixel hoặc sự kiện trong ứng dụng của bạn không khớp với ID trong nguồn cấp dữ liệu của danh mục.Tìm hiểu thêm tại đây.
Tìm hiểu thêm về cách khắc phục sự cố nguồn cấp dữ liệu bằng Blueprint.
Bạn có thể sử dụng API Báo cáo lỗi tải nguồn cấp dữ liệu lên để yêu cầu báo cáo lỗi đầy đủ cho mọi phiên tải nguồn cấp dữ liệu lên. Sau khi nhận được yêu cầu, chúng tôi sẽ chạy tác vụ nền để chuẩn bị những lỗi này và lưu trữ chúng trong file CSV.
Để yêu cầu báo cáo lỗi đầy đủ, hãy sử dụng POST /{upload_session_id}/error_report
.
Báo cáo này chứa thông tin về:
FATAL
nếu lỗi khiến mặt hàng bị từ chối, WARNING
nếu mặt hàng được tải lên nhưng có lỗi)'da'
trong cột nàytrue
/false
); ví dụ: liệu lỗi có khiến mặt hàng không hiển thị trên giao diện này khôngYêu cầu
curl -i -X POST \ -F 'access_token=ACCESS_TOKEN' \ https://graph.intern.facebook.com/<API_VERSION>/<upload session ID>/error_report
Phản hồi Phản hồi cho biết yêu cầu có thành công hay không:
{ "success": bool, }
Thông thường, bạn chỉ cần lấy mẫu lỗi và cảnh báo là có thể khắc phục hầu hết vấn đề khi tải nguồn cấp dữ liệu sản phẩm lên. Tuy nhiên, bạn có thể cần danh sách lỗi đầy đủ để phân tích sâu hơn. Để tải danh sách đầy đủ các lỗi và cảnh báo xuống, trước tiên, bạn phải truy vấn phiên tải lên gần đây nhất (xem phần ở trên).
Bạn có thể yêu cầu tạo báo cáo lỗi đầy đủ cho một ID phiên tải lên cụ thể.
Yêu cầu
GET https://graph.facebook.com/vX.X/{upload-session-id}/?fields=error_report
Phản hồi
{ "error_report": { "report_status": "WRITE_FINISHED", "file_handle": "{link-to-the-file-location}" }, "id": "493476498092860" }
Bạn nên tìm một URL mà mình có thể tải xuống (ví dụ: bằng wget, curl, v.v.). File đã tải xuống sẽ chứa báo cáo lỗi đầy đủ.
Nếu bạn gặp lỗi này: "Không thể truy cập vào đối tượng không thuộc quyền quản lý của doanh nghiệp sở hữu ứng dụng này", hãy đảm bảo rằng ứng dụng bạn đang dùng thuộc về doanh nghiệp đó (Cài đặt cho doanh nghiệp > Tài khoản > Ứng dụng).
Trong trường hợp báo cáo chưa sẵn sàng, hãy lặp lại lệnh gọi gần đây nhất sau vài giây. Sau đó, bạn có thể tải báo cáo xuống.
Sau khi yêu cầu báo cáo, hãy sử dụng GET /{upload_session_id}?fields=error_report
để lấy trạng thái của báo cáo lỗi.
Ví dụ
curl -i -X GET \ https://graph.intern.facebook.com/<API_VERSION>/<upload session ID>?fields=error_report&access_token=ACCESS_TOKEN
Phản hồi
{ "error_report": { "report_status": string, "file_handle": string, // if available } "id": "332552650711532 (https://developers.intern.facebook.com/tools/explorer/690422434302374?method=GET&path=332552650711532%3Ffields%3Derror_report&version=v3.2#)" }
Giá trị | Mô tả |
---|---|
| Chưa yêu cầu báo cáo lỗi cho lần tải nguồn cấp dữ liệu lên này. |
| Đã nhận được và đang xử lý yêu cầu. |
| Đã tạo thành công báo cáo và đang chờ ghi vào file CSV. |
| Đã chuẩn bị file báo cáo và có thể tải xuống được. |
| Không tìm thấy dữ liệu nào cho phiên tải nguồn cấp dữ liệu lên này, có khả năng không có mặt hàng nào được xử lý cho lần tải nguồn cấp dữ liệu lên này. |
| Báo cáo lỗi đã quá 30 ngày và không còn tồn tại. |
| Đã xảy ra lỗi ở phía chúng tôi khi cố chuẩn bị báo cáo lỗi này. Bạn có thể yêu cầu báo cáo lỗi để thử lại. |
Lưu ý: URL CDN sử dụng báo cáo lỗi này có thể tải xuống được và sẽ được trả về dưới dạng "file_handle" khi trạng thái của error_report
là WRITE_FINISHED
.
Hãy đọc tài liệu về Lỗi tải nguồn cấp dữ liệu sản phẩm lên. Bạn cũng nên xem phần Xử lý lỗi tải nguồn cấp dữ liệu sản phẩm lên, Nền tảng thương mại.
Để lấy lỗi và cảnh báo từ một lần tải nguồn cấp dữ liệu lên, trước tiên, bạn phải truy vấn các phiên tải lên gần đây.
GET https://graph.facebook.com/vX.X/{product-feed-id}/uploads Token: PAGE_ACCESS_TOKEN
Sau đó, hãy sử dụng upload_session_id
để truy xuất lỗi và cảnh báo.
GET https://graph.facebook.com/vX.X/{upload-session-id}/errors Token: PAGE_ACCESS_TOKEN
Mức độ nghiêm trọng fatal
ở đây nghĩa là Meta không thể nhập mặt hàng; mức độ nghiêm trọng warning
nghĩa là một số thuộc tính được đề xuất bị thiếu hoặc sai định dạng.
{ "data": [ { "id": 1510567479166488, "summary": "A required field is missing: price.", "description": "Products need to have prices to run in ads. Include a price for each product in your data feed file and upload it again. Prices must include cost and an ISO currency code (for example: 10 USD instead of $10 for American dollars).", "severity": "fatal", "samples": { "data": [ { "row_number": 2, "retailer_id": "yj9bpbpub5t8t22kgbq6", "id": "1677559492523068" }, { "row_number": 5, "retailer_id": "ujn33tvbyv2vmdpo7ecb", "id": "1529743440653137" } ] } }, { "id": 275241589314958, "summary": "GTIN is incorrectly formatted", "description": "Check that the GTIN (Global Trade Identification Number) for each of your products is in the correct format. Accepted types include UPC, EAN, JAN, and ISBN.", "severity": "warning", "samples": { "data": [ { "row_number": 4, "retailer_id": "bxwb1pho9o43uxjxikcg", "id": "538700559625644" } ] } } ] }
Hãy đọc tài liệu về Lỗi tải nguồn cấp dữ liệu sản phẩm lên. Bạn cũng nên xem phần cách quản lý Lỗi tải nguồn cấp dữ liệu sản phẩm lên, Quảng cáo danh mục Advantage+.
Bạn nên kiểm tra lỗi và cảnh báo tải danh mục lên sau mỗi phiên tải lên. Bạn có thể kiểm tra bằng cách mở phần Chẩn đoán trong Công cụ quản lý thương mại hoặc sử dụng API Nguồn cấp dữ liệu để yêu cầu mẫu lỗi và cảnh báo. Trước tiên, hãy truy vấn các phiên tải lên gần đây.
Tìm hiểu thêm về cách khắc phục lỗi và cảnh báo Chẩn đoán trong Công cụ quản lý thương mại bằng Blueprint.
GET https://graph.facebook.com/vX.X/{product-feed-id}/uploads
{ "data": [ { "id": "493476498092860", "start_time": "2019-07-15T12:38:36+0000", "end_time": "2019-07-15T12:38:47+0000" } ] }
Sau đó, hãy sử dụng giá trị được trả về trong trường id
để truy xuất mẫu lỗi và cảnh báo.
GET https://graph.facebook.com/vX.X/{upload-session-id}/errors
Mức độ nghiêm trọng fatal
ở đây nghĩa là Meta không thể nhập mặt hàng; mức độ nghiêm trọng warning
nghĩa là một số thuộc tính được đề xuất bị thiếu hoặc sai định dạng.
{ "data": [ { "id": 1510567479166488, "summary": "A required field is missing: price.", "description": "Products need to have prices to run in ads. Include a price for each product in your data feed file and upload it again. Prices must include cost and an ISO currency code (for example: 10 USD instead of $10 for American dollars).", "severity": "fatal", "samples": { "data": [ { "row_number": 2, "retailer_id": "yj9bpbpub5t8t22kgbq6", "id": "1677559492523068" }, { "row_number": 5, "retailer_id": "ujn33tvbyv2vmdpo7ecb", "id": "1529743440653137" } ] } }, { "id": 275241589314958, "summary": "GTIN is incorrectly formatted", "description": "Check that the GTIN (Global Trade Identification Number) for each of your products is in the correct format. Accepted types include UPC, EAN, JAN, and ISBN.", "severity": "warning", "samples": { "data": [ { "row_number": 4, "retailer_id": "bxwb1pho9o43uxjxikcg", "id": "538700559625644" } ] } } ] }