คุณสามารถสมัครรับPRODUCT_STATUS_CHANGEการแจ้งเตือนเพื่อรับการแจ้งเตือนแบบเรียลไทม์
ทุกครั้งที่สถานะการอนุมัติผลิตภัณฑ์เปลี่ยนแปลงในบัญชี Merchant Center
เช่น คุณสามารถตรวจหาเมื่อผลิตภัณฑ์ไม่ได้รับอนุมัติเพื่อแก้ไขปัญหาด้านคุณภาพของข้อมูลที่อาจเกิดขึ้นได้
ก่อนเริ่มต้น โปรดตรวจสอบว่าได้กำหนดค่า URI การเรียกกลับตาม ข้อกำหนดที่อธิบายไว้ในภาพรวมของ Sub-API การแจ้งเตือนแล้ว
สมัครรับข้อมูลการเปลี่ยนแปลงสถานะผลิตภัณฑ์
หากต้องการติดตามการเปลี่ยนแปลงสถานะผลิตภัณฑ์ ให้ส่งPOSTคำขอไปยังแหล่งข้อมูล
notificationsubscriptionsโดยตั้งค่า registeredEvent เป็น
PRODUCT_STATUS_CHANGE
ติดตามบัญชีเป้าหมายที่เฉพาะเจาะจง
คำขอตัวอย่างต่อไปนี้จะสมัครรับข้อมูลการเปลี่ยนแปลงสถานะผลิตภัณฑ์สำหรับบัญชีผู้ขายที่เฉพาะเจาะจง
POST https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/
{
"registeredEvent": "PRODUCT_STATUS_CHANGE",
"targetAccount": "accounts/{TARGETACCOUNT_ID}",
"callBackUri": "https://example.com/callback"
}
แทนที่ค่าต่อไปนี้
- ACCOUNT_ID: ตัวระบุของบัญชีที่เป็นเจ้าของ การสมัครใช้บริการและได้รับการแจ้งเตือน
- TARGETACCOUNT_ID: ตัวระบุของบัญชีที่คุณต้องการรับการแจ้งเตือน
หากบัญชี Merchant Center เป็นบัญชีแบบสแตนด์อโลนที่ไม่มีบัญชีที่ลิงก์ ให้ใช้รหัสบัญชีของคุณเองสำหรับทั้ง 2 ตัวแปร
สมัครใช้บริการสำหรับบัญชีที่จัดการทั้งหมด
หากคุณจัดการหลายบัญชี (เช่น บัญชีขั้นสูงที่มีบัญชีย่อย) คุณสามารถติดตามการเปลี่ยนแปลงสถานะผลิตภัณฑ์ในบัญชีที่จัดการทั้งหมดได้โดยตั้งค่าallManagedAccounts: trueดังนี้
POST https://merchantapi.googleapis.com/notifications/v1/accounts/{ACCOUNT_ID}/notificationsubscriptions/
{
"registeredEvent": "PRODUCT_STATUS_CHANGE",
"allManagedAccounts": true,
"callBackUri": "https://example.com/callback"
}
การเรียกที่สำเร็จจะแสดงตัวระบุ
name
สำหรับการสมัครใช้บริการ ซึ่งรวมถึงรหัสการสมัครใช้บริการที่ไม่ซ้ำกัน
{
"name":"accounts/{ACCOUNT_ID}/notificationsubscriptions/{SUBSCRIPTION_ID}",
"registeredEvent": "PRODUCT_STATUS_CHANGE",
"allManagedAccounts": true,
"callBackUri": "https://example.com/callback"
}
ถอดรหัสเพย์โหลดการเปลี่ยนแปลงสถานะผลิตภัณฑ์
เมื่อมีการเปลี่ยนแปลงสถานะผลิตภัณฑ์ URI การเรียกกลับจะได้รับข้อความที่เข้ารหัส Base64
เมื่อถอดรหัสแล้ว เพย์โหลดจะเป็นไปตามรูปแบบ
ProductStatusChangeMessage
{
"account": "accounts/{TARGETACCOUNT_ID}",
"managingAccount": "accounts/{ACCOUNT_ID}",
"resourceType": "PRODUCT",
"attribute": "STATUS",
"changes": [{
"oldValue": "approved",
"newValue": "disapproved",
"regionCode": "US",
"reportingContext": "SHOPPING_ADS"
}, {
"oldValue": "approved",
"newValue": "disapproved",
"regionCode": "JP",
"reportingContext": "SHOPPING_ADS"
},{
"oldValue": "approved",
"newValue": "disapproved",
"regionCode": "GE",
"reportingContext": "SHOPPING_ADS"
}],
"resourceId": "ONLINE~en~US~1234",
"resource": "accounts/{TARGETACCOUNT_ID}/products/ONLINE~en~US~1234",
"expirationTime": "2024-10-22T02:43:47.461464Z",
"eventTime": "2024-03-21T02:43:47.461464Z"
}
ฟิลด์และกฎของเพย์โหลด
oldValueและnewValue: แสดงสถานะก่อนหน้าและสถานะที่อัปเดต ค่าที่เป็นไปได้คือapproved,pending,disapprovedหรือสตริงว่าง ('')- หากไม่ใส่
oldValueระบบจะสร้างผลิตภัณฑ์ใหม่ - หากไม่มี
newValueแสดงว่าระบบได้ลบผลิตภัณฑ์แล้ว
- หากไม่ใส่
expirationTime: ระบุวันที่ข้อเสนอผลิตภัณฑ์หมดอายุ ระบบจะ ละเว้นฟิลด์นี้เมื่อลบผลิตภัณฑ์reportingContext: แพลตฟอร์มโฆษณาหรือข้อมูลที่แสดงฟรีที่สถานะ มีการเปลี่ยนแปลง ค่าที่รองรับ ได้แก่SHOPPING_ADS,LOCAL_INVENTORY_ADS,YOUTUBE_SHOPPING,YOUTUBE_CHECKOUT,YOUTUBE_AFFILIATEและFREE_LISTINGS_UCP_CHECKOUTจาก ReportingContextEnumeventTime: การประทับเวลาเมื่อสร้างเหตุการณ์ ใช้การประทับเวลานี้ เพื่อให้มั่นใจว่าเหตุการณ์จะเรียงตามลำดับอย่างถูกต้อง
ทดสอบการแจ้งเตือนการเปลี่ยนแปลงสถานะผลิตภัณฑ์
ใช้คำขอตัวอย่างต่อไปนี้เพื่อทดสอบว่าปลายทางการเรียกกลับ รับ ทราบ และถอดรหัสข้อความการเปลี่ยนแปลงสถานะผลิตภัณฑ์ได้อย่างถูกต้องหรือไม่
curl --request POST \
'https://{YOUR_CALLBACK_URI}' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--data '{"message":{"data": "ewogICJhY2NvdW50IjogImFjY291bnRzLzEyMzQiLAogICJtYW5hZ2luZ0FjY291bnQiOiAiYWNjb3VudHMvNTY3OCIsCiAgInJlc291cmNlVHlwZSI6ICJQUk9EVUNUIiwKICAiYXR0cmlidXRlIjogIlNUQVRVUyIsCiAgImNoYW5nZXMiOiBbewogICAgIm9sZFZhbHVlIjogImFwcHJvdmVkIiwKICAgICJyZWdpb25Db2RlIjogIlVTIiwKICAgICJyZXBvcnRpbmdDb250ZXh0IjogIlNIT1BQSU5HX0FEUyIKICB9XSwKICAicmVzb3VyY2VJZCI6ICJPTkxJTkV+ZW5+VVN+MDAwMDAwMDAwMDAwIiwKICAicmVzb3VyY2UiOiAiYWNjb3VudHMvMTIzNC9wcm9kdWN0cy9PTkxJTkV+ZW5+VVN+MDAwMDAwMDAwMDAwIiwKICAiZXhwaXJhdGlvblRpbWUiOiAiMjAyNC0xMC0yMlQwMjo0Mzo0Ny40NjE0NjRaIiwKICAiZXZlbnRUaW1lIjogIjIwMjQtMDMtMjFUMDI6NDM6NDcuNDYxNDY0WiIKfQ=="}}'ในการตอบกลับการเรียกนี้ URI ของการเรียกกลับควรแสดงรหัสสถานะ HTTP ที่ยอมรับได้ (เช่น 200 OK) ข้อความที่ถอดรหัสแล้วจะมีเนื้อหาต่อไปนี้
{
"account": "accounts/1234",
"managingAccount": "accounts/5678",
"resourceType": "PRODUCT",
"attribute": "STATUS",
"changes": [{
"oldValue": "approved",
"regionCode": "US",
"reportingContext": "SHOPPING_ADS"
}],
"resourceId": "ONLINE~en~US~000000000000",
"resource": "accounts/1234/products/ONLINE~en~US~000000000000",
"expirationTime": "2024-10-22T02:43:47.461464Z",
"eventTime": "2024-03-21T02:43:47.461464Z"
}