オファー
特典の統合により、特定のサービスに特定の期間適用される販売者のプロモーションや割引に関する構造化情報を中継できます。オファーは、実際のオファー(割引率、割引額など)、有効期間(特定の時間、曜日など)、適用可能な用途(特定のサービスでのみ使用可能)、複雑な制限の組み合わせで構成されます。
クーポンの例:
- 12 月の水曜日と木曜日の午後 12 時~午後 5 時には前菜を半額
- 母の日のディナー(午後 6 時~午後 10 時)でデザートを 1 つ購入すると、もう 1 つ無料
- 毎週日曜日の午前 10 時~午後 2 時までブランチ アントレを 500 円引き
- ウォークイン特典として 10% 割引。プレミアム ユーザー向けの 5% 割引と、アプリ経由で支払った場合の 5% 割引を併用可能。
統合に含めるには、特典が技術データモデルに適合し、資格要件を満たしている必要があります。特典に関するポリシーを確認して、統合がポリシーに準拠していることを確認してください。また、技術要件を満たしていない特典への対処方法についても確認してください。
クーポンの実装
商品情報の統合は、毎日アップロードされる 2 つのフィードで構成されます。このフィードは、高い精度を確保する(つまり、鮮度を保つ)頻度でアップロードされます。
- 次のいずれか:
- 販売者フィード(
Merchant構成を使用) - または
エンティティ フィード
(
Generic構成を使用)
- 販売者フィード(
- および
特典フィード
(
Generic構成を使用)
OfferFeed
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
data | オブジェクトの配列(Offer) |
特典
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
offer_id | 文字列 | 必須 | 特典の一意の ID。必須。 |
entity_ids | 文字列の配列 | この特典に参加している販売者のリスト。 | |
add_on_offer_applicable_to_all_entities | ブール値 | true の場合、このオファーはアグリゲータのすべてのエンティティに適用されます。アドオン特典にのみ適用されます。 | |
offer_source | enum(OfferSource) | 必須 | 特典は、アグリゲータ、個々の販売者、またはサードパーティがアドオンとして提供できます。必須。 |
action_type | enum(ActionType) | 必須 | 特典を提供しているサービス。offer_id は 1 つの action_type にのみ属することができます。特典を複数のサービスタイプで共有できる場合、サービスタイプごとに一意の ID を持つ重複する特典が作成されることが想定されます。必須。 |
offer_modes | 列挙型の配列(OfferMode) | 必須 | 特典を利用できる方法(来店、予約、オンラインなど)。必須。 |
offer_category | enum(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_instrument | object(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 の場合は必須です。 | |
tags | enum の配列(OfferTag) | 特典に関連付けられた特別なタグ。「お祭り」、「高評価」、「予約数が多い」などの特別オファーを特定するために使用されます。 | |
brand_id | 文字列 | 特典に関連付けられているブランドを指定します。設定しない場合は、デフォルトのブランドが使用されます。 | |
availability_level | enum(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_unit | enum(FeeUnit) | 予約費用の単位。(例: 1 人あたり、1 回の取引あたり)。 | |
convenience_fee | オブジェクト(Fee) | ||
booking_cost_adjustable | ブール値 | 予約費用が調整可能かどうか。つまり、予約費用が最終請求書から差し引かれるかどうか。例: 予約するとディナーが 30% 割引。予約費用は $15 で、最終請求額に適用されます。最終的な請求額: 合計費用 - 30% - $15 | |
additional_fees | オブジェクトの配列(AdditionalFee) | ユーザーに請求される追加料金。 例: 利便性、取り扱い、配送、梱包、サービス手数料など。 | |
offer_discount_type | enum(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 と表されます。 |
手数料
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
unit | enum(FeeUnit) | ||
type | enum(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
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
type | enum(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_scope | enum(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_week | enum の配列(DayOfWeek) | ウィンドウが適用される 1 週間の曜日。設定されていない場合は、すべての曜日に適用されます。省略可。 | |
day_of_month | オブジェクトの配列(DayOfMonthRange) | ウィンドウが適用される月の日。設定しない場合は、1 か月のすべての日が対象になります。省略可。 |
TimeOfDayRange
半開区間の期間。
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
open_time | object(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_UNSPECIFIED | UNSPECIFIED またはデフォルトの列挙値は、フィードで使用しないでください。 |
FEE_UNIT_PER_GUEST | |
FEE_UNIT_PER_TRANSACTION |
FeeType
| 名前 | 説明 |
|---|---|
FEE_TYPE_UNSPECIFIED | UNSPECIFIED またはデフォルトの列挙値は、フィードで使用しないでください。 |
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_UNSPECIFIED | UNSPECIFIED またはデフォルトの列挙値は、フィードで使用しないでください。 |
MEAL_TYPE_BREAKFAST | |
MEAL_TYPE_LUNCH | |
MEAL_TYPE_DINNER |
PaymentInstrumentType
| 名前 | 説明 |
|---|---|
PAYMENT_INSTRUMENT_TYPE_UNSPECIFIED | UNSPECIFIED またはデフォルトの列挙値は、フィードで使用しないでください。 |
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 | 火曜日 |
WEDNESDAY | Wednesday |
THURSDAY | 木曜日 |
FRIDAY | 金曜日 |
SATURDAY | 土曜日 |
SUNDAY | 日曜日 |
ValidityScope
有効期間のスコープ。つまり、この有効期間が適用されるアクション。
| 名前 | 説明 |
|---|---|
VALIDITY_SCOPE_UNSPECIFIED | |
VALIDITY_SCOPE_CLAIM | |
VALIDITY_SCOPE_REDEEM |
OfferTag
| 名前 | 説明 |
|---|---|
OFFER_TAG_UNSPECIFIED | UNSPECIFIED またはデフォルトの列挙値は、フィードで使用しないでください。 |
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 | 数値 |
| 請求額の割引率。[0, 100] 食事全体に適用される 1+1 または 50% オフの特典(1+1 ビュッフェ、請求額全体が 1+1、セットメニューが 1+1 など)の場合、この値は 50 に設定できます。 |
discount_value | オブジェクト(Money) |
| 割引の固定値。 |
other_offer_detail_text | 文字列 |
| 割引を説明する自由形式のテキスト。特定の 1+1 特典(1+1 ドリンク、+1 メインコース、1+1 選択メニュー項目など)については、ここに詳細を記載する必要があります。 |
費用
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
amount | オブジェクト(Money) |
| |
amount_range | オブジェクト(MoneyRange) |
|
denomination_type
| フィールド名 | タイプ | 要件 | 説明 |
|---|---|---|---|
fixed_denominations | オブジェクト(FixedDenominations) |
| ギフトカードが特定の固定金額で利用可能な場合に使用します。 |
custom_range | オブジェクト(MoneyRange) |
| ブランドが、定義された範囲内でユーザーがカスタム(フレキシブル)額面を選択できるようにする場合に使用します。 |
フィードのアップロード
特典フィードは、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として送信する必要があります。
- クレジット カードの 5% 割引特典は、2 つのコピーとして送信する必要があります。1 つは
あるレストランでは、予約なしで来店した場合は 10% 割引、特定のクレジット カードで支払った場合は 5% 割引が適用され、これらは併用できます。
- 10% のウォークイン特典には
OFFER_CATEGORY_BASE_OFFERのタグを付ける必要があります。 - 5% オフのクレジット カード特典には 2 つのコピーが必要で、1 つは
OFFER_CATEGORY_BASE_OFFER、もう 1 つはOFFER_CATEGORY_ADD_ON_PAYMENT_OFFERのタグを付ける必要があります。
- 10% のウォークイン特典には
あるレストランでは、平日のランチのみ 10% 割引、特定のクレジット カードで支払う場合はいつでも 5% 割引を提供しています。
- 10% 割引の特典では、平日のレストランのランチタイムのみを示すように
ValidityPeriodを設定する必要があります。 - クレジット カードの 5% 割引特典は 2 部送付する必要があります。
- 1 つのコピーには、
PaymentInstrumentの詳細を含むOFFER_CATEGORY_BASE_OFFERのタグを付ける必要があります。ValidityPeriodは、ランチ 10% 割引の特典が有効な平日のランチタイムを除外するように設定する必要があります。 - 1 つのコピーには、
PaymentInstrumentの詳細を含むOFFER_CATEGORY_ADD_ON_PAYMENT_OFFERのタグを付ける必要があります。
- 1 つのコピーには、
- このレストランの他のすべての支払い特典には、
OFFER_CATEGORY_ADD_ON_PAYMENT_OFFERのタグを付ける必要があります。
- 10% 割引の特典では、平日のレストランのランチタイムのみを示すように
開発とリリースのプロセス
統合の全体を通して、パートナー ポータルは、開発に基づく情報とフィードバックを提供して、統合を支援します。開発プロセスは次のフローに沿って行われます。
- 統合は最初にサンドボックス環境で開発されます。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 キャッシュ保存のドキュメントをご覧ください。