Olay referansı
Kaynağa göre gruplandırılmış 26 Listings API webhook olayının tümü, her biri için tam alan bilgileri ve örnek bir veri yükü.
İlişkili oldukları REST kaynağına göre gruplandırılmış 26 olay. Bu sayfadaki her olay, tek webhook URL'nize iletilir. Olay başına abonelik yoktur; bu nedenle event değerine göre işlem yapın ve ihtiyacınız olmayan olayları yok sayın.
Aşağıda ayrıca belirtilen listing.submission dışında tümü standart veri yükünü kullanır. data içindeki isteğe bağlı alanlar boş olduğunda null olarak gönderilmek yerine veri yükünden çıkarılır.
Dizin
İşletme kayıtları
İşletme kayıtları uç noktalarıyla, özellikle de bu olayın bildirdiği atıf başına syncStatus ve listingUrl değerlerini döndüren GET /locations/{locationId}/listings/premium ile birlikte kullanılır.
listing.submission
Tetiklenme koşulu: tek bir konum için tek bir dizin sitesine yapılan atıf gönderiminin nihai bir duruma ulaşması.
En üst düzey:
data içinde:
{ "event": "listing.submission", "data": { "business_id": 279381, "v4_business_id": "TG9jYXRpb246Mjc5Mzgx", "location_id": "TG9jYXRpb246Mjc5Mzgx", "site": { "id": 42, "name": "Yelp", "url": "https://www.yelp.com" } }, "status": "success", "live_link": "https://www.yelp.com/biz/acme-dental-downtown"}Konumlar
Konum yaşam döngüsü; createLocation, updateLocation ve archiveLocations ile bire bir eşleşir. Konum kapsamındadır: location_id her zaman sayısal bir dizedir.
profile.created
Tetiklenme koşulu: yeni bir konum oluşturulması.
{ "event": "profile.created", "timestamp": "2026-08-25T10:04:00Z", "account_id": 11073, "location_id": "901234", "data": { "source": "api" }}profile.updated
Tetiklenme koşulu: mevcut bir konumun bilgilerinin düzenlenmesi.
Her konum için 60 saniyede bir teslimatla sınırlandırılır ve teslimat bu sürenin başında yapılır. Bu süre içindeki düzenlemeler birleştirilir, ertelenmez. Bu düzenlemeler için olay hiç iletilmez. changed_fields değerini eksiksiz bir fark dökümü olarak değil, süreyi başlatan düzenlemeye ilişkin bir ipucu olarak değerlendirin.
Olay, sürenin başında iletilir; bu nedenle olay ulaştığında konumu yeniden okursanız yalnızca ilk düzenlemeyi görürsünüz. Süre sona erdiğinde, en az 60 saniye sonra ikinci bir okuma planlayın ve bu olay için yalnızca bir teslimat girişimi yapıldığından ve yeniden deneme yapılmadığından konum verilerini ayrıca düzenli aralıklarla karşılaştırıp eşitleyin. Kaçırılan bir olaydan sonra verileri güncelleme bölümüne bakın.
{ "event": "profile.updated", "timestamp": "2026-08-25T10:06:12Z", "account_id": 11073, "location_id": "901234", "data": { "source": "user", "changed_fields": ["name", "phone"] }}profile.deleted
Tetiklenme koşulu: bir konumun arşivlenmesi. Bu, geçici bir silme işlemidir. Kalıcı silme yoktur ve arşivleme, olay üretmeyen cancelArchiveLocations ile iptal edilebilir.
{ "event": "profile.deleted", "timestamp": "2026-08-25T10:20:44Z", "account_id": 11073, "location_id": "901234", "data": { "source": "user" }}Bağlı hesaplar
Google ve Facebook bağlantılarının yaşam döngüsü ve durumu, Bağlı hesaplar uç noktalarıyla birlikte. Konum kapsamındadır. platform her zaman google veya facebook olur; diğer sağlayıcılar bu olayları üretmez.
connected_account_id her zaman bir anahtar olarak bulunur, ancak iki Google doğrulama olayında değeri null olur.
connection.location_connected
Tetikleyici: bir Google veya Facebook işletme kaydı bir konuma bağlanır.
{ "event": "connection.location_connected", "timestamp": "2026-08-25T14:32:10Z", "account_id": 11073, "location_id": "279381", "data": { "platform": "google", "connected_account_id": "ba03bc4b-9f8c-4d3b-8e93-9628034c63cc" }}connection.location_disconnected
Tetikleyici: bir Google veya Facebook işletme kaydının bir konumla bağlantısı kaldırılır.
{ "event": "connection.location_disconnected", "timestamp": "2026-08-25T14:35:02Z", "account_id": 11073, "location_id": "279381", "data": { "platform": "google", "connected_account_id": "ba03bc4b-9f8c-4d3b-8e93-9628034c63cc" }}connection.reauth_required
Tetikleyici: bağlı hesabın kimlik bilgileri geçersiz kılınmıştır. Birisi bu bağlantıyı yeniden yetkilendirene kadar bu bağlantı üzerinden hiçbir şey eşitlenmez.
{ "event": "connection.reauth_required", "timestamp": "2026-08-25T14:40:18Z", "account_id": 11073, "location_id": "279381", "data": { "platform": "google", "connected_account_id": "ba03bc4b-9f8c-4d3b-8e93-9628034c63cc", "reason": "Google credentials are invalid. Please reconnect." }}connection.listing_inaccessible
Tetikleyici: bağlı hesap artık konumun işletme kaydına erişemiyordur. reauth_required ile arasındaki fark şudur: kimlik bilgileri hâlâ tamamen geçerli olabilir, ancak söz konusu işletme kaydına erişim kaldırılmıştır.
{ "event": "connection.listing_inaccessible", "timestamp": "2026-08-25T14:42:55Z", "account_id": 11073, "location_id": "279381", "data": { "platform": "facebook", "connected_account_id": "cf12de77-2211-4a09-b7c1-0a6f3b2e91aa", "reason": "No longer has access to this listing." }}connection.google_verification_verified
Tetikleyici: bir konumun Google Business Profile profili doğrulamadan geçer.
{ "event": "connection.google_verification_verified", "timestamp": "2026-08-25T14:50:00Z", "account_id": 11073, "location_id": "279381", "data": { "platform": "google", "connected_account_id": null }}connection.google_verification_failed
Tetikleyici: bir Google Business Profile doğrulaması başarısızlıkla sona erer. Hiçbir REST çağrısı doğrulama başlatmaz; yukarıda belirtildiği gibi durumun kendisi okunabilir.
Yalnızca son durumlar olay üretir: VERIFIED, _verified olayını tetikler; SUSPENDED veya DUPLICATE (failure_type rejected) ve ERROR_WHILE_FETCHING (transient) ise bu olayı tetikler. İşlemin sürdüğünü belirten durumlar (PENDING_VERIFICATION, UNDER_REVIEW, NOT_VERIFIED, NOT_CONNECTED) hiçbir olay üretmez, dolayısıyla bir olayın olmaması herhangi bir duruma işaret etmez. Doğrulama sürerken konumu düzenli aralıklarla okuyarak googleVerificationStatus alanını kontrol edin.
{ "event": "connection.google_verification_failed", "timestamp": "2026-08-25T14:52:31Z", "account_id": 11073, "location_id": "279381", "data": { "platform": "google", "connected_account_id": null, "failure_type": "rejected", "reason": "This profile is suspended." }}Yorumlar
Yorumlar ve yanıtlar; yanıt verme, yanıtı düzenleme ve yanıtı arşivleme dahil Yorumlar uç noktalarıyla birlikte.
Social kategorisindeki yorumlar filtrelenerek çıkarılır ve hiçbir zaman iletilmez.
interaction.review
Tetikleyici: bir yorum sisteme alınır veya değişir.
{ "event": "interaction.review", "timestamp": "2026-08-25T09:12:44Z", "account_id": 11073, "location_id": "279381", "data": { "interaction": { "id": "6f8a1d20-3e11-4a55-9f7d-2b0c9e5a4471", "type": "Review", "content": "Friendly staff and no waiting.", "rating": 5, "title": null, "author_name": "Dana R.", "author_avatar": "https://lh3.googleusercontent.com/a/example", "date": "2026-08-25T08:58:02Z", "source": "google.com", "permalink": "https://maps.google.com/example-review", "category": "Review", "interaction_status": "unread", "parent_id": null, "interaction_request_id": "3c1e9b74-88a2-4d0e-9c31-77a1f0be5d92" } }}interaction.response
Tetikleyici: bir yoruma verilen yanıt yayımlanır, düzenlenir veya arşivlenir. İki fark dışında interaction.review ile aynı yapıdadır: type değeri Response olur ve parent_id, yanıt verilen yorumu gösterir.
interaction.review altında listelenen diğer tüm alanlar da aynı anlamlarıyla yer alır.
{ "event": "interaction.response", "timestamp": "2026-08-25T09:30:07Z", "account_id": 11073, "location_id": "279381", "data": { "interaction": { "id": "b2d7c095-5f43-4e21-8a10-6d9c3f77e208", "type": "Response", "content": "Thanks Dana, see you next time!", "rating": null, "author_name": "Acme Dental Downtown", "date": "2026-08-25T09:29:55Z", "source": "google.com", "permalink": "https://maps.google.com/example-review", "category": "Review", "interaction_status": "responded", "parent_id": "6f8a1d20-3e11-4a55-9f7d-2b0c9e5a4471", "interaction_request_id": "3c1e9b74-88a2-4d0e-9c31-77a1f0be5d92" } }}Gönderiler
Gönderiler uç noktalarıyla birlikte kullanılan Google Business Profile yerel gönderileri. Konum kapsamındadır; location_id sayısal bir dizedir.
Dört olay aynı data yapısını kullanır; isteğe bağlı alanları farklıdır. Boş olan isteğe bağlı alanların hiçbiri dahil edilmez.
local_post.created
Tetikleyici: bir gönderi öğesi oluşturulur ve Google'a gönderilmek üzere kuyruğa alınır. Henüz yayında değildir.
{ "event": "local_post.created", "timestamp": "2026-08-25T11:02:00Z", "account_id": 11073, "location_id": "279381", "data": { "post_id": 88421, "post_item_id": 5512309, "post_type": "STANDARD" }}local_post.published
Tetikleyici: Google gönderiyi kabul etti ve gönderi yayında.
{ "event": "local_post.published", "timestamp": "2026-08-25T11:06:41Z", "account_id": 11073, "location_id": "279381", "data": { "post_id": 88421, "post_item_id": 5512309, "post_type": "STANDARD", "post_external_id": "accounts/123/locations/456/localPosts/789" }}local_post.rejected
Tetikleyici: Google gönderiyi reddetti veya gönderim başarısız oldu.
{ "event": "local_post.rejected", "timestamp": "2026-08-25T11:07:15Z", "account_id": 11073, "location_id": "279381", "data": { "post_id": 88421, "post_item_id": 5512310, "post_type": "OFFER", "rejection_reason": "Rejected" }}local_post.deleted
Tetikleyici: gönderi öğesi silinir.
{ "event": "local_post.deleted", "timestamp": "2026-08-25T15:40:09Z", "account_id": 11073, "location_id": "279381", "data": { "post_id": 88421, "post_item_id": 5512309, "post_type": "STANDARD", "post_external_id": "accounts/123/locations/456/localPosts/789" }}Social
Social uç noktalarıyla birlikte kullanılan, marka düzeyinde sosyal medya yayını ve bağlantı yaşam döngüsü. Dokuz olay: beşi gönderiler, dördü bağlantılar için.
account_id ve timestamp her zamanki gibi bulunur. data içindeki ID'ler, REST API'nin kullandığı düz UUID'lerle aynıdır ve dize olarak gönderilir.
social_post.created
Tetikleyici: bir sosyal medya gönderisi oluşturulur. Yalnızca oluşturma işleminde; mevcut bir gönderinin düzenlenmesi olayı yeniden üretmez.
{ "event": "social_post.created", "timestamp": "2026-09-28T14:02:11Z", "account_id": 62570, "location_id": null, "data": { "post_id": "c47a1e58-2b93-4f10-a6d7-58e0c9b12345", "social_profile_id": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902", "status": "scheduled", "created_by": 40122, "platform_ids": [1, 2, 4] }}social_post.published
Tetikleyici: gönderi tamamen yayına alındı. Bu olay yalnızca tam başarı durumunda üretilir: en az bir kanal gönderiyi yayımlamış ve hiçbir kanalda hata oluşmamış olmalıdır. Kısmi yayımlama durumunda bu olay üretilmez; bunun yerine social_post.failed üretilir.
{ "event": "social_post.published", "timestamp": "2026-10-02T13:30:07Z", "account_id": 62570, "location_id": null, "data": { "post_id": "c47a1e58-2b93-4f10-a6d7-58e0c9b12345", "social_profile_id": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902", "status": "published", "published_on": "2026-10-02T13:30:04", "items": [ { "platform": "instagram", "social_platform_id": 2, "connected_account_id": "b81d5b3c-4a90-4f6a-9c11-71e0dd2fa4a7", "published_url": "https://www.instagram.com/p/CxYz1234abc/", "vendor_post_id": "18029384756012345", "status": "success" } ] }}social_post.failed
Tetikleyici: yayımlama başarısız oldu. Bu, editoryal ret durumundan farklı bir iletim hatasıdır. Son yeniden denemede tetiklenir; bu nedenle gönderi için hâlâ deneme hakkı varsa üretilmez.
items yalnızca hata oluşan kanalları içerir; bu nedenle iki platformda yayımlanan ve üçüncüsünde başarısız olan bir gönderi bu olayda tek öğeyle yer alır.
{ "event": "social_post.failed", "timestamp": "2026-10-02T13:34:55Z", "account_id": 62570, "location_id": null, "data": { "post_id": "c47a1e58-2b93-4f10-a6d7-58e0c9b12345", "social_profile_id": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902", "status": "failed", "items": [ { "platform": "linkedin", "social_platform_id": 4, "status": "error", "reason": "Authorization expired", "vendor_error": "The access token is no longer valid." } ] }}social_post.rejected
Tetikleyici: bir onay iş akışı gönderiyi reddetti. Bu, iletimle değil editoryal değerlendirmeyle ilgilidir: gönderi hiçbir platforma ulaşmamıştır.
{ "event": "social_post.rejected", "timestamp": "2026-09-29T09:11:03Z", "account_id": 62570, "location_id": null, "data": { "post_id": "e08b2d97-6f14-4c22-b7a5-9d3e1f6c4a70", "social_profile_id": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902", "status": "rejected", "rejection_reason": "Please use the updated product name." }}social_post.deleted
Tetikleyici: gönderi, POST /social/posts/cancel yoluyla veya zamanlanmış arşivleme taraması sırasında arşivlendi. Yalnızca gerçek bir durum geçişinde tetiklenir; bu nedenle zaten arşivlenmiş bir gönderiyi yeniden arşivlemek hiçbir olay üretmez.
{ "event": "social_post.deleted", "timestamp": "2026-09-30T16:20:41Z", "account_id": 62570, "location_id": null, "data": { "post_id": "e08b2d97-6f14-4c22-b7a5-9d3e1f6c4a70", "social_profile_id": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902", "status": "archived", "archived_at": "2026-09-30T16:20:39" }}social_connection.connected
Tetikleyici: bir marka kanalı, ilk kez bağlanarak veya arşivlenmiş bir bağlantı yeniden kurularak etkin hale geldi. is_reconnect bu iki durumu ayırt eder.
{ "event": "social_connection.connected", "timestamp": "2026-09-27T11:05:22Z", "account_id": 62570, "location_id": null, "data": { "social_profile_id": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902", "connected_account_id": "b81d5b3c-4a90-4f6a-9c11-71e0dd2fa4a7", "platform": "instagram", "display_name": "Jenny Home", "is_reconnect": false }}social_connection.disconnected
Tetikleyici: kanal bir disconnect çağrısıyla bilerek kaldırıldı. Yalnızca kanal gerçekten arşivlendiğinde üretilir; bu nedenle başarısız olan bir bağlantı kesme işlemi yanlış bir olay üretmez.
{ "event": "social_connection.disconnected", "timestamp": "2026-10-04T08:47:10Z", "account_id": 62570, "location_id": null, "data": { "social_profile_id": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902", "connected_account_id": "b81d5b3c-4a90-4f6a-9c11-71e0dd2fa4a7", "platform": "instagram", "display_name": "Jenny Home" }}social_connection.archived
Tetikleyici: kanal istem dışı olarak kaybedildi; platform token'ı geçersiz kıldı veya bir uzlaştırma kontrolünde kanalın artık erişilebilir olmadığı belirlendi. Bunu kimse talep etmemiştir; bu olayı disconnected olayından ayıran da budur.
{ "event": "social_connection.archived", "timestamp": "2026-10-06T02:15:33Z", "account_id": 62570, "location_id": null, "data": { "social_profile_id": "6f2c9a41-7b0e-4d55-9a2f-3c8e1d47b902", "connected_account_id": "2d4e6f80-1c33-4b7a-8e05-9a1b2c3d4e5f", "platform": "facebook", "display_name": "Jenny Home & Co.", "reason": "Access token has been invalidated by the platform." }}Yorum analitiği
Zamanlanmış yorum özetleri, her dönem için konum başına bir olay.
Her iki olay da aynı data yapısını kullanır:
Dönem içinde etkinlik olmayan bir konum hiçbir şey göndermez, ancak anlık görüntüsü hiç ulaşmamış bir konumdan da hiçbir şey alınmaz. Anlık görüntünün eksikliği birden fazla anlama gelebilir ve bu olay grubunda soruna işaret etmeyen açıklama en düşük olasılığa sahiptir. Bu durum şunlardan birini ifade edebilir: etkinlik olmaması; başarısız olan veya zaman aşımına uğrayan bir teslimat (tek bir deneme yapılır ve yeniden denenmez); hesabın webhook kullanma hakkı olmaması, yapılandırılmış bir URL'sinin bulunmaması, doğrulanmamış veya engellenmiş olması nedeniyle teslimatın engellenmesi; ya da burada en olası neden olarak, dakika başına sınır nedeniyle kısa sürede gelen olayların bir bölümünün rate_limited olarak elenmesi.
Sırf anlık görüntü gelmediği için asla sıfır kaydetmeyin. Aynı dönem için GET /locations/{locationId}/review-analytics-overview ile karşılaştırarak doğrulayın ve bu okuma da başarısız olursa dönemi sıfır yerine veri alınamadı olarak bildirin.
review_analytics.daily_snapshot
Tetikleyici: günlük özetleme işi, konum başına günde bir kez.
{ "event": "review_analytics.daily_snapshot", "timestamp": "2026-08-25T02:00:00Z", "account_id": 11073, "location_id": "279381", "data": { "period": "2026-08-24", "granularity": "daily", "total_reviews": 1240, "new_reviews_in_period": 3, "average_rating": 4.6667, "previous_average_rating": 5.0 }}review_analytics.weekly_snapshot
Tetikleyici: haftalık özetleme işi, konum başına haftada bir kez. period, özetlenen haftanın ilk günüdür.
{ "event": "review_analytics.weekly_snapshot", "timestamp": "2026-08-24T02:00:00Z", "account_id": 11073, "location_id": "279381", "data": { "period": "2026-08-17", "granularity": "weekly", "total_reviews": 1237, "new_reviews_in_period": 18, "average_rating": 4.6123, "previous_average_rating": 4.5901 }}Alabileceğiniz ancak uygulamanızı dayandırmamanız gereken olaylar
Platform başka olay grupları da üretir: yorum kampanyaları, sıralamalar, sosyal medya gönderilerinin öne çıkarılması, sosyal medya reklam hesabı durum değişiklikleri, yapay zekâ ile üretilen gönderi fikirleri ve Google Business Profile sahipliği. Bunların Listings API'de yayımlanmış bir REST uç noktası yoktur, burada belgelenmemişlerdir ve yapıları herhangi bir uyumluluk garantisi kapsamında değildir. Tek bir URL bulunduğundan ve olay bazında abonelik olmadığından, işleyiciniz tanımadığı her event değerini yok saymalı ve yine de 200 döndürmelidir.