Praktik Terbaik

Panduan ini menyoroti persyaratan dan contoh penawaran Pemesanan Makanan.

Kelayakan dan Kebijakan

Bagian ini menjelaskan kriteria kelayakan penting yang harus dipatuhi partner saat memberikan penawaran. Penting untuk menguji semua jenis penawaran yang akan Anda luncurkan selama pengujian feed sandbox. Jika Anda tidak yakin apakah penawaran memenuhi syarat, hubungi POC Google Anda.

Mengecualikan penawaran yang dipersonalisasi dan sekali pakai

Untuk memastikan pengalaman pengguna yang berkualitas tinggi dan konsisten, partner tidak boleh menyertakan penawaran yang dibatasi untuk sebagian kecil pengguna tertentu. Penawaran yang dipersonalisasi yang dibuat hanya untuk pengguna tertentu tidak memenuhi syarat. Penawaran di seluruh platform yang memenuhi syarat untuk semua pengguna seperti pengguna baru atau pemesanan pertama di restoran tertentu diizinkan selama penawaran ditampilkan di halaman landing penawaran untuk semua pengguna. Persyaratan penawaran harus dinyatakan dengan jelas di judul penawaran dan di halaman landing URL penawaran. Penawaran harus terlihat di halaman landing penawaran oleh semua pengguna saat logout atau login ke situs atau aplikasi Anda.

Penawaran dengan kode kupon

Penawaran tertentu mengharuskan pengguna memasukkan kode kupon, seperti "Terapkan kode HEMAT20 untuk mendapatkan diskon 20% dari total tagihan". Perlu diperhatikan bahwa Google tidak menampilkan kode kupon dari definisi kupon. Partner dapat menyertakan informasi ini dalam OfferDetails.offer_display_text untuk ditampilkan kepada pengguna. Penawaran berbasis kupon umumnya terbagi dalam dua kategori:

  • Penawaran dengan kupon yang otomatis ditampilkan saat checkout kepada pengguna yang datang dari Google. Hal ini diizinkan.
  • Penawaran yang mengharuskan pengguna memasukkan kode kupon saat checkout, tetapi tidak memberikan petunjuk tentang cara menerapkan kode kupon di halaman landing URL penawaran, atau tidak menerapkan kupon secara otomatis saat mengikuti URL penawaran, tidak diizinkan.

Konten dan Struktur Penawaran

Bagian ini menjelaskan persyaratan untuk konten dan struktur penawaran yang diberikan dalam feed, termasuk contoh metadata terstruktur.

Teks tampilan penawaran dan Spesifikasi penawaran

OfferDetails.offer_display_text adalah kolom wajib diisi yang berfungsi sebagai judul ringkas untuk visibilitas langsung di bagian penawaran di Google Penelusuran, seperti "Diskon Rp100.000" atau "Hemat 15%".

OfferDetails.offer_specification adalah kolom "one of" wajib dalam OfferDetails. Artinya, tepat satu dari tiga kolom berikut harus diberikan untuk menentukan penawaran:

  • discount_value
  • discount_percent
  • other_offer_detail_text

Kolom OfferDetails.other_offer_detail_text adalah kolom teks bentuk bebas yang digunakan untuk melengkapi offer_display_text jika penawaran tidak dapat dinyatakan sebagai nilai atau persentase diskon tetap. Jika offer_display_text sudah cukup untuk menyampaikan semua informasi yang diperlukan tentang penawaran, kolom other_offer_detail_text harus diisi dengan teks yang sama dengan offer_display_text. Namun, untuk promo yang kompleks, kolom ini harus memberikan deskripsi spesifik tentang reward.

Kolom metadata terstruktur

Untuk meningkatkan kejelasan penawaran serta memungkinkan peringkat dan pemfilteran yang lebih baik, partner harus memberikan metadata penawaran di kolom terstruktur masing-masing. Penentuan persyaratan wajib dilakukan. Sebaiknya tetapkan kolom terms.terms_and_conditions dengan persyaratan mendetail yang ditampilkan kepada pengguna di halaman landing penawaran.

Total Penawaran Spesifik Item dan Pesanan

Penawaran khusus untuk subset item harus menggunakan kolom offer_restrictions.inclusions dan offer_restrictions.exclusions untuk menentukan item yang memenuhi syarat. Jika penawaran berlaku untuk item tertentu, nama item harus disertakan dalam offer_display_text. Jika nama item disertakan dalam offer_display_text, setelan offer_restrictions.inclusions tidak diperlukan.

Jika offer_restrictions.inclusions tidak ditetapkan, atau jika nama item tidak disertakan dalam offer_display_text, penawaran dianggap berlaku untuk jumlah total pesanan.

Penawaran Biaya Pengiriman

Penawaran biaya pengiriman harus menggunakan offer_category OFFER_CATEGORY_ADD_ON_FEE_REDUCTION_OFFER. Hal ini memungkinkan penawaran ditampilkan hanya jika digabungkan dengan penawaran dasar lain untuk lokasi tersebut. Penawaran biaya pengiriman tidak akan ditampilkan sebagai penawaran dasar.

Contoh JSON Penawaran

Diskon tetap Rp200.000

Contoh: Diskon tetap Rp200.000 untuk total pesanan pada hari Selasa dengan pembelanjaan minimum Rp150.000

{
  "offer_id": "offer-example-1-takeout",
  "offer_source": "OFFER_SOURCE_AGGREGATOR",
  "action_type": "ACTION_TYPE_FOOD_TAKEOUT",
  "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
  "offer_category": "OFFER_CATEGORY_BASE_OFFER",
  "offer_details": {
    "offer_display_text": "$20 off on Tuesdays",
    "discount_value": {
      "currency_code": "USD",
      "units": 20
    },
    "min_spend_value": {
      "currency_code": "USD",
      "units": 15
    }
  },
  "validity_periods": [
    {
      "valid_period": {
        "valid_from_time": { "seconds": 1768953600 },
        "valid_through_time": { "seconds": 1795219200 }
      },
      "time_of_day": [
        {
          "time_windows": {
            "open_time": { "hours": 9 },
            "close_time": { "hours": 20, "minutes": 59, "seconds": 59 }
          },
          "day_of_week": ["TUESDAY"]
        }
      ]
    }
  ],
  "offer_restrictions": {
    "combinable_with_other_offers": false
  },
  "terms": {
    "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery or takeout orders with $15 minimum spend. Single use per order. Offer may not be combined with any other offers, discounts, or promotions. Valid only on Tuesdays."
  },
  "entity_ids": ["dining-1"],
  "offer_url": "https://www.example-restaurant.com/offer/base_offer_1"
}

Diskon 50% untuk Berry Smoothie

Contoh: Penawaran tingkat item diskon 50%.

{
  "offer_id": "offer-example-1-takeout",
  "offer_source": "OFFER_SOURCE_AGGREGATOR",
  "action_type": "ACTION_TYPE_FOOD_TAKEOUT",
  "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
  "offer_category": "OFFER_CATEGORY_BASE_OFFER",
  "offer_details": {
    "offer_display_text": "50% off on Berry Smoothie",
    "discount_percent": 50.0
  },
  "validity_periods": [
    {
      "valid_period": {
        "valid_from_time": { "seconds": 1768953600 },
        "valid_through_time": { "seconds": 1795219200 }
      }
    }
  ],
  "offer_restrictions": {
    "combinable_with_other_offers": true,
    "inclusions": [
      {"description":"Berry Smoothie"}
    ]
  },
  "terms": {
    "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery or takeout orders. Single use per order."
  },
  "entity_ids": ["dining-1"],
  "offer_url": "https://www.example-restaurant.com/offer/base_offer_1"
}

Penawaran Beli Satu Gratis Satu

Contoh: Beli satu hidangan pembuka, dapatkan satu hidangan pembuka gratis, berlaku Senin hingga Kamis

{
  "offer_id": "offer-example-2-delivery",
  "offer_source": "OFFER_SOURCE_AGGREGATOR",
  "action_type": "ACTION_TYPE_FOOD_DELIVERY",
  "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
  "offer_category": "OFFER_CATEGORY_BASE_OFFER",
  "offer_details": {
    "offer_display_text": "Buy one appetizer, get one free",
    "other_offer_detail_text": "Buy one appetizer, get one free"
  },
  "validity_periods": [
    {
      "valid_period": {
        "valid_from_time": { "seconds": 1768953600 },
        "valid_through_time": { "seconds": 1795219200 }
      },
      "time_of_day": [
        {
          "time_windows": {
            "open_time": { "hours": 10 },
            "close_time": { "hours": 23, "minutes": 59, "seconds": 59 }
          },
          "day_of_week": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY"]
        }
      ]
    }
  ],
  "offer_restrictions": {
    "combinable_with_other_offers": true,
    "inclusions": [
      {
        "description": "appetizers"
      }
    ]
  },
  "terms": {
    "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery or takeout orders. Single use per order. Valid on all menu appetizers. Offer may be combined with any other offers, discounts, or promotions. Valid Monday through Thursday."
  },
  "entity_ids": ["dining-1"],
  "offer_url": "https://www.example-restaurant.com/offer/base_offer_4"
}

Penawaran Gratis Ongkos Kirim

Contoh: Pengiriman gratis sebagai add-on untuk penawaran dasar. Penawaran Biaya Pengiriman $0 akan ditampilkan dengan penawaran dasar apa pun untuk lokasi tersebut.

[
  {
    "offer_id": "offerId1",
    "offer_source": "OFFER_SOURCE_AGGREGATOR",
    "action_type": "ACTION_TYPE_FOOD_DELIVERY",
    "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
    "offer_category": "OFFER_CATEGORY_BASE_OFFER",
    "offer_details": {
      "offer_display_text": "10% off",
      "discount_percent": 10.0
    },
    "validity_periods": [
      {
        "valid_period": {
          "valid_from_time": { "seconds": 1768953600 },
          "valid_through_time": { "seconds": 1795219200 }
        },
        "time_of_day": [
          {
            "day_of_week": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY"]
          }
        ]
      }
    ],
    "offer_restrictions": {
      "combinable_with_other_offers": true,
      "combinable_offer_categories": ["OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER"]
    },
    "terms": {
      "terms_and_conditions": "For use only at the participating restaurant location on qualifying delivery or takeout orders. Single use per order. Offer may be combined with any other offers, discounts, or promotions."
    },
    "entity_ids": ["dining-1"],
    "offer_url": "https://www.example-restaurant.com/offer/base_offer_5"
  },
  {
    "offer_id": "offerId2",
    "offer_source": "OFFER_SOURCE_AGGREGATOR",
    "action_type": "ACTION_TYPE_FOOD_DELIVERY",
    "offer_modes": ["OFFER_MODE_ONLINE_ORDER"],
    "offer_category": "OFFER_CATEGORY_ADD_ON_FEE_REDUCTION_OFFER",
    "offer_details": {
      "offer_display_text": "$0 Delivery Fee",
      "other_offer_detail_text": "Free dellivery"
    },
    "validity_periods": [
      {
        "valid_period": {
          "valid_from_time": { "seconds": 1768953600 },
          "valid_through_time": { "seconds": 1795219200 }
        }
      }
    ],
    "offer_restrictions": {
      "combinable_with_other_offers": true
    },
    "terms": {
      "terms_and_conditions": "Delivery is free at the participating restaurant location on qualifying delivery or takeout orders. Single use per order. Offer may be combined with any other offers, discounts, or promotions."
    },
    "entity_ids": ["dining-1"],
    "offer_url": "https://www.example-restaurant.com/offer/addon_offer_1"
  }
]

Pemenuhan dan Batasan

Bagian ini menjelaskan persyaratan dan praktik terbaik terkait spesifikasi pemenuhan penawaran dan batasan yang terkait dengannya.

Mode pemenuhan (Pengiriman dan Bawa Pulang)

Jika satu promo berlaku untuk pengiriman dan bawa pulang, promo tersebut harus memiliki dua penawaran di feed. Setiap entri harus memiliki ActionType khusus:

  • ACTION_TYPE_FOOD_DELIVERY
  • ACTION_TYPE_FOOD_TAKEOUT

Hal ini memastikan bahwa pengguna yang membuka situs partner akan melihat konteks pemenuhan yang benar.

Jendela waktu

Penawaran diharapkan ditampilkan di halaman landing penawaran untuk semua pengguna saat logout atau login ke situs atau aplikasi Anda. Jika penawaran berlaku selama jangka waktu tertentu, Anda harus menyertakan kolom validity_periods.valid_period untuk menentukan jangka waktu yang valid. Hal ini mencegah penawaran ditampilkan di luar jangka waktu. Rentang waktu juga harus ditetapkan jika penawaran ditampilkan di URL penawaran selama jam tertentu dalam sehari. Misalnya, jika halaman landing tidak menampilkan penawaran saat restoran tutup, Anda harus menyertakan waktu buka dan tutup TimeOfDayWindow.

Menangani jangka waktu yang melewati tengah malam

Penawaran yang berlangsung melewati tengah malam (misalnya, berlaku dari Selasa pukul 22.00 hingga Rabu pukul 02.00) harus disegmentasikan agar dapat diproses dengan benar oleh pipeline penyerapan. Persyaratan: Gunakan kolom TimeOfDayWindow untuk membagi jendela menjadi dua segmen yang berbeda:

  • Segmen 1: 22.00 - 23.59.59 pada hari mulai (misalnya, Selasa).
  • Segmen 2: 00.00 hingga 02.00 pada hari berikutnya (misalnya, Rabu).

Hal ini memastikan validitas penawaran tercermin secara akurat selama seluruh periode.

Spesifikasi biaya

Biaya untuk pengiriman dan pesan bawa dapat ditentukan menggunakan kolom OfferDetails.additional_fees. Biaya layanan harus ditentukan menggunakan OfferDetails.convenience_fee. Gunakan nilai rentang biaya untuk biaya variabel, misalnya, jika biaya pengiriman berubah berdasarkan lokasi pengguna.