আপনার মার্চেন্ট সেন্টার অ্যাকাউন্টগুলিতে পণ্যের অনুমোদনের স্থিতি পরিবর্তিত হলেই রিয়েল-টাইম সতর্কতা পেতে আপনি PRODUCT_STATUS_CHANGE নোটিফিকেশনে সাবস্ক্রাইব করতে পারেন। উদাহরণস্বরূপ, কোনো পণ্য কখন অননুমোদিত হচ্ছে তা আপনি শনাক্ত করতে পারবেন, যাতে আপনি ডেটার মানের সম্ভাব্য সমস্যাগুলো সমাধান করতে পারেন।
শুরু করার আগে, নিশ্চিত করুন যে আপনার কলব্যাক ইউআরআই (URI) নোটিফিকেশন সাব-এপিআই ওভারভিউ (Notifications sub-API Overview )-তে বর্ণিত প্রয়োজনীয়তা অনুসারে কনফিগার করা আছে।
পণ্যের অবস্থার পরিবর্তন সম্পর্কে জানতে সাবস্ক্রাইব করুন
পণ্যের অবস্থার পরিবর্তন সম্পর্কে জানতে, notificationsubscriptions রিসোর্সে একটি POST অনুরোধ পাঠান এবং 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 : যে অ্যাকাউন্টটির বিষয়ে আপনি বিজ্ঞপ্তি পেতে চান, তার শনাক্তকারী।
আপনার মার্চেন্ট সেন্টার অ্যাকাউন্টটি যদি কোনো লিঙ্ক করা অ্যাকাউন্ট ছাড়া একটি স্বতন্ত্র অ্যাকাউন্ট হয়, তাহলে উভয় ভেরিয়েবলের জন্য আপনার নিজের অ্যাকাউন্ট আইডি ব্যবহার করুন।
সমস্ত পরিচালিত অ্যাকাউন্টের জন্য সাবস্ক্রাইব করুন
আপনি যদি একাধিক অ্যাকাউন্ট পরিচালনা করেন (যেমন সাব-অ্যাকাউন্ট সহ একটি অ্যাডভান্সড অ্যাকাউন্ট), তাহলে 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 একটি বেস৬৪-এনকোডেড বার্তা গ্রহণ করে। ডিকোড করা হলে, পেলোডটি 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: বিজ্ঞাপন বা বিনামূল্যের তালিকাভুক্তির সেই পৃষ্ঠ যেখানে অবস্থার পরিবর্তন হয়েছে। ReportingContextEnum থেকে সমর্থিত মানগুলির মধ্যে রয়েছেSHOPPING_ADS,LOCAL_INVENTORY_ADS,YOUTUBE_SHOPPING,YOUTUBE_CHECKOUT,YOUTUBE_AFFILIATEএবংFREE_LISTINGS_UCP_CHECKOUT। -
eventTime: ইভেন্টটি তৈরি হওয়ার সময়কার টাইমস্ট্যাম্প। ইভেন্টগুলোর সঠিক ক্রম নিশ্চিত করতে এই টাইমস্ট্যাম্পটি ব্যবহার করুন।
পরীক্ষার পণ্যের অবস্থা পরিবর্তনের বিজ্ঞপ্তি
আপনার কলব্যাক এন্ডপয়েন্ট পণ্যের স্ট্যাটাস পরিবর্তনের মেসেজগুলো সঠিকভাবে গ্রহণ, স্বীকার এবং ডিকোড করে কিনা, তা পরীক্ষা করতে নিম্নলিখিত নমুনা অনুরোধটি ব্যবহার করুন:
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"
}