クーポン フィードの統合

オファー

特典の統合により、特定のサービスに特定の期間適用される販売者のプロモーションや割引に関する構造化情報を中継できます。オファーは、実際のオファー(割引率、割引額など)、有効期間(特定の時間、曜日など)、適用可能な用途(特定のサービスでのみ使用可能)、複雑な制限の組み合わせで構成されます。

クーポンの例:

  • 12 月の水曜日と木曜日の午後 12 時~午後 5 時には前菜を半額
  • 母の日のディナー(午後 6 時~午後 10 時)でデザートを 1 つ購入すると、もう 1 つ無料
  • 毎週日曜日の午前 10 時~午後 2 時までブランチ アントレを 500 円引き
  • ウォークイン特典として 10% 割引。プレミアム ユーザー向けの 5% 割引と、アプリ経由で支払った場合の 5% 割引を併用可能。

統合に含めるには、特典が技術データモデルに適合し、資格要件を満たしている必要があります。特典に関するポリシーを確認して、統合がポリシーに準拠していることを確認してください。また、技術要件を満たしていない特典への対処方法についても確認してください。

クーポンの実装

商品情報の統合は、毎日アップロードされる 2 つのフィードで構成されます。このフィードは、高い精度を確保する(つまり、鮮度を保つ)頻度でアップロードされます。

OfferFeed

フィールド名タイプ要件説明
dataオブジェクトの配列
(Offer)

特典

フィールド名タイプ要件説明
offer_id文字列

必須

特典の一意の ID。必須。
entity_ids文字列の配列

この特典に参加している販売者のリスト。
add_on_offer_applicable_to_all_entitiesブール値

true の場合、このオファーはアグリゲータのすべてのエンティティに適用されます。アドオン特典にのみ適用されます。
offer_sourceenum
(OfferSource)

必須

特典は、アグリゲータ、個々の販売者、またはサードパーティがアドオンとして提供できます。必須。
action_typeenum
(ActionType)

必須

特典を提供しているサービス。offer_id は 1 つの action_type にのみ属することができます。特典を複数のサービスタイプで共有できる場合、サービスタイプごとに一意の ID を持つ重複する特典が作成されることが想定されます。必須。
offer_modes列挙型の配列
(OfferMode)

必須

特典を利用できる方法(来店、予約、オンラインなど)。必須。
offer_categoryenum
(OfferCategory)

必須

特典のカテゴリ。必須。
source_assigned_priority数値

ソースによって割り当てられたオファーの優先度レベルを示す負でない整数([1 ~ 100]、1 が最優先)。同じ販売者に対して複数の特典が利用可能な場合、これは特典のランキングのシグナルになります。0 は、優先度が設定されていないことを示します。
offer_detailsオブジェクト
(OfferDetails)

必須

割引、予約費用など、オファーの詳細。必須。
offer_restrictionsオブジェクト
(OfferRestrictions)

必須

特典の制限について説明します。たとえば、定期購入や支払い手段が必要かどうか、この特典を他の特典と組み合わせることができるかどうか(組み合わせられる場合はその種類)などです。必須。
couponオブジェクト
(Coupon)

クーポンの詳細。 offer_category: OFFER_CATEGORY_ADD_ON_COUPON_OFFER の場合に必須。
payment_instrumentobject
(PaymentInstrument)

お支払い方法の詳細。 offer_category: OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER の場合に必須。
subscriptionオブジェクト
(Subscription)

サブスクリプションの詳細。 offer_category が OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER の場合は必須です。
termsオブジェクト
(Terms)

必須

特典の利用規約。 必須。
validity_periodsオブジェクトの配列
(ValidityPeriod)

必須

特典の有効期間。特典が有効な期間(開始時間と終了時間、曜日など)を記述します。必須。
offer_url文字列

販売者の特典ページへの URL。 offer_category: OFFER_CATEGORY_BASE_OFFER の場合は必須です。
tagsenum の配列
(OfferTag)

特典に関連付けられた特別なタグ。「お祭り」、「高評価」、「予約数が多い」などの特別オファーを特定するために使用されます。
brand_id文字列

特典に関連付けられているブランドを指定します。設定しない場合は、デフォルトのブランドが使用されます。
availability_levelenum
(AvailabilityLevel)

特典の提供状況レベル。

OfferDetails

フィールド名タイプ要件説明
offer_display_text文字列

必須

オファー プロバイダが検索結果ページで顧客に表示するオファー テキスト。これは、ユーザーに表示される内容と完全に一致するとは限りません。他のメタデータを使用して書き換えや言い換えを行う場合があります。必須。
oneOf
(offer_specification)

必須

この oneOf のフィールドは 1 つだけ設定できます。
max_discount_valueオブジェクト
(Money)

利用できる最大割引額。たとえば、10% 割引(最大 100 ドル)などです。
min_spend_valueオブジェクト
(Money)

割引を利用するための最小利用額。たとえば、合計金額が 10, 000 円以上の場合に 10% 割引。
booking_costオブジェクト
(Money)

このオファーを予約するための費用。たとえば、15 ドルでテーブルを予約すると、最終的な請求額から 100 ドルが割り引かれます。
booking_cost_unitenum
(FeeUnit)

予約費用の単位。(例: 1 人あたり、1 回の取引あたり)。
convenience_feeオブジェクト
(Fee)

booking_cost_adjustableブール値

予約費用が調整可能かどうか。つまり、予約費用が最終請求書から差し引かれるかどうか。例: 予約するとディナーが 30% 割引。予約費用は $15 で、最終請求額に適用されます。最終的な請求額: 合計費用 - 30% - $15
additional_feesオブジェクトの配列
(AdditionalFee)

ユーザーに請求される追加料金。 例: 利便性、取り扱い、配送、梱包、サービス手数料など。
offer_discount_typeenum
(OfferDiscountType)

割引の種類。
gift_card_infoオブジェクト
(GiftCardInfo)

ギフトカードのお得な情報に固有の詳細。

金額

金額をその通貨タイプで表します。

フィールド名タイプ要件説明
currency_code文字列

ISO 4217 で定義されている 3 文字の通貨コード。
units数値

金額の整数部分。たとえば、currencyCode が "USD" の場合、1 単位は 1 米ドルです。
nanos数値

金額のナノ単位(10 のマイナス 9 乗)の数。値は -999,999,999 以上 +999,999,999 以下でなければなりません。 units が正の場合、nanos には正数または 0 を指定します。units がゼロの場合、nanos には正数、0、または負数を指定できます。units が負の場合、nanos は負数または 0 を指定します。たとえば、$-1.75 は units = -1、nanos = -750,000,000 と表されます。

手数料

フィールド名タイプ要件説明
unitenum
(FeeUnit)

typeenum
(FeeType)

oneOf
(cost)

この oneOf のフィールドは 1 つだけ設定できます。

MoneyRange

フィールド名タイプ要件説明
min_amountオブジェクト
(Money)

max_amountオブジェクト
(Money)

AdditionalFee

フィールド名タイプ要件説明
name文字列

必須

追加料金の名前。例: 手数料、取り扱い手数料など。必須。
feeオブジェクト
(Fee)

GiftCardInfo

フィールド名タイプ要件説明
oneOf
(denomination_type)

この oneOf のフィールドは 1 つだけ設定できます。

FixedDenominations

フィールド名タイプ要件説明
amountsオブジェクトの配列
(Money)

使用可能なすべての個別の額面([100, 500, 1000] など)のリスト。

OfferRestrictions

フィールド名タイプ要件説明
combinable_with_other_offersブール値

この特典を他の特典と併用できるかどうか。 true の場合、パートナーはこの特典を組み合わせることができる特典を指定できます。combinable_offer_categories と combinable_offer_ids の両方が設定されている場合、上記の条件のいずれかに一致するオファーはすべて組み合わせ可能になります。
combinable_offer_categories列挙型の配列
(OfferCategory)

この特典と併用できる特典タイプのリスト。たとえば、このクーポンは他のクーポンと併用できる場合があります。combinable_with_other_offers が true で、このフィールドが設定されていない場合、すべてのタイプを組み合わせることができます。
combinable_offer_ids文字列の配列

この特典と組み合わせることができる offer_id のリスト。一部の特典は、特定の他の offer_id(親特典と見なされる)とのみ組み合わせることができます。combinable_with_other_offers が true で、このフィールドが設定されていない場合、すべてのオファー ID が組み合わせ可能になります。
inclusionsオブジェクトの配列
(OfferCondition)

特典が有効になるための条件のリスト(ノンアルコール飲料、食べ物など)。
exclusionsオブジェクトの配列
(OfferCondition)

特典が無効になる条件のリスト(例: ビュッフェ、セットメニュー、カクテル)。
min_guest数値

特典を利用するために必要な最小人数。 注: このフィールドはレストランの予約にのみ適用され、他の業種では使用しないでください。
food_offer_restrictionsオブジェクト
(FoodOfferRestrictions)

食品の特典に固有の制限。
max_redemption_count数値

この特典を利用できる回数に関する制限。値 0 は、上限がないことを指定します。たとえば、値が 3 の場合、ユーザーはこの特典を 3 回利用できます。
max_total_discount_valueオブジェクト
(Money)

このオファーの複数の取引で利用できる最大割引額。
special_conditions文字列の配列

ユーザーに表示する必要があるこの特典の特別な条件。例: 「[地域] でのお支払いにのみ有効」、「オンライン決済は対象外」、「ギフト券はセール期間中に使用可能」

OfferCondition

フィールド名タイプ要件説明
description文字列

FoodOfferRestrictions

フィールド名タイプ要件説明
meal_types列挙型の配列
(MealType)

特典を適用できる食事の種類(ランチ、ディナーなど)。 設定しない場合、特典はすべての食事タイプに適用できます。
restricted_to_certain_coursesブール値

オファーを特定のコースにのみ適用できるかどうか。

クーポン

フィールド名タイプ要件説明
text文字列

特典提供者がユーザーに表示するクーポン テキスト。
code文字列

必須

特典を利用するにはクーポンコードが必要です。 必須。

PaymentInstrument

フィールド名タイプ要件説明
itemsオブジェクトの配列
(PaymentInstrumentItem)

必須

特典を利用するために使用できるお支払い方法のリスト。必須。
provider_name文字列

お支払い方法プロバイダの名前。銀行パートナー、銀行の名前など(例: American Express、HDFC、ICICI)。

PaymentInstrumentItem

フィールド名タイプ要件説明
typeenum
(PaymentInstrumentType)

必須

支払い方法のタイプ。必須。
name文字列

必須

クレジット カードの名前など、支払い方法アイテムの名前。例: HDFC Infinia、American Express Platinum。必須。

サブスクリプション

フィールド名タイプ要件説明
name文字列

必須

サブスクリプションの名前。必須。
subscription_auto_addedブール値

ユーザーがこの特典を利用したときに定期購入が自動的に追加されるかどうか
costオブジェクト
(Money)

必須

サブスクリプションの費用。必須。
subscription_durationオブジェクト
(Duration)

必須

subscription_cost でサブスクリプションが有効な期間。必須。
terms_and_conditions_url文字列

このサブスクリプションに関連するパートナーの利用規約の URL。

所要時間

フィールド名タイプ要件説明
seconds数値

期間の秒数(符号付き)。-315,576,000,000 ~+315,576,000,000 の範囲(境界を含む)になります。注: これらの境界は、60 秒/分 * 60 分/時間 * 24 時間/日 * 365.25 日/年 * 10,000 年から計算されます。
nanos数値

期間のナノ秒分解能による、秒の符号付き小数以下部分。1 秒未満の期間は、0 の seconds フィールドと、正または負の nanos フィールドで表されます。1 秒以上の期間の場合、nanos フィールドのゼロ以外の値は seconds フィールドと同じ符号にする必要があります。-999,999,999 ~+999,999,999 の範囲(境界を含む)にする必要があります。

利用規約

フィールド名タイプ要件説明
url文字列

パートナーの利用規約の URL。
restricted_to_certain_usersブール値

特典が特定のユーザーに限定されているかどうか。
terms_and_conditions文字列

パートナーが提供する主な利用規約のテキスト。
additional_terms_and_conditions文字列の配列

パートナーの主な利用規約に加えて、追加の利用規約。

ValidityPeriod

フィールド名タイプ要件説明
valid_periodオブジェクト
(ValidityRange)

特典が有効な開始タイムスタンプと終了タイムスタンプ。これらの時間は異なる日を表す必要があります。つまり、開始時間は 00:00(1 日の始まり)、終了時間は有効期間が終了する日の 00:00(含まない)である必要があります。
time_of_dayオブジェクトの配列
(TimeOfDayWindow)

特定の日の有効な時間間隔と、クーポンを利用できる日を指定します。午前 0 時をまたぐ期間(午後 10 時から午前 2 時など)の場合は、各日に別々の時間帯を使用します。1 つは午後 11 時 59 分 59 秒に終了し、もう 1 つは翌日の午前 0 時に開始します。例: 月曜日: 午前 10 時~午後 5 時 火曜日: 午前 10 時~午後 2 時 火曜日: 午後 5 時~午後 7 時 水曜日、木曜日、金曜日、土曜日、日曜日: 午後 3 時~午後 7 時 設定されていない場合、特典は valid_period 内のすべての時間で利用可能です。
time_exceptionsオブジェクトの配列
(ValidTimeException)

上記の valid_period と valid_time_of_week の例外を指定します。
date_exceptionsオブジェクトの配列
(Date)

上記の valid_period と time_of_day の例外を日数で指定します
validity_scopeenum
(ValidityScope)

有効期間の範囲を指定します。
validity_duration_in_days数値

購入したクーポンが有効な期間(日数)。

ValidityRange

半開区間のタイムスタンプ範囲。

フィールド名タイプ要件説明
valid_from_timeオブジェクト
(Timestamp)

必須

範囲の開始時刻(この時刻を含む)。必須。
valid_through_timeオブジェクト
(Timestamp)

範囲の終了時間(この時間は含まれません)。設定されていない場合、この期間は終了しません。 省略可。

タイムスタンプ

フィールド名タイプ要件説明
seconds数値

UNIX エポック 1970-01-01T00:00:00Z からの UTC 時刻の秒数を表します。-62135596800 ~ 253402300799 の範囲(両端を含む)にする必要があります(これは 0001-01-01T00:00:00Z ~ 9999-12-31T23:59:59Z に対応します)。
nanos数値

非負の小数以下の秒数(ナノ秒単位)。このフィールドは、秒の代替ではなく、期間のナノ秒部分です。小数以下を含む負の秒の値は、時間を前方にカウントする負ではない nanos 値を持つ必要があります。0 ~ 999,999,999 の範囲(境界を含む)になります。

TimeOfDayWindow

TimeWindow オブジェクトは、ユーザーの注文を配置または処理できるウィンドウのリストを記述する複合エンティティです。

フィールド名タイプ要件説明
time_windowsオブジェクト
(TimeOfDayRange)

必須

注文の受付/履行が可能な時間帯。必須。
day_of_weekenum の配列
(DayOfWeek)

ウィンドウが適用される 1 週間の曜日。設定されていない場合は、すべての曜日に適用されます。省略可。
day_of_monthオブジェクトの配列
(DayOfMonthRange)

ウィンドウが適用される月の日。設定しない場合は、1 か月のすべての日が対象になります。省略可。

TimeOfDayRange

半開区間の期間。

フィールド名タイプ要件説明
open_timeobject
(TimeOfDay)

範囲の日の開始時間(この値を含む)を示す Time。設定しない場合、00:00:00 になります。省略可。
close_timeオブジェクト
(TimeOfDay)

範囲の終了時刻(端を含まない)を示す Time。設定しない場合、23:59:59 を意味します。省略可。

TimeOfDay

フィールド名タイプ要件説明
hours数値

時間(24 時間形式)。0 以上、通常は 23 以下の値を指定する必要があります。API ではビジネスの終了時間などのシナリオにおいて、値 "24:00:00" を許可することもできます。
minutes数値

分。0 以上 59 以下にする必要があります。
seconds数値

秒。0 以上、通常は 59 以下の値を指定する必要があります。API がうるう秒を許可する場合、値 60 が許可されます。
nanos数値

秒の小数部分(ナノ秒単位)。0 以上 999,999,999 以下にする必要があります。

DayOfMonthRange

1 年のすべての月に適用される月の日の範囲。

フィールド名タイプ要件説明
valid_from_day数値

必須

範囲の開始日(この日を含む)。必須。
valid_through_day数値

範囲の終了日(指定日も期間に含む)。 設定されていない場合、この範囲は 1 日(valid_from_day)を表します。省略可。

ValidTimeException

フィールド名タイプ要件説明
exceptional_periodオブジェクト
(ValidityRange)

特典が無効になる開始タイムスタンプと終了タイムスタンプ。これらの時間は、異なる日を表す必要があります。つまり、開始時間は 00:00(1 日の始まり)で、終了時間は例外期間が終了する日の 00:00(含まない)にする必要があります。

日付

フィールド名タイプ要件説明
year数値

その日付の年。1 ~ 9999、または年のない日付を指定する場合は 0 にする必要があります。
month数値

1 年の中の月。1 ~ 12、または月と日のない年を指定する場合は 0 にする必要があります。
day数値

1 月の中の日付。1 ~ 31 で、その年と月で有効な値にする必要があります。または、日が重要でない場合は年のみか年と月を指定するには 0 にする必要があります。

OfferSource

名前説明
OFFER_SOURCE_UNSPECIFIED
OFFER_SOURCE_AGGREGATOR

ActionType

オファーのフルフィルメント モードを表します。複数のフルフィルメント モードで共有できる特典の場合、フルフィルメント モードごとに重複する特典が作成されることが想定されます。

名前説明
ACTION_TYPE_UNSPECIFIED
ACTION_TYPE_FOOD_DELIVERYこの特典は、フード デリバリー サービスに適用されます。
ACTION_TYPE_FOOD_TAKEOUTこの特典は、料理のテイクアウトまたはテイクアウトの注文に適用されます。
ACTION_TYPE_DININGこの特典は、レストランでの食事に適用されます。
ACTION_TYPE_APPOINTMENTこの特典は、予約サービスに適用されます。
ACTION_TYPE_SHOPPING_IN_STOREこの特典は、オフラインの実店舗での購入に適用されます。

OfferMode

ユーザーが特典を利用できる方法またはチャネルを指定します。

名前説明
OFFER_MODE_OTHER他の特定のモードでカバーされていないフルフィルメント方法に使用します。
OFFER_MODE_WALK_INこの特典は、事前予約なしでご来店いただいた場合にご利用いただけます。
OFFER_MODE_FREE_RESERVATIONこの特典は、前払い料金が不要な予約を行った場合に適用されます。
OFFER_MODE_PAID_RESERVATIONこの特典は、事前支払いが必要な予約を行う場合に適用されます。
OFFER_MODE_ONLINE_ORDERこの特典は、ウェブサイトまたはデジタル プラットフォームから注文した場合に有効です。
OFFER_MODE_GIFT_CARD_PURCHASEギフトカードの購入が、取引を獲得するために必要な主な手順であることを示します。

OfferCategory

特典のカテゴリ。基本特典とは、すべてのお客様が利用できる標準的な特典($100 以上のご利用で 10% 割引など)です。クーポンまたはお支払い方法で制限されている基本特典には、それぞれのフィールドが設定されます。また、ADD_ON_PAYMENT_OFFER などのアドオン x オファーもあります。このようなオファーを他のオファーに追加して、追加の割引を受けることができます。

名前説明
OFFER_CATEGORY_UNSPECIFIEDフィードでは、UNSPECIFIED またはデフォルトの列挙値を使用しないでください。
OFFER_CATEGORY_BASE_OFFER
OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER
OFFER_CATEGORY_ADD_ON_COUPON_OFFER
OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER
OFFER_CATEGORY_ADD_ON_FEE_REDUCTION_OFFER

FeeUnit

名前説明
FEE_UNIT_UNSPECIFIEDUNSPECIFIED またはデフォルトの列挙値は、フィードで使用しないでください。
FEE_UNIT_PER_GUEST
FEE_UNIT_PER_TRANSACTION

FeeType

名前説明
FEE_TYPE_UNSPECIFIEDUNSPECIFIED またはデフォルトの列挙値は、フィードで使用しないでください。
FEE_TYPE_FIXED
FEE_TYPE_VARIABLE

OfferDiscountType

名前説明
OFFER_DISCOUNT_TYPE_UNSPECIFIED
OFFER_DISCOUNT_TYPE_INSTANT_DISCOUNT
OFFER_DISCOUNT_TYPE_CASHBACK
OFFER_DISCOUNT_TYPE_REWARD_POINT

MealType

名前説明
MEAL_TYPE_UNSPECIFIEDUNSPECIFIED またはデフォルトの列挙値は、フィードで使用しないでください。
MEAL_TYPE_BREAKFAST
MEAL_TYPE_LUNCH
MEAL_TYPE_DINNER

PaymentInstrumentType

名前説明
PAYMENT_INSTRUMENT_TYPE_UNSPECIFIEDUNSPECIFIED またはデフォルトの列挙値は、フィードで使用しないでください。
PAYMENT_INSTRUMENT_CREDIT_CARD
PAYMENT_INSTRUMENT_DEBIT_CARD
PAYMENT_INSTRUMENT_BANK_ACCOUNT
PAYMENT_INSTRUMENT_UPI
PAYMENT_INSTRUMENT_ONLINE_WALLET
PAYMENT_INSTRUMENT_NETBANKING

DayOfWeek

曜日を表します。

名前説明
DAY_OF_WEEK_UNSPECIFIED曜日は指定されていません。
MONDAY月曜日
TUESDAY火曜日
WEDNESDAYWednesday
THURSDAY木曜日
FRIDAY金曜日
SATURDAY土曜日
SUNDAY日曜日

ValidityScope

有効期間のスコープ。つまり、この有効期間が適用されるアクション。

名前説明
VALIDITY_SCOPE_UNSPECIFIED
VALIDITY_SCOPE_CLAIM
VALIDITY_SCOPE_REDEEM

OfferTag

名前説明
OFFER_TAG_UNSPECIFIEDUNSPECIFIED またはデフォルトの列挙値は、フィードで使用しないでください。
OFFER_TAG_NEW_YEAR_SPECIAL
OFFER_TAG_VALENTINES_SPECIAL

AvailabilityLevel

商品の在庫状況を示します。

名前説明
AVAILABILITY_LEVEL_UNSPECIFIED
AVAILABILITY_LEVEL_LOW特典の在庫が少なくなっていることを示します。在庫がなくなる前に特典を利用することをおすすめします。 MEDIUM と HIGH は後で追加される可能性があります。

offer_specification

割引は、合計値から差し引かれる割合または固定値にすることができます。例: 1. 最終請求額から 10% 割引。 2. 15 ドル割引。 販売者は、関連する仕様フィールドを使用して、「1 つ購入すると 1 つ無料」などのカスタム割引を提供することもできます。必須。

フィールド名タイプ要件説明
discount_percent数値

discount_value、other_offer_detail_text とは相互に排他的です。

請求額の割引率。[0, 100] 食事全体に適用される 1+1 または 50% オフの特典(1+1 ビュッフェ、請求額全体が 1+1、セットメニューが 1+1 など)の場合、この値は 50 に設定できます。
discount_valueオブジェクト
(Money)

discount_percent、other_offer_detail_text とは相互に排他的です。

割引の固定値。
other_offer_detail_text文字列

discount_percent、discount_value とは相互に排他的です。

割引を説明する自由形式のテキスト。特定の 1+1 特典(1+1 ドリンク、+1 メインコース、1+1 選択メニュー項目など)については、ここに詳細を記載する必要があります。

費用

フィールド名タイプ要件説明
amountオブジェクト
(Money)

amount_range とは相互に排他的です

amount_rangeオブジェクト
(MoneyRange)

amount とは相互に排他的です

denomination_type

フィールド名タイプ要件説明
fixed_denominationsオブジェクト
(FixedDenominations)

custom_range とは相互に排他的です

ギフトカードが特定の固定金額で利用可能な場合に使用します。
custom_rangeオブジェクト
(MoneyRange)

fixed_denominations とは相互に排他的です

ブランドが、定義された範囲内でユーザーがカスタム(フレキシブル)額面を選択できるようにする場合に使用します。

フィードのアップロード

特典フィードは、Generic フィード SFTP サーバーにアップロードする必要があります。汎用フィードの SFTP サーバーの使用方法に関するチュートリアルの手順に沿って、記述子ファイルで name を google.offer に設定します。

アップロードの頻度

一般的に、Google は 1 日に 1 回のフィード アップロードを想定しています。一貫して高い精度を確保するために、販売者側でのオファーの更新頻度に応じて、頻度を増減できます。Google の担当者にご相談ください。

データが Google に表示されるまでに数時間かかります。

特典の分類

  • OFFER_CATEGORY_BASE_OFFER: 他の特典と組み合わせずに、単独で利用できる特典。これには、次のものが含まれます。
    • 請求額全体に対する一律の割引(20% オフなど)
    • 定期購入特典(例: メンバーシップ登録でデザートを無料サービス)
    • レストランに他のベース オファーがない場合の支払いオファー
    • 注: プラットフォーム全体の手数料免除または手数料割引の特典は、基本特典として設定しないでください。
  • アドオン特典: 基本特典の利用を必要とする特典。たとえば、次のような要件があります。
    • OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER(例: 特定のクレジット カードでさらに 10% オフ)
    • OFFER_CATEGORY_ADD_ON_COUPON_OFFER(特定のクーポンコードでドリンク 1 杯無料など)
    • OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER(例: 登録者はさらに 10% オフ)
    • OFFER_CATEGORY_ADD_ON_FEE_REDUCTION_OFFER(例: 送料無料、割引料金)

その他の考慮事項:

  • プラットフォーム全体の料金免除または割引特典は、基本特典(OFFER_CATEGORY_BASE_OFFER)として設定しないでください。別の有効な基本特典を補完する OFFER_CATEGORY_ADD_ON_FEE_REDUCTION_OFFER としてのみ設定してください。
  • レストランに基本特典が設定されていない場合、アドオン特典は表示されません。 基本特典がない場合、別の特典に追加する必要なく申請できる支払い、定期購入、クーポンの特典は、OFFER_CATEGORY_BASE_OFFER としてタグ付けする必要があります。
    • タイプに応じて、PaymentInstrument、Subscription、または Coupon の関連データを設定する必要があります。
    • パートナーは、基本特典とアドオン特典の両方として機能するシナリオに対応するため、これらの特典をそれぞれ 2 つずつ提供する必要があります。その後、entity_ids または add_on_offer_applicable_to_all_entities を使用して、複数のレストランに対してアドオン特典のコピーを設定できます。
  • レストランに、スタック可能な複数の基本オファーがある場合、すべての基本オファーを OFFER_CATEGORY_BASE_OFFER としてタグ付けする必要があります。また、支払い、定期購入、クーポンのオファーである基本オファーは、関連するアドオン特典タイプとして追加で送信する必要があります。
  • ValidityPeriod は、有効な基本特典がない場合にのみ、アドオン特典を基本特典として有効にするために使用する必要があります。
  • お支払い方法による同一特典の統合: 複数のお支払い方法でまったく同じ割引額が共有されている場合(クレジット カード、デビットカード、ネット バンキングのすべてで 5% 割引が提供されている場合など)、重複する特典を個別に送信するのではなく、1 つの統合された Offer オブジェクトにグループ化します。これを行うには、payment_instrument.items リストに該当するすべての支払い方法を入力します。これにより、Google インターフェースのレイアウトの乱雑さが軽減され、重複制限の過剰な適用によるランキングの低下を防ぐことができます。

シナリオ例:

  • 特定のクレジット カードで支払うと 5% 割引になり、特定のクーポンコードで無料のドリンクが提供されるレストラン

    • クレジット カードの 5% 割引特典は、2 つのコピーとして送信する必要があります。1 つは OFFER_CATEGORY_BASE_OFFER のタグを付け、もう 1 つは OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER のタグを付け、PaymentInstrument の詳細を含めます。
    • クーポンコード付きのドリンク無料特典は、Coupon の詳細を含めて OFFER_CATEGORY_ADD_ON_COUPON_OFFER として送信する必要があります。
  • あるレストランでは、予約なしで来店した場合は 10% 割引、特定のクレジット カードで支払った場合は 5% 割引が適用され、これらは併用できます。

    • 10% のウォークイン特典には OFFER_CATEGORY_BASE_OFFER のタグを付ける必要があります。
    • 5% オフのクレジット カード特典には 2 つのコピーが必要で、1 つは OFFER_CATEGORY_BASE_OFFER、もう 1 つは OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER のタグを付ける必要があります。
  • あるレストランでは、平日のランチのみ 10% 割引、特定のクレジット カードで支払う場合はいつでも 5% 割引を提供しています。

    • 10% 割引の特典では、平日のレストランのランチタイムのみを示すように ValidityPeriod を設定する必要があります。
    • クレジット カードの 5% 割引特典は 2 部送付する必要があります。
      • 1 つのコピーには、PaymentInstrument の詳細を含む OFFER_CATEGORY_BASE_OFFER のタグを付ける必要があります。ValidityPeriod は、ランチ 10% 割引の特典が有効な平日のランチタイムを除外するように設定する必要があります。
      • 1 つのコピーには、PaymentInstrument の詳細を含む OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER のタグを付ける必要があります。
    • このレストランの他のすべての支払い特典には、OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER のタグを付ける必要があります。

開発とリリースのプロセス

統合の全体を通して、パートナー ポータルは、開発に基づく情報とフィードバックを提供して、統合を支援します。開発プロセスは次のフローに沿って行われます。

  • 統合は最初にサンドボックス環境で開発されます。Google サンドボックス環境では、本番環境のエクスポート(または本番環境のデータを直接)を使用する必要があります。これにより、開発ですべてのエッジケースをキャッチし、Google がデータ品質を評価して、データモデルに基づいてより適切にサポートできるようになります。
  • Google サンドボックス環境で販売者、サービス、クーポンの完全なフィードを毎日定期的にアップロードすると、Google チームによる評価が行われます。Google チームから承認が得られたら、コードを本番環境にプッシュし、商品データの Google 本番環境への送信を開始できます。
  • 本稼働環境の統合を完全にテストした後、Google チームによってもテストされます。すべてのテストが完了すると、統合が開始されます。

モニタリング

優れたユーザー エクスペリエンスを提供するため、Google は、提供された特典が有効かつ正確で、リリース前後のポリシー基準を満たしていることを確認します。そのため、Google は人間による審査と自動システムによる審査を組み合わせて使用します。これらの審査の結果は、アクション センターのオファー ダッシュボード(本番環境のみ)で確認できます。このモニタリングの結果は、オファーのランキングに影響を与える可能性があります。

特典を含むページ全体が 5 秒以内に読み込まれるようにしてください。そうでない場合、失敗と見なされ、Bad link のフラグが付けられます。

自動チェック(クローラー)

Google の品質チームがクローラーを実装します。クローラーは、ウェブブラウザを自動化してクリックを実行し、品質テストのみを目的として特典情報を抽出するスクリプトです。

クエリ数

たとえば、1 日に 5,000 回のチェックを送信することにした場合、1 日に 5,000 回(1 日を通して均等に分散され、約 17 秒に 1 回)、クローラは一般ユーザーが行う次のすべてのアクションを実行します。

  • Google 検索から開始し、パートナー リンクをクリックします。
  • 特典情報を確認します。
  • オファーに予約が必要な場合は、予約フローに進み、指定された時間にオファーが利用可能であることを確認します(予約は行われません)。

ウェブ スクレイパーの検出

ウェブ スクレイパーが禁止されないように(禁止されると、特典が利用できないと判断される可能性があります)、システムが Google のウェブ スクレイパーによるページへのクエリを常に許可するようにしてください。Google のウェブ スクレイパーを識別するには:

  • ウェブ スクレイパーのユーザー エージェントには「Google-Offers」という文字列が含まれます。
    • 例: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko; Google-Offers) Chrome/104.0.5112.101 Safari/537.36
  • また、Googlebot などの Google クローラーを確認するで推奨されているように、リバース DNS を使用して、呼び出しが Google から送信されているかどうかを確認することもできます。この例では、リバース DNS の解決は google-proxy-***-***-***-***.google.com というパターンに従います。

技術的な動作

キャッシュ

パートナーのウェブサイトの負荷を軽減するため、Google のクローラーは通常、レスポンスに含まれる標準の HTTP キャッシュ保存ヘッダーをすべて尊重するように構成されています。つまり、正しく構成されたウェブサイトでは、変更がほとんどないコンテンツ(JavaScript ライブラリなど)を繰り返し取得することを回避できます。キャッシュ保存の実装方法について詳しくは、HTTP キャッシュ保存のドキュメントをご覧ください。