Değişikliklerle ilgili push bildirimleri almak için Merchant Notifications API'yi kullanabilirsiniz büyük önem taşır. Örneğin, ürün durumu değişikliğine abone olursanız bildirimleri sayesinde, bir ürün onaylanmadığında gerçek zamanlı olarak bildirim alabilirsiniz. Şunlardan herhangi biri için bildirimlere abone olabilirsiniz: alt hesaplar veya diğer bağlı hesaplar hesaplar.
Bu kılavuzda, ürün durumuyla ilgili bildirimleri nasıl yöneteceğinize dair örnekler sunulmaktadır.
anlamına gelir. Diğer etkinliklerle ilgili bildirimleri yönetmek için aşağıdaki örneklerden yararlanabilirsiniz:
isteklerinizdeki registeredEvent
alanının değerini değiştirin. Tam fiyat için
hakkında daha fazla bilgi edinmek için Satıcı Bildirimleri API'sini
referans.
Abone ol
Bildirim almak için callBackUri
abonesi olmanız gerekir. Geri çağırma URI'nız
aşağıdaki şartları karşılamanız gerekir:
- Geçerli bir SSL sertifikasına sahip, herkesin erişebileceği bir HTTPS adresi olmalıdır. bir sertifika yetkilisi tarafından imzalanır.
Content-Type
üstbilgisi vePOST
application/json
değeri.- Şu yanıt kodlarından birini döndürerek,
bildirim alındı.
102
200
201
202
204
Birden çok abonelik için aynı geri çağırma URI'sini kullanabilirsiniz. Önerilerimiz her gelişmiş geri çağırma URI'si için hesap, etkinlik türü başına Tek bir URI'ye aktarma isteklerinin yükünü en aza indirme.
Aşağıda, ürün durumu değişiklikleriyle ilgili bildirimlere abone olmayla ilgili örnek bir istek verilmiştir.
ekleyebilirsiniz. Şu olması gereken hesabın satıcı kimliğini kullanın:
bildirimleri istek URL'sinde merchantId
olarak alır ve
olarak (
İstek gövdesinde targetMerchantId
. Hesabınız bağımsız bir hesapsa
hiçbir bağlı hesabı yoksa ve
sahip değilseniz her iki yerde de kendi satıcı kimliğinizi kullanın.
POST https://merchantapi.googleapis.com/notifications/v1beta/accounts/merchantId/notificationsubscriptions/
{
"registeredEvent": "PRODUCT_STATUS_CHANGE",
"targetAccount": "accounts/targetMerchantId",
"callBackUri": "https://example.com"
}
Başarılı aramalar,
Sizin için name
abonelik (abonelik kimliği dahil):
{
"name":"accounts/merchantId/notificationsubscriptions/subscriptionId",
"registeredEvent": "PRODUCT_STATUS_CHANGE",
"targetAccount": "accounts/targetMerchantId",
"callBackUri": "https://example.com"
}
Bu name
aboneliğini GET
ve DELETE
adet abonelik için kullanabilirsiniz.
Tüm ürün veya hizmetlerinizle ilgili ürün durumu değişiklikleriyle ilgili bildirimlere abone olabilirsiniz.
yerine "allManagedAccounts": true
ekleyerek bağlı hesaplar
İsteğinizde targetAccount
:
POST https://merchantapi.googleapis.com/notifications/v1beta/accounts/merchantId/notificationsubscriptions/
{
"registeredEvent": "PRODUCT_STATUS_CHANGE",
"allManagedAccounts": true,
"callBackUri": "https://example.com"
}
Mevcut bir aboneliği güncellemek için PATCH
öğesini bir update_mask
ile birlikte kullanarak belirtin
güncellemek istediğiniz alanları ve JSON gövdesindeki yeni değerleri girin:
PATCH /notifications/v1beta/accounts/merchantId/notificationsubscriptions/subscriptionId?update_mask=callBackUri
{
"callBackUri": "https://my-own-personal-domain.com"
}
Bildirimlerin kodunu çöz
Abonelik oluşturduktan sonra
Şu biçimdeki callBackUri
:
{"message":{"data":"{base64_encoded_string}"}}
Bildirim verileri kodlanır. Verilerin kodunu okunabilir bir metin haline getirebilirsiniz biçimi olacaktır. Burada örnek bir ilkbahar başlatma denetleyicisini görebilirsiniz. kodlanmış verileri işlemek için kullanabileceğiniz bir reklam birimi örneği:
@RestController
public class ExampleController {
@RequestMapping(value = "/push",
method = RequestMethod.POST,
consumes = {"application/json"},
produces = {"text/plain"})
@ResponseStatus(HttpStatus.OK)
public void doStuff(@RequestBody String message) {
//wrapped message
JSONObject jsonObject = new JSONObject(message);
JSONObject jsonMessage = jsonObject.getJSONObject("message");
message = jsonMessage.getString("data");
byte[] decodedBytes = Base64.getDecoder().decode(message);
String decodedMessage = new String(decodedBytes);
// Implement your business logic here
}
}
Kodu çözülmüş bir base64_encoded_string
örneğini aşağıda bulabilirsiniz:
"account": "accounts/targetMerchantId"
"managing_account": "accounts/merchantId"
"resource_type": PRODUCT
"attribute": STATUS
"changes": {
"old_value": "eligible"
"new_value": "disapproved"
"region_code": "GE"
"reporting_context": SHOPPING_ADS
},
"changes" {
"old_value": "eligible"
"new_value": "disapproved"
"region_code": "JP"
"reporting_context": SHOPPING_ADS
},
changes {
"old_value": "eligible"
"new_value": "disapproved"
"region_code": "US"
"reporting_context": SHOPPING_ADS
}
resource_id: "ONLINE~en~US~1234"
resource: "accounts/targetMerchantId/products/ONLINE~en~US~1234"
Bildirimde old_value
alanı yoksa yeni ürün
hesabınıza eklendi. new_value
alanı yoksa ürün silinmiştir
hesabınızdan kaldırmanız gerekir.
reporting_context
alanı yalnızca ReportingContextEnum sıralama değerinden (SHOPPING_ADS
, LOCAL_INVENTORY_ADS
, YOUTUBE_SHOPPING
) desteklenir.
Uygulamanızı test etme
Aşağıda, geri çağırma URI'nizi test etmek ve kodu çözmek için kullanabileceğiniz örnek bir bildirim verilmiştir:
curl --header "Content-Type: application/json" --header "Accept: text/plain" --request POST --data '{"message":{"data":
"ImFjY291bnQiOiAiYWNjb3VudHMvMTIzNCIKIm1hbmFnaW5nX2FjY291bnQiOiAiYWNjb3VudHMvNTY3OCIKInJlc291cmNlX3R5cGUiOiBQUk9EVUNUCiJhdHRyaWJ1dGUiOiBTVEFUVVMKImNoYW5nZXMiOiB7CiAgIm9sZF92YWx1ZSI6ICJlbGlnaWJsZSIKICAicmVnaW9uX2NvZGUiOiAiVVMiCiAgInJlcG9ydGluZ19jb250ZXh0IjogU0hPUFBJTkdfQURTCn0KInJlc291cmNlX2lkIjogIk9OTElORX5lbn5VU34wMDAwMDAwMDAwMDAiCiJyZXNvdXJjZSI6ICJhY2NvdW50cy8xMjM0L3Byb2R1Y3RzL09OTElORX5lbn5VU34wMDAwMDAwMDAwMDAi"}}' https://{callBackUri}
Bu çağrıya yanıt olarak, geri çağırma URI'niz başarılı bir yanıt döndürecektir girin. Kodu çözülmüş mesaj aşağıdaki değeri içermelidir:
"account": "accounts/1234"
"managing_account": "accounts/5678"
"resource_type": PRODUCT
"attribute": STATUS
"changes": {
"old_value": "eligible"
"region_code": "US"
"reporting_context": SHOPPING_ADS
}
"resource_id": "ONLINE~en~US~000000000000"
"resource": "accounts/1234/products/ONLINE~en~US~000000000000"