イベントリファレンス

Listings APIの全26種類のWebhookイベントをリソース別にまとめ、各イベントの正確なフィールドとペイロードの例を示します。

26種類のイベントを、関連するRESTリソースごとにまとめています。このページのすべてのイベントは、単一のWebhook URLに配信されます。イベントごとのサブスクリプションはないため、eventで処理を分岐し、不要なイベントは無視してください。

以下で説明するlisting.submissionを除き、すべてのイベントが標準ペイロードを使用します。data内の任意フィールドが空の場合は、nullとして送信されず、省略されます。

索引

イベントリソース発生条件
listing.submission掲載情報ディレクトリサイトへのサイテーション送信の結果が確定したとき
profile.created拠点拠点が作成されたとき
profile.updated拠点拠点が編集されたとき
profile.deleted拠点拠点がアーカイブされたとき
connection.location_connected接続済みアカウントGoogleまたはFacebookの掲載情報がリンクされたとき
connection.location_disconnected接続済みアカウント掲載情報のリンクが解除されたとき
connection.reauth_required接続済みアカウント認証情報が無効化されたとき
connection.listing_inaccessible接続済みアカウント掲載情報へのアクセスが失われたとき
connection.google_verification_verified接続済みアカウントGoogleでの確認が成功したとき
connection.google_verification_failed接続済みアカウントGoogleでの確認が失敗したとき
interaction.reviewレビューレビューを受信したとき、またはレビューが変更されたとき
interaction.responseレビュー返信が投稿または変更されたとき
local_post.created投稿投稿が作成されたとき
local_post.published投稿投稿がGoogleで公開されたとき
local_post.rejected投稿Googleが投稿を拒否したとき
local_post.deleted投稿投稿が削除されたとき
social_post.createdSocialソーシャル投稿が作成されたとき
social_post.publishedSocial対象のすべてのチャネルでソーシャル投稿が公開されたとき
social_post.failedSocial少なくとも1つのチャネルで公開に失敗したとき
social_post.rejectedSocial承認ワークフローで投稿が却下されたとき
social_post.deletedSocialソーシャル投稿がアーカイブされたとき
social_connection.connectedSocialブランドのチャネルが接続または再接続されたとき
social_connection.disconnectedSocialブランドのチャネルが意図的に削除されたとき
social_connection.archivedSocialブランドのチャネルが意図せず失われたとき
review_analytics.daily_snapshot分析レビューの日次集計が実行されたとき
review_analytics.weekly_snapshot分析レビューの週次集計が実行されたとき

掲載情報

掲載情報のエンドポイントと併用します。特にGET /locations/{locationId}/listings/premiumは、このイベントが通知するサイテーションごとのsyncStatusとlistingUrlを返します。

listing.submission

発生条件: 1つのディレクトリサイトに対する1つの拠点のサイテーション送信が最終状態に達したときです。

最上位レベル:

フィールド型説明
eventstring常にlisting.submissionです。
dataobject以下を参照してください。
statusstringsuccess、incomplete、またはcanceledです。
live_linkstring公開中の掲載情報のURLです。successの場合で、かつURLが判明している場合にのみ含まれます。
error_messagestring送信を完了できなかった理由です。incompleteの場合にのみ含まれます。

data内:

フィールド型説明
business_idinteger拠点の数値IDです。
v4_business_idstringLocation:<id>をbase64でエンコードした、グローバルID形式の値です。
location_idstring同じbase64形式のグローバルIDであり、数字の文字列ではありません。
site.idintegerディレクトリサイトのIDです。
site.namestringディレクトリサイトの名前です。e.g。Yelp。
site.urlstringディレクトリサイトのホームページのURLです。
JSON
{  "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"}

拠点

拠点のライフサイクルのイベントは、createLocation、updateLocation、archiveLocationsと1対1で対応します。拠点単位のイベントであり、location_idは常に数字の文字列です。

profile.created

発生条件: 新しい拠点が作成されたときです。

dataのフィールド型説明
sourcestring作成元を示します。user、api、またはbulk_editです。
JSON
{  "event": "profile.created",  "timestamp": "2026-08-25T10:04:00Z",  "account_id": 11073,  "location_id": "901234",  "data": { "source": "api" }}

profile.updated

発生条件: 既存の拠点の詳細が編集されたときです。

デバウンス処理により、拠点ごとに60秒間につき1回だけ配信され、最初の編集時に配信されます。この期間内の編集に対する配信は抑制され、遅延して配信されるわけではありません。それらのイベントは配信されません。changed_fieldsは、この期間の開始となった編集を示す参考情報として扱い、完全な差分としては扱わないでください。

イベントはこの期間の開始時に届くため、到着時に拠点を再取得しても、最初の編集しか反映されていません。このイベントの配信は1回だけ試行され、再試行されないため、少なくとも60秒後の期間終了後に2回目の再取得を行うよう設定し、タイマーによる拠点データの定期的な照合も行ってください。イベントを受信できなかった場合の復旧を参照してください。

dataのフィールド型説明
sourcestringuser、api、またはbulk_editです。
changed_fieldsstringの配列変更された拠点のフィールド名です。e.g。name、phone、address1。空の場合は省略されます。
JSON
{  "event": "profile.updated",  "timestamp": "2026-08-25T10:06:12Z",  "account_id": 11073,  "location_id": "901234",  "data": {    "source": "user",    "changed_fields": ["name", "phone"]  }}

profile.deleted

発生条件: 拠点がアーカイブされたときです。これは論理削除です。物理削除はなく、アーカイブはcancelArchiveLocationsで取り消せますが、取り消し時にイベントは発生しません。

dataのフィールド型説明
sourcestringuser、api、またはbulk_editです。
JSON
{  "event": "profile.deleted",  "timestamp": "2026-08-25T10:20:44Z",  "account_id": 11073,  "location_id": "901234",  "data": { "source": "user" }}

接続済みアカウント

Google と Facebook の接続ライフサイクルと正常性に関するイベントで、接続済みアカウントのエンドポイントに対応します。対象範囲は拠点単位です。platformは常にgoogleまたはfacebookで、他のプロバイダーではこれらのイベントは発生しません。

connected_account_idは常にキーとして存在しますが、Google のオーナー確認に関する2つのイベントではnullになります。

connection.location_connected

トリガー: Google または Facebook の掲載情報が拠点に関連付けられたときです。

dataフィールド型説明
platformstringgoogleまたはfacebookです。
connected_account_idstring関連付けられた接続済みアカウントです。
JSON
{  "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

トリガー: Google または Facebook の掲載情報と拠点の関連付けが解除されたときです。

dataフィールド型説明
platformstringgoogleまたはfacebookです。
connected_account_idstring関連付けが解除された接続済みアカウントです。
JSON
{  "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

トリガー: 接続済みアカウントの認証情報が無効になったときです。誰かが再認可するまで、この接続では何も同期されません。

dataフィールド型説明
platformstringgoogleまたはfacebookです。
connected_account_idstring再認証が必要な接続済みアカウントです。
reasonstring人が読んで理解できる説明です。取得元から提供されない場合は省略されます。
JSON
{  "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

トリガー: 接続済みアカウントから拠点の掲載情報にアクセスできなくなったときです。reauth_requiredとは異なり、認証情報は引き続き有効でも、その掲載情報へのアクセス権が削除された場合に発生します。

dataフィールド型説明
platformstringgoogleまたはfacebookです。
connected_account_idstringアクセス権を失った接続済みアカウントです。
reasonstring人が読んで理解できる説明です。取得元から提供されない場合は省略されます。
JSON
{  "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

トリガー: 拠点の Google Business Profile のオーナー確認が成功したときです。

dataフィールド型説明
platformstring常にgoogleです。
connected_account_idnullオーナー確認イベントでは常にnullです。
JSON
{  "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

トリガー: Google Business Profile のオーナー確認が失敗の最終状態に達したときです。オーナー確認を開始する REST 呼び出しはありませんが、前述のとおりステータス自体は取得できます。

イベントが発生するのは最終状態のみです。VERIFIEDでは_verifiedイベントが発生し、SUSPENDEDまたはDUPLICATE(failure_type rejected)、およびERROR_WHILE_FETCHING(transient)ではこのイベントが発生します。進行中の状態(PENDING_VERIFICATION、UNDER_REVIEW、NOT_VERIFIED、NOT_CONNECTED)ではイベントが一切発生しないため、イベントがないことから状態を判断することはできません。オーナー確認の進行中は、拠点取得操作でgoogleVerificationStatusをポーリングしてください。

dataフィールド型説明
platformstring常にgoogleです。
connected_account_idnullオーナー確認イベントでは常にnullです。
failure_typestringプロフィールが停止中または重複している場合はrejected、Google から情報を取得できなかった場合はtransientです。再試行が有効なのはtransientの場合のみです。
reasonstring人が読んで理解できる説明です。取得元から提供されない場合は省略されます。
JSON
{  "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."  }}

レビュー

レビューと返信に関するイベントで、返信、返信の編集、返信のアーカイブを含むレビューのエンドポイントに対応します。

Socialカテゴリのレビューは除外され、一切配信されません。

interaction.review

トリガー: レビューが取り込まれたとき、または変更されたときです。

data.interactionフィールド型説明
idstringインタラクションの UUID です。これは今回の変更ではなくレビューを識別するため、レビューが変更されるたびに同じ ID が再度届きます。これを行のキーとして使用し、後続の配信を除外するためには決して使用しないでください。重複と順序を参照してください。
typestringReview.
contentstringレビューの本文です。nullの場合があります。
ratingnumber星による評価です。取得元に星による評価がない場合は、nullになることがあります。
titlestring取得元にタイトルがある場合の、レビューのタイトルです。
author_namestringレビュー投稿者の表示名です。
author_avatarstringレビュー投稿者のアバター URL です。
datestring取得元でレビューが投稿された日時です。ISO-8601 形式で表されます。
sourcestring取得元です。e.g、google.com、facebook.com。
permalinkstring取得元のレビューへのリンクです。
categorystringインタラクションのカテゴリです。Socialは配信前に除外されます。
interaction_statusstringインタラクションのワークフローステータスです。
parent_idstringレビューの場合は常にnullです。
interaction_request_idstringこのインタラクションが属するリクエストです。nullの場合があります。
JSON
{  "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

トリガー: レビューへの返信が投稿、編集、またはアーカイブされたときです。interaction.reviewと同じ構造ですが、typeがResponseであることと、parent_idが返信先のレビューを指すことの2点が異なります。

data.interactionフィールド型説明
typestringResponse.
parent_idstringこの返信の対象となるレビューの UUID です。
contentstring返信の本文です。
ratingnumber返信では常にnullです。

interaction.reviewに記載されているその他のフィールドも、すべて同じ意味で含まれます。

JSON
{  "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"    }  }}

投稿

投稿エンドポイントに対応する、Google Business Profile のローカル投稿です。拠点単位で、location_idは数値を表す文字列です。

4つのイベントは同じdata構造を共有し、任意フィールドが異なります。任意フィールドはすべて、空の場合は省略されます。

dataフィールド型説明
post_idintegerこのアイテムが属する投稿で、作成エンドポイントが返す id です。
post_item_idinteger拠点ごとのアイテムです。20拠点への投稿では20個のアイテムが作成され、イベントはアイテムごとに発生します。
post_typestringSTANDARD、EVENT、またはOFFERです。
post_external_idstringGoogle が投稿に割り当てるリソース名です。Google が投稿を受け付けるまでは含まれません。
published_urlstringブラウザーで開ける URL です。Google が必ず返すとは限らないため、通常は含まれません。対応付けにはpost_external_idを使用してください。
rejection_reasonstringlocal_post.rejectedにのみ含まれます。

local_post.created

トリガー: 投稿アイテムが作成され、Google への送信キューに追加されたときです。まだ公開されていません。

JSON
{  "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

トリガー: Google が投稿を受け付け、公開されたときです。

JSON
{  "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

トリガー: Google が投稿を拒否したか、送信に失敗したときです。

JSON
{  "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

トリガー: 投稿アイテムが削除されたときです。

JSON
{  "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エンドポイントに対応する、ブランド単位のソーシャル投稿と接続のライフサイクルです。イベントは9つあり、投稿用が5つ、接続用が4つです。

account_idとtimestampは通常どおり含まれます。data内の ID は REST API が使用するものと同じ通常の UUID で、文字列として送信されます。

social_post.created

トリガー: ソーシャル投稿が作成されたときです。作成時のみで、既存の投稿を編集しても再発行されません。

dataフィールド型説明
post_idstring投稿の UUID で、作成が返すsocialPostIdと同じです。
social_profile_idstring投稿が属するブランドです。投稿にブランドがない場合はnullです。
statusstring作成時の投稿のステータスです。
created_byinteger投稿を作成したユーザーです。
platform_idsarray of integer投稿先のプラットフォームの内部 ID です。
JSON
{  "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

トリガー: 投稿が完全に公開されたときです。このイベントは、少なくとも1つのチャネルで公開され、どのチャネルでもエラーが発生していない、完全に成功した場合にのみ発行されます。一部のみ公開された場合はこのイベントは発行されず、代わりにsocial_post.failedが発行されます。

dataフィールド型説明
post_idstring投稿の UUID です。
social_profile_idstring投稿が属するブランドです。
statusstring投稿のステータスです。
published_onstring投稿が公開された時刻を ISO-8601 形式で表します。記録されていない場合はnullです。
itemsarray of objectチャネルごとに1つのエントリがあり、フィールドは以下のとおりです。
items[].platformstringプラットフォーム名で、e.gです。instagram。
items[].social_platform_idintegerプラットフォームの内部 ID です。
items[].connected_account_idstring公開に使用した接続の UUID です。
items[].published_urlstring公開されたアイテムの公開先 URL です。
items[].vendor_post_idstring公開されたアイテムにプラットフォームが割り当てた ID です。
items[].statusstringそのチャネルのステータスです。
JSON
{  "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

トリガー: 公開に失敗したときです。これは配信の失敗であり、編集上の判断による却下とは異なります。最後の再試行時に発生するため、投稿に試行回数が残っている間は発行されません。

itemsにはエラーが発生したチャネルのみが含まれるため、2つのプラットフォームで公開され、3つ目で失敗した投稿の場合、このイベントには1つのアイテムが含まれます。

dataフィールド型説明
post_idstring投稿の UUID です。
social_profile_idstring投稿が属するブランドです。
statusstring投稿のステータスです。
itemsarray of object失敗したチャネルごとに1つのエントリがあり、フィールドは以下のとおりです。
items[].platformstringプラットフォーム名です。
items[].social_platform_idintegerプラットフォームの内部 ID です。
items[].statusstringそのチャネルのステータスです。
items[].reasonstring300文字で切り詰められた短い理由です。nullの場合があります。
items[].vendor_errorstringプラットフォームのエラーに基づく、長さを制限し、ユーザーに安全に表示できるようにしたメッセージです。プラットフォームの生のペイロードが含まれることはありません。nullの場合があります。
JSON
{  "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

トリガー: 承認ワークフローで投稿が却下されたときです。配信の失敗ではなく編集上の判断によるもので、投稿はプラットフォームに到達していません。

dataフィールド型説明
post_idstring投稿の UUID です。
social_profile_idstring投稿が属するブランドです。
statusstring投稿のステータスです。
rejection_reasonstringレビュー担当者のコメントです。コメントがない場合はnullです。
JSON
{  "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

トリガー: POST /social/posts/cancelまたは定期的なアーカイブ処理によって、投稿がアーカイブされたときです。実際に状態が変化した場合にのみ発生するため、すでにアーカイブされた投稿を再度アーカイブしても、イベントは発行されません。

dataフィールド型説明
post_idstring投稿の UUID です。
social_profile_idstring投稿が属するブランドです。
statusstring投稿のステータスです。
archived_atstring投稿がアーカイブされた時刻を ISO-8601 形式で表します。記録されていない場合はnullです。
JSON
{  "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

トリガー: 初回の接続、またはアーカイブされていたチャネルの再接続によって、ブランドのチャネルがアクティブになったときです。is_reconnectで両者を区別します。

dataフィールド型説明
social_profile_idstringチャネルが紐付けられているブランドです。
connected_account_idstring接続の UUID で、接続一覧が返すidです。
platformstringプラットフォーム名で、e.gです。instagram。
display_namestringチャネルの表示名です。nullの場合があります。
is_reconnectboolean初回の接続ではfalse、以前アーカイブされたチャネルが復帰した場合はtrueです。
listing_connected_account_idstringチャネルが Listings の接続済みアカウントにも紐付けられている場合にのみ含まれます。それ以外の場合は省略されます。
JSON
{  "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

トリガー: disconnectの呼び出しによってチャネルが意図的に削除されたときです。チャネルが実際にアーカイブされた場合にのみ発行されるため、切断に失敗しても誤ったイベントは発行されません。

dataフィールド型説明
social_profile_idstringチャネルが紐付けられていたブランドです。
connected_account_idstring接続の UUID です。
platformstringプラットフォーム名です。
display_namestringチャネルの表示名です。nullの場合があります。
JSON
{  "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

トリガー: プラットフォームがトークンを無効化したか、整合性確認処理でチャネルにアクセスできなくなったことが検出され、チャネルとの接続が意図せず失われたときです。誰からも要求されていない点が、disconnectedとの違いです。

dataフィールド型説明
social_profile_idstringチャネルが紐付けられていたブランドです。
connected_account_idstring接続の UUID です。
platformstringプラットフォーム名です。
display_namestringチャネルの表示名です。nullの場合があります。
reasonstring接続が失われた理由です。nullの場合があります。
JSON
{  "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."  }}

レビュー分析

定期的なレビュー集計です。イベントは拠点ごと、期間ごとに1件です。

両方のイベントで、dataの構造は共通です。

dataフィールド型説明
periodstring期間の開始日です。形式はYYYY-MM-DDです。
granularitystringdailyまたはweeklyです。
total_reviewsinteger拠点の全期間のレビュー件数です。
new_reviews_in_periodintegerこの期間中に受信したレビューの件数です。
average_ratingnumberこの期間の平均評価です。小数点以下4桁で表します。レビューがなかった場合は0.0です。
previous_average_ratingnumber前の期間の平均評価です。前の期間のデータがない場合は0.0です。

期間中にアクティビティがない拠点ではイベントが生成されませんが、スナップショットが届かなかった拠点でも、受信側では同じ状態になります。スナップショットがないだけでは原因を特定できず、このイベント群では、問題がないと解釈できる可能性が最も低くなります。考えられる原因は、アクティビティがないこと、配信の失敗またはタイムアウト(試行は1回で、再試行はありません)、アカウントにWebhookの利用権限がない、URLが設定されていない、アカウントが未検証またはブロックされていることによる配信の停止、または、このイベント群で最も可能性が高い、1分あたりの上限によって短時間に集中した配信の一部がrate_limitedとして破棄されることです。

スナップショットがないことだけを根拠に、決して0を記録しないでください。同じ期間のGET /locations/{locationId}/review-analytics-overviewと照合し、その取得にも失敗した場合は、その期間を0ではなく取得不可として報告してください。

review_analytics.daily_snapshot

トリガー: 日次集計ジョブです。拠点ごとに1日1回実行されます。

JSON
{  "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

トリガー: 週次集計ジョブです。拠点ごとに週1回実行されます。periodは、集計対象の週の最初の日です。

JSON
{  "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  }}

受信する可能性はあるものの、実装の前提にすべきではないイベント

プラットフォームは、レビューキャンペーン、ランキング、ソーシャル投稿のブースト、ソーシャル広告アカウントのステータス変更、AIによる投稿アイデア、Google Business Profileのオーナー権限に関するイベント群も生成します。これらにはListings APIで公開されているRESTエンドポイントがなく、このドキュメントでは説明しておらず、その構造について互換性は一切保証されません。URLは1つで、イベントごとの購読設定はないため、ハンドラーは認識できないeventを無視し、その場合も200を返す必要があります。