このガイドでは、特典フィードにギフトカード(バウチャーとも呼ばれます)を実装するための要件、データ モデリングの推奨事項、ベスト プラクティスについて説明します。これらの推奨事項は、標準のアクション センターのドキュメントを補完し、ギフトカード固有の統合に関する側面に対応しています。
Offer Mode と Categorization
ギフトカードの在庫を送信する際は、次のコア属性が正しく設定されていることを確認してください。
Offer Mode:
offer_modesは、常に"OFFER_MODE_GIFT_CARD_PURCHASE"を含むシングルトン配列として設定する必要があります。"offer_modes": ["OFFER_MODE_GIFT_CARD_PURCHASE"]プリペイド バウチャーとウォークイン即時割引:
gift_card_infoは、事前に購入したプリペイド バウチャーとギフトカード(OFFER_MODE_GIFT_CARD_PURCHASE)専用です。- お客様がバウチャー コードを購入して後で利用するのではなく、実店舗のカウンターで直接支払ってその場で割引を受ける場合は、この特典を標準のウォークイン割引(
OFFER_MODE_WALK_IN)としてモデル化し、gift_card_infoメッセージを完全に省略します。
額面のモデリング: ギフトカードの額面は、バウチャーの価値(利用できる金額)を表すものであり、お客様が支払う金額(お客様は割引価格を支払います)を表すものではありません。
複数の額面を統合する: 割引率と条件がまったく同じで、額面が異なる複数のバウチャーは、1 つの特典エントリにグループ化する必要があります。
denomination_typeはoneofとして動作するため、パートナーはfixed_denominationsまたはcustom_rangeのいずれかを設定する必要があります。- 固定額: 個別のプリセット ギフトカード額が提供される場合に使用します(例: ₹500、₹1,000、₹2,000 のすべてが 10% 割引)。ランディング ページで売り切れまたは利用できない固定額面は、フィードの送信から明示的に除外されていることを確認します。
- カスタム範囲: ユーザーが購入ページで定義された範囲内の任意の額面を自由に入力できる場合にのみ使用します(例: ₹100 ~₹5,000 の範囲内の任意の額面で 5% の割引)。リンク先ランディング ページで個別のプリセット金額が提示されている場合は、
fixed_denominationsで在庫を厳密にモデル化します。また、特典に固定額とカスタム額の両方が用意されている場合は、パートナーは柔軟なカスタム範囲を設定する必要があります。
マルチロケーション チェーンの処理
大規模な小売店や飲食店のチェーン全体で利用できるギフト券で、複数のスポット(POI)で利用条件が同じ場合は、店舗ごとに個別の Offer オブジェクトを指定しないでください。代わりに、参加しているすべての店舗エンティティ ID(entity_ids)のリストを含む 1 つの Offer オブジェクトを指定して、集約されたフィードのアプローチを使用します。
ポータルのブランディング(brand_id)
一部のバウチャーは、販売者のメインサイトではなく、特定の銀行やポイント ポータル(銀行のポイント プログラムやパートナー プラットフォームなど)を通じて提供されます。これらのポータルのブランディングを正確に行うには、パートナーは最上位の Offer オブジェクトの brand_id フィールドに入力する必要があります。
brand_id を省略すると、デフォルトでアカウントのメイン ブランドが使用されます(アカウントのデフォルト ブランドを使用する場合は brand_id は必須ではありません)。ただし、brand_id を明示的に入力すると、インベントリが対応するブランド ポータルに正確に関連付けられ、ユーザーに正しいパートナー固有のロゴと名前が表示されます。ブランドの構成について詳しくは、ブランドの構成をご覧ください。
有効期間の構造(ValidityScope)
ギフトカードには、特典を購入できる期間とカードを利用できる期間を区別する独自の有効期間構造があります。パートナーは、関連する ValidityScope 列挙型値を常に使用する必要があります。
VALIDITY_SCOPE_CLAIM: パートナー プラットフォームでギフトカードの提供を購入できる期間を定義します。このエントリは常に存在する必要があります。フィードを送信する際は、フィードの送信日を起点として、申し立ての有効期間を入力してください。また、ランディング ページでキャンペーンの終了日が明示的に宣伝されている場合は、請求期間を無期限にしないでください。valid_through_timeを宣伝されている有効期限と一致させてください。VALIDITY_SCOPE_REDEEM: 購入後の利用期間(ユーザーが購入後に店舗でバウチャーを利用できる期間。期間または期間範囲として指定できます)を定義します。
アクション タイプ マッピング
パートナーは、「オンライン/オフラインで利用可能」、「オンライン/アウトレット」、「店舗」などの構造を使用して、バウチャーを分類することがよくあります。フィード送信では、商品をどのように消費するかを正確に定義するために、この値を ActionType 列挙型にマッピングする必要があります。
- ダイニング / フード業種: 「店内飲食」のギフトカードを
ACTION_TYPE_DININGにマッピングします。「Delivery」ギフトカードをACTION_TYPE_FOOD_DELIVERYにマッピングします。「テイクアウト」ギフトカードをACTION_TYPE_FOOD_TAKEOUTにマッピングします。 - ショッピングの小売業種: 「店舗」ギフトカードを
ACTION_TYPE_SHOPPING_IN_STOREにマッピングします。(注: オンライン専用の小売バウチャーはサポートされていません)。 - 単一チャネル マッピング: 各
offer_idは 1 つのActionTypeにのみ属することができます。在庫アイテムが複数の配送チャネル(フード デリバリーとテイクアウトの両方など)に対応している場合は、各モードに固有の ID を持つ個別の Offer オブジェクトを作成します。
段階的割引とアドオン特典
- お支払い方法に応じた段階的な割引: 特定のお支払い方法(電子ウォレットとクレジット カードで割引率が異なるなど)に応じて割引率が異なる場合は、それぞれ別の Offer オブジェクトとしてモデル化する必要があります。パートナーは、信頼性の高い節約体験を確保するため、サポートされているすべての決済手段(電子ウォレット、クレジット カード、デビットカード、ネット バンキングなど)でプロモーションを網羅的に提供する必要があります。プラットフォームで利用可能なすべてのお支払い方法に特典が適用される場合、お支払い方法フィールドは設定しないでください。
- アドオン特典の構成: 銀行固有の特典ポイントやギフトカードの購入に適用される追加のキャッシュバックなど、特典を積み重ねて表示するには、適切な
OfferCategory列挙型(OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER)を使用して、完全に別個のアドオン特典として送信します。OfferDetails.other_offer_details_text内の特典を説明し(例: 「最大 5 倍の特典ポイント」)、OfferRestrictions.combinable_offer_idsにベース ギフトカードのoffer_idを入力して、ベース ギフトカードの特典にリンクします。
利用規約と特別条件
パートナーは、ギフトカードまたはバウチャーの完全な法的文言の利用規約を提供するために terms.terms_and_conditions に依存する必要があります。ユーザー向けのすべての手順と使用ガイドラインをこのフィールドに統合します。
重要な制限に専用の UI の目立つ表示が必要な場合(1 回限りの残高の有効期限、払い戻し不可、「1 回の請求につき最大 2 枚のクーポンを組み合わせることができます」などの取引の組み合わせの上限など)は、offer_restrictions.special_conditions で強調表示します。
特典のタイトルの推奨事項
特典のタイトルは 40 文字以内にしてください。offer_display_text から販売者のブランド名を削除します。特典は販売者の専用のプレイスシートに直接表示されるためです。次の形式のタイトルをおすすめします。
| ユースケース | 推奨されるタイトル |
|---|---|
| バウチャーの一律割引 | X% off on Gift Cards |
| お支払い方法に基づく変動割引 | X% off on Gift Cards using {e-wallet}
|
| さまざまな金額の可変割引 | X% off on Gift Cards (異なる割引を個別の特典として送信) |
| B2B2C ギフトカード | X% off on Gift Cards (brand_id を使用してサムネイルでブランディングを表示) |
| アドオン特典 | Flat/Up to 5X reward points/
<Platform> coins |
ランディング ページの要件
宣伝されているすべての offer_url は、仲介リダイレクトなしで HTTP 200 OK を直接返し、特典を裏付ける有効なリンク先ページに解決される必要があります。
フィードに、完売または利用できない額面を含めることはできません。フィードの通貨フィールドと、リンク先ランディング ページの購入オプションとの間で、厳密な在庫同期を維持します。
リンク先のランディング ページで、特典がギフトカードまたはバウチャーにのみ適用されることを明記する必要があります。
たとえば、パートナーのランディング ページに「請求書の支払い」などの一般的なお支払いに関する行動を促すフレーズのみが表示され、取引を完了するとプリペイド ギフトカードのバウチャーが発行されることが事前に明示されていない場合、ギフトカードの購入を期待して Google からリダイレクトされたユーザーは混乱したり、離脱したりする可能性があります。バウチャーに関する通知が購入手続きの次のステップで表示される場合でも、最初のランディング ページで明確に提示する必要があります。
クーポンコード付きの商品アイテム
一部の特典では、ユーザーがクーポンコードを入力する必要があります(例: 「コード SAVE20 を適用すると、合計請求額が 20% 割引になります」)。Google は coupon 定義のクーポン コードを表示しないことに注意してください。パートナーは、この情報を OfferDetails.offer_display_text に含めてユーザーに表示できます。クーポンベースの特典は、一般的に次の 2 つのカテゴリに分類されます。
- Google からアクセスしたすべてのユーザーに購入手続き時にクーポンが自動的に提示される特典。これらは許可されます。
- 購入手続き時にユーザーがクーポンコードを入力する必要があるにもかかわらず、特典 URL のランディング ページでクーポンコードの適用方法が説明されていない、または特典 URL にアクセスしてもクーポンが自動的に適用されない特典は許可されません。
ギフトカード特典の JSON の例
{
"data": [
{
"offer_id": "example-dining-gift-card-10off",
"entity_ids": [
"dining-1",
"dining-2"
],
"offer_modes": [
"OFFER_MODE_GIFT_CARD_PURCHASE"
],
"action_type": "ACTION_TYPE_DINING",
"offer_source": "OFFER_SOURCE_AGGREGATOR",
"offer_category": "OFFER_CATEGORY_BASE_OFFER",
"offer_details": {
"offer_display_text": "10% off on Gift Cards",
"discount_percent": 10.0,
"gift_card_info": {
"fixed_denominations": {
"amounts": [
{
"units": 500,
"currency_code": "INR"
},
{
"units": 1000,
"currency_code": "INR"
},
{
"units": 2000,
"currency_code": "INR"
}
]
}
}
},
"offer_restrictions": {
"combinable_with_other_offers": false,
"special_conditions": [
"Single-use balance expiration applies",
"Maximum 2 gift card vouchers can be combined per bill",
"No cash refund will be provided against this voucher"
]
},
"terms": {
"restricted_to_certain_users": false,
"terms_and_conditions": "1. Redeemable exclusively at participating dining outlets.\n2. Single-use balance expiration applies.\n3. Maximum 2 gift card vouchers can be combined per bill.\n4. No cash refund will be provided against this voucher."
},
"validity_periods": [
{
"valid_period": {
"valid_from_time": {
"seconds": "1774934350"
},
"valid_through_time": {
"seconds": "1806470350"
}
},
"validity_scope": "VALIDITY_SCOPE_CLAIM"
},
{
"validity_duration_in_days": 365,
"validity_scope": "VALIDITY_SCOPE_REDEEM"
}
],
"offer_url": "https://www.example-portal.com/dining-gift-cards/buy"
}
]
}