Integrasi Feed Penawaran

Penawaran

Integrasi penawaran memungkinkan Anda menyampaikan informasi terstruktur tentang promosi dan diskon penjual yang diterapkan pada layanan tertentu pada waktu tertentu. Penawaran terdiri dari penawaran sebenarnya (persentase diskon, potongan harga ...), periode validitas (waktu tertentu, hari dalam seminggu ...), dan penggunaan yang berlaku (penawaran hanya dapat digunakan pada layanan tertentu) serta kombinasi pembatasan yang kompleks.

Contoh penawaran:

  • Hidangan pembuka setengah harga pada hari Rabu dan Kamis di bulan Desember dari pukul 12.00 hingga 17.00
  • Beli satu gratis satu hidangan penutup untuk makan malam Hari Ibu dari pukul 18.00 hingga 22.00
  • Diskon $5 untuk hidangan utama sarapan siang setiap hari Minggu pukul 10.00 hingga 14.00
  • Diskon 10% sebagai penawaran datang langsung yang dapat digabungkan dengan diskon 5% untuk pelanggan premium dan diskon 5% jika pengguna membayar melalui aplikasi Anda.

Agar penawaran disertakan dalam integrasi, penawaran tersebut harus sesuai dengan model data teknis dan memenuhi persyaratan kelayakan kami. Pastikan untuk meninjau kebijakan penawaran kami untuk memastikan integrasi Anda mematuhi kebijakan dan untuk mendapatkan petunjuk tentang tindakan yang harus dilakukan terhadap penawaran yang tidak sesuai dengan persyaratan teknis.

Penerapan penawaran

Integrasi penawaran terdiri dari dua feed yang akan diupload setiap hari atau pada frekuensi yang memastikan akurasi tinggi (yang berarti mengurangi keusangan):

OfferFeed

Nama KolomJenisPersyaratanDeskripsi
dataarray objek
(Offer)

Penawaran

Nama KolomJenisPersyaratanDeskripsi
offer_idstring

Wajib

ID unik penawaran. Wajib.
entity_idsarray string

Daftar penjual yang berpartisipasi dalam penawaran ini.
add_on_offer_applicable_to_all_entitiesboolean

Jika benar, penawaran ini berlaku untuk semua entity di bawah agregator. Hanya berlaku untuk penawaran add-on.
offer_sourceenum
(OfferSource)

Wajib

Penawaran dapat diberikan oleh agregator, penjual perorangan, atau bahkan pihak ketiga sebagai add-on. Wajib.
action_typeenum
(ActionType)

Wajib

Layanan yang menyediakan penawaran. offer_id hanya dapat dimiliki oleh satu action_type. Jika penawaran dapat dibagikan di beberapa jenis layanan, penawaran duplikat dengan ID unik diharapkan dibuat untuk setiap jenis layanan. Wajib.
offer_modesarray enum
(OfferMode)

Wajib

Metode yang dapat digunakan untuk mendapatkan penawaran - datang langsung, reservasi, online, dll. Wajib diisi.
offer_categoryenum
(OfferCategory)

Wajib

Kategori penawaran. Wajib.
source_assigned_priorityangka

Bilangan bulat non-negatif ([1-100], dengan 1 mewakili prioritas tertinggi) yang menunjukkan tingkat prioritas penawaran yang ditetapkan oleh sumber. Jika beberapa penawaran tersedia untuk penjual yang sama, ini akan menjadi sinyal untuk memberi peringkat penawaran. 0 menunjukkan bahwa prioritas tidak ditetapkan.
offer_detailsobject
(OfferDetails)

Wajib

Detail penawaran seperti diskon, biaya pemesanan, dll. Wajib diisi.
offer_restrictionsobject
(OfferRestrictions)

Wajib

Menjelaskan bagaimana penawaran dibatasi, yaitu apakah langganan/alat pembayaran diperlukan, apakah penawaran ini dapat digabungkan dengan penawaran lain (dan jenisnya), dll. Wajib.
couponobject
(Coupon)

Detail kupon. Wajib untuk offer_category: OFFER_CATEGORY_ADD_ON_COUPON_OFFER.
payment_instrumentobject
(PaymentInstrument)

Detail instrumen pembayaran. Wajib untuk offer_category: OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER.
subscriptionobject
(Subscription)

Detail langganan. Wajib untuk offer_category: OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER.
termsobject
(Terms)

Wajib

Persyaratan dan ketentuan penawaran. Wajib.
validity_periodsarray objek
(ValidityPeriod)

Wajib

Periode validitas penawaran. Menjelaskan jangka waktu berlakunya penawaran, termasuk waktu mulai dan akhir, hari dalam seminggu, dll. Wajib.
offer_urlstring

URL ke halaman penawaran penjual. Wajib untuk offer_category: OFFER_CATEGORY_BASE_OFFER.
tagsarray enum
(OfferTag)

Tag khusus yang terkait dengan penawaran. Ini digunakan untuk mengidentifikasi penawaran khusus seperti "Festive", "Top Rated", "Most booked", dll.
brand_idstring

Wajib diisi untuk transaksi Kartu Voucher guna mengidentifikasi merek yang menawarkan transaksi.
availability_levelenum
(AvailabilityLevel)

Tingkat ketersediaan penawaran.

OfferDetails

Nama KolomJenisPersyaratanDeskripsi
offer_display_textstring

Wajib

Teks penawaran yang ingin ditampilkan penyedia penawaran kepada pelanggan di halaman hasil penelusuran. Perhatikan bahwa hal ini mungkin tidak persis seperti yang ditampilkan kepada pengguna dan kami dapat menggunakan metadata lain untuk menulis ulang/mengubah kata-katanya. Wajib.
oneOf
(offer_specification)

Wajib

Hanya salah satu kolom dalam oneOf ini yang dapat ditetapkan.
max_discount_valueobject
(Money)

Diskon maksimum yang dapat diperoleh. Misalnya, diskon 10% hingga Rp1.000.000.
min_spend_valueobject
(Money)

Nilai pembelanjaan minimum untuk mendapatkan diskon. Misalnya, diskon 10% jika total harga Rp1.000.000 atau lebih.
booking_costobject
(Money)

Biaya untuk memesan penawaran ini. Misalnya, diskon Rp1.000.000 untuk tagihan akhir jika meja dipesan dengan biaya Rp150.000.
booking_cost_unitenum
(FeeUnit)

Satuan biaya pemesanan. Misalnya, per orang, per transaksi.
convenience_feeobject
(Fee)

booking_cost_adjustableboolean

Apakah biaya pemesanan dapat disesuaikan, yaitu biaya pemesanan dikurangi dari tagihan akhir. Misalnya: Diskon 30% untuk makan malam dengan reservasi. Biaya untuk memesan $15 dan akan diterapkan ke tagihan akhir. Jadi, tagihan akhir: Total Pembelanjaan - 30% - $15
additional_feesarray objek
(AdditionalFee)

Biaya tambahan yang ditagihkan kepada pengguna. Contoh: biaya kenyamanan, penanganan, pengiriman, pengemasan, biaya layanan, dll.
offer_discount_typeenum
(OfferDiscountType)

Jenis diskon.
gift_card_infoobject
(GiftCardInfo)

Detail khusus untuk promo kartu voucher.

Uang

Mewakili jumlah uang dengan jenis mata uangnya.

Nama KolomJenisPersyaratanDeskripsi
currency_codestring

Kode mata uang tiga huruf yang ditentukan dalam ISO 4217.
unitsangka

Seluruh unit jumlahnya. Misalnya, jika currencyCode adalah "USD", maka 1 unit adalah satu dolar AS.
nanosangka

Jumlah unit nano (10^-9) dari jumlah. Nilainya harus antara -999.999.999 dan +999.999.999 inklusif. Jika units positif, nanos harus positif atau nol. Jika units nol, nanos dapat positif, nol, atau negatif. Jika units negatif, nanos harus negatif atau nol. Misalnya $-1,75 ditampilkan sebagai units=-1 dan nanos=-750.000.000.

Biaya

Nama KolomJenisPersyaratanDeskripsi
unitenum
(FeeUnit)

typeenum
(FeeType)

oneOf
(cost)

Hanya salah satu kolom dalam oneOf ini yang dapat ditetapkan.

MoneyRange

Nama KolomJenisPersyaratanDeskripsi
min_amountobject
(Money)

max_amountobject
(Money)

AdditionalFee

Nama KolomJenisPersyaratanDeskripsi
namestring

Wajib

Nama biaya tambahan. Contoh: biaya administrasi, biaya pemrosesan, dll. Wajib.
feeobject
(Fee)

GiftCardInfo

Nama KolomJenisPersyaratanDeskripsi
oneOf
(denomination_type)

Hanya salah satu kolom dalam oneOf ini yang dapat ditetapkan.

FixedDenominations

Nama KolomJenisPersyaratanDeskripsi
amountsarray objek
(Money)

Daftar semua nominal diskret yang tersedia (misalnya, [100, 500, 1000]).

OfferRestrictions

Nama KolomJenisPersyaratanDeskripsi
combinable_with_other_offersboolean

Apakah penawaran ini dapat digabungkan dengan penawaran lainnya. Jika benar (true), partner dapat menentukan penawaran yang dapat digabungkan dengan penawaran ini. Jika combinable_offer_categories & combinable_offer_ids ditetapkan, penawaran yang cocok dengan salah satu kondisi di atas akan dapat digabungkan.
combinable_offer_categoriesarray enum
(OfferCategory)

Daftar jenis penawaran yang dapat digabungkan dengan penawaran ini. Misalnya, penawaran ini dapat digabungkan dengan Kupon lainnya. Jika combinable_with_other_offers bernilai benar dan kolom ini tidak disetel, semua jenis akan dapat digabungkan.
combinable_offer_idsarray string

Daftar offer_id yang dapat digabungkan dengan penawaran ini. Beberapa penawaran hanya dapat digabungkan dengan offer_id tertentu lainnya (dapat dianggap sebagai penawaran induk). Jika combinable_with_other_offers benar dan kolom ini tidak disetel, semua id penawaran dapat digabungkan.
inclusionsarray objek
(OfferCondition)

Daftar kondisi yang harus dipenuhi agar penawaran valid (misalnya, minuman non-alkohol, makanan).
exclusionsarray objek
(OfferCondition)

Daftar kondisi yang akan membatalkan penawaran (misalnya, prasmanan, penawaran combo, dan koktail).
min_guestangka

Jumlah minimum orang yang diperlukan untuk memanfaatkan penawaran. Catatan: Kolom ini hanya berlaku untuk reservasi tempat makan dan tidak boleh digunakan untuk vertikal lainnya.
food_offer_restrictionsobject
(FoodOfferRestrictions)

Batasan khusus untuk penawaran makanan.
max_redemption_countangka

Batasan khusus untuk jumlah penggunaan penawaran ini. Nilai 0 akan menentukan bahwa tidak ada batas. Misalnya, nilai 3 berarti pengguna dapat menggunakan penawaran ini 3 kali.
max_total_discount_valueobject
(Money)

Diskon maksimum yang dapat diperoleh di beberapa transaksi penawaran ini.
special_conditionsarray string

Kondisi khusus untuk penawaran ini yang harus ditampilkan kepada pengguna. Contoh: "Hanya berlaku untuk pembayaran di [area]", "Tidak termasuk pembayaran online", "Voucher Hadiah DAPAT digunakan selama Penjualan".

OfferCondition

Nama KolomJenisPersyaratanDeskripsi
descriptionstring

FoodOfferRestrictions

Nama KolomJenisPersyaratanDeskripsi
meal_typesarray enum
(MealType)

Jenis makanan yang dapat menerapkan penawaran, seperti makan siang atau makan malam. Jika tidak disetel, penawaran dapat diterapkan ke semua jenis makanan.
restricted_to_certain_coursesboolean

Apakah penawaran hanya dapat diterapkan pada kursus tertentu.

Kupon

Nama KolomJenisPersyaratanDeskripsi
textstring

Teks kupon yang ingin ditampilkan penyedia penawaran kepada pengguna.
codestring

Wajib

Perlu kode kupon untuk menukarkan penawaran. Wajib.

PaymentInstrument

Nama KolomJenisPersyaratanDeskripsi
itemsarray objek
(PaymentInstrumentItem)

Wajib

Daftar alat pembayaran yang dapat digunakan untuk mendapatkan penawaran. Wajib.
provider_namestring

Nama penyedia instrumen pembayaran. Dapat berupa partner perbankan, nama bank, dll. Misalnya: American Express, HDFC, ICICI.

PaymentInstrumentItem

Nama KolomJenisPersyaratanDeskripsi
typeenum
(PaymentInstrumentType)

Wajib

Jenis instrumen pembayaran. Wajib.
namestring

Wajib

Nama item instrumen pembayaran seperti nama kartu kredit. Misalnya: HDFC Infinia, American Express Platinum. Wajib.

Langganan

Nama KolomJenisPersyaratanDeskripsi
namestring

Wajib

Nama langganan. Wajib.
subscription_auto_addedboolean

Apakah langganan ditambahkan secara otomatis saat pengguna memanfaatkan penawaran ini
costobject
(Money)

Wajib

Biaya langganan. Wajib.
subscription_durationobject
(Duration)

Wajib

Durasi masa berlaku langganan pada subscription_cost. Wajib.
terms_and_conditions_urlstring

URL ke persyaratan dan ketentuan partner yang relevan dengan langganan ini.

Durasi

Nama KolomJenisPersyaratanDeskripsi
secondsangka

Detik yang ditandatangani dari rentang waktu. Harus dari -315.576.000.000 hingga +315.576.000.000 inklusif. Catatan: batas ini dihitung dari: 60 dtk/mnt * 60 mnt/j * 24 j/h * 365,25 h/thn * 10.000 thn
nanosangka

Pecahan detik bertanda pada resolusi nanodetik rentang waktu. Durasi kurang dari satu detik ditampilkan dengan kolom 0 seconds dan kolom nanos positif atau negatif. Untuk durasi satu detik atau lebih, nilai non-nol untuk kolom nanos harus memiliki tanda yang sama dengan kolom seconds. Harus dari -999.999.999 hingga +999.999.999 inklusif.

Persyaratan

Nama KolomJenisPersyaratanDeskripsi
urlstring

URL persyaratan dan ketentuan partner.
restricted_to_certain_usersboolean

Apakah penawaran dibatasi untuk pengguna tertentu.
terms_and_conditionsstring

Teks S&K utama yang disediakan oleh partner.
additional_terms_and_conditionsarray string

Persyaratan dan ketentuan selain T&C utama dari partner.

ValidityPeriod

Nama KolomJenisPersyaratanDeskripsi
valid_periodobject
(ValidityRange)

Stempel waktu mulai dan akhir yang valid untuk penawaran. Waktu ini harus mewakili hari yang berbeda, yaitu waktu mulai harus 00.00 (awal hari) dan waktu berakhir harus 00. 00 (eksklusif) pada hari berakhirnya periode validitas.
time_of_dayarray objek
(TimeOfDayWindow)

Menentukan interval waktu yang valid pada hari tertentu dan hari mana yang tersedia untuk penawaran. Untuk jangka waktu yang melewati tengah malam (misalnya, pukul 22.00 hingga 02.00), gunakan jendela terpisah untuk setiap hari: satu berakhir pada pukul 23.59.59 dan satu lagi dimulai pada pukul 00.00 pada hari berikutnya. Misalnya: Senin: 10.00 hingga 17.00 Selasa: 10.00 hingga 14.00 Selasa: 17.00 hingga 19.00 Rabu, Kamis, Jumat, Sabtu, Minggu: 15.00 hingga 19.00 Jika tidak ada yang ditetapkan, artinya penawaran tersedia sepanjang waktu dalam valid_period.
time_exceptionsarray objek
(ValidTimeException)

Menentukan pengecualian untuk valid_period dan valid_time_of_week di atas
date_exceptionsarray objek
(Date)

Menentukan pengecualian dalam hari untuk valid_period dan time_of_day di atas
validity_scopeenum
(ValidityScope)

Menentukan cakupan periode validitas.
validity_duration_in_daysangka

Durasi (dalam hari) masa berlaku voucher/kupon, setelah dibeli.

ValidityRange

Rentang stempel waktu tertutup-terbuka.

Nama KolomJenisPersyaratanDeskripsi
valid_from_timeobject
(Timestamp)

Wajib

Waktu awal rentang (inklusif). Wajib.
valid_through_timeobject
(Timestamp)

Waktu berakhir rentang (eksklusif). Jika tidak disetel, berarti periode ini tidak akan pernah berakhir. Opsional.

Stempel waktu

Nama KolomJenisPersyaratanDeskripsi
secondsangka

Mewakili detik waktu UTC sejak epoch Unix 1970-01-01T00:00:00Z. Harus antara -62135596800 dan 253402300799 inklusif (yang sesuai dengan 0001-01-01T00:00:00Z hingga 9999-12-31T23:59:59Z).
nanosangka

Pecahan detik non-negatif pada resolusi nanodetik. Kolom ini adalah bagian nanodetik dari durasi, bukan alternatif untuk detik. Nilai detik negatif dengan pecahan harus tetap memiliki nilai nanos non-negatif yang dihitung maju dalam waktu. Harus antara 0 dan 999.999.999 inklusif.

TimeOfDayWindow

Objek TimeWindow adalah entitas komposit yang menjelaskan daftar jendela tempat pesanan pengguna dapat dilakukan atau dipenuhi.

Nama KolomJenisPersyaratanDeskripsi
time_windowsobject
(TimeOfDayRange)

Wajib

Jangka waktu pesanan dapat dilakukan/dipenuhi. Wajib.
day_of_weekarray enum
(DayOfWeek)

Daftar hari dalam seminggu saat jendela diterapkan. Jika tidak ada yang ditetapkan, berarti berlaku untuk semua hari dalam seminggu. Opsional.
day_of_montharray objek
(DayOfMonthRange)

Hari dalam sebulan saat jendela diterapkan. Jika tidak ada yang ditetapkan, berarti berlaku untuk semua hari dalam sebulan. Opsional.

TimeOfDayRange

Rentang waktu tutup-buka.

Nama KolomJenisPersyaratanDeskripsi
open_timeobject
(TimeOfDay)

Waktu yang menunjukkan waktu awal hari dalam rentang (inklusif). Jika tidak disetel, berarti 00:00:00. Opsional.
close_timeobject
(TimeOfDay)

Waktu yang menunjukkan waktu berakhir hari dalam rentang (eksklusif). Jika tidak disetel, berarti pukul 23.59.59. Opsional.

TimeOfDay

Nama KolomJenisPersyaratanDeskripsi
hoursangka

Jam dalam sehari dalam format 24 jam. Harus lebih besar dari atau sama dengan 0 dan biasanya harus kurang dari atau sama dengan 23. API dapat memilih untuk mengizinkan nilai "24:00:00" untuk skenario seperti waktu tutup bisnis.
minutesangka

Menit dalam satu jam. Harus lebih besar dari atau sama dengan 0 dan kurang dari atau sama dengan 59.
secondsangka

Detik dalam satu menit. Harus lebih besar dari atau sama dengan 0 dan biasanya harus lebih kecil dari atau sama dengan 59. API dapat mengizinkan nilai 60 jika mengizinkan detik kabisat.
nanosangka

Pecahan detik, dalam nanodetik. Harus lebih besar dari atau sama dengan 0 dan kurang dari atau sama dengan 999.999.999.

DayOfMonthRange

Rentang hari dalam sebulan yang berlaku untuk semua bulan dalam setahun.

Nama KolomJenisPersyaratanDeskripsi
valid_from_dayangka

Wajib

Hari awal rentang (inklusif). Wajib.
valid_through_dayangka

Hari akhir rentang (inklusif). Jika tidak disetel, berarti rentang ini mewakili satu hari (valid_from_day). Opsional.

ValidTimeException

Nama KolomJenisPersyaratanDeskripsi
exceptional_periodobject
(ValidityRange)

Stempel waktu mulai dan akhir saat penawaran tidak valid. Waktu ini harus mewakili hari yang berbeda, yaitu waktu mulai harus 00.00 (awal hari) dan waktu berakhir harus 00. 00 (eksklusif) pada hari periode pengecualian berakhir.

Tanggal

Nama KolomJenisPersyaratanDeskripsi
yearangka

Tahun tanggal. Harus dari 1 hingga 9999, atau 0 untuk menentukan tanggal tanpa tahun.
monthangka

Bulan dalam setahun. Harus dari 1 hingga 12, atau 0 untuk menentukan tahun tanpa bulan dan hari.
dayangka

Hari dalam sebulan. Harus dari 1 hingga 31 dan berlaku untuk tahun dan bulan, atau 0 untuk menentukan tahun saja atau tahun dan bulan jika hari dianggap tidak signifikan.

OfferSource

NamaDeskripsi
OFFER_SOURCE_UNSPECIFIED
OFFER_SOURCE_AGGREGATOR

ActionType

Mewakili mode pemenuhan penawaran. Jika penawaran dapat dibagikan di beberapa mode pemenuhan, penawaran duplikat diharapkan dibuat untuk setiap mode pemenuhan.

NamaDeskripsi
ACTION_TYPE_UNSPECIFIED
ACTION_TYPE_FOOD_DELIVERYPenawaran ini berlaku untuk layanan pengiriman makanan.
ACTION_TYPE_FOOD_TAKEOUTPenawaran ini berlaku untuk pesanan makanan yang diambil atau dibawa pulang.
ACTION_TYPE_DININGPenawaran ini berlaku untuk bersantap di restoran.
ACTION_TYPE_SHOPPING_IN_STOREPenawaran ini berlaku untuk pembelian offline di toko.

OfferMode

Menentukan metode atau saluran yang dapat digunakan pengguna untuk memanfaatkan penawaran.

NamaDeskripsi
OFFER_MODE_OTHERGunakan untuk metode pemenuhan yang tidak tercakup oleh mode spesifik lainnya.
OFFER_MODE_WALK_INPenawaran ini tersedia untuk kunjungan langsung tanpa reservasi sebelumnya.
OFFER_MODE_FREE_RESERVATIONPenawaran berlaku saat pengguna melakukan pemesanan yang tidak memerlukan biaya di muka.
OFFER_MODE_PAID_RESERVATIONPenawaran berlaku saat pengguna membuat reservasi yang memerlukan pembayaran di muka.
OFFER_MODE_ONLINE_ORDERPenawaran ini berlaku untuk pesanan yang dilakukan melalui situs atau platform digital.
OFFER_MODE_GIFT_CARD_PURCHASEMenunjukkan bahwa pembelian kartu voucher adalah langkah utama yang diperlukan untuk mendapatkan penawaran.

OfferCategory

Kategori penawaran. Penawaran dasar adalah penawaran standar yang tersedia untuk semua pelanggan, seperti diskon 10% untuk pembelanjaan di atas Rp1.000.000. Penawaran dasar yang dibatasi oleh kupon atau instrumen pembayaran akan memiliki kolom masing-masing yang ditetapkan. Kami juga memiliki penawaran add-on x seperti ADD_ON_PAYMENT_OFFER. Penawaran tersebut dapat ditambahkan ke penawaran lain untuk mendapatkan diskon tambahan.

NamaDeskripsi
OFFER_CATEGORY_UNSPECIFIEDNilai enum UNSPECIFIED atau default tidak boleh digunakan dalam feed.
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

NamaDeskripsi
FEE_UNIT_UNSPECIFIEDNilai enum UNSPECIFIED atau default tidak boleh digunakan dalam feed.
FEE_UNIT_PER_GUEST
FEE_UNIT_PER_TRANSACTION

FeeType

NamaDeskripsi
FEE_TYPE_UNSPECIFIEDNilai enum UNSPECIFIED atau default tidak boleh digunakan dalam feed.
FEE_TYPE_FIXED
FEE_TYPE_VARIABLE

OfferDiscountType

NamaDeskripsi
OFFER_DISCOUNT_TYPE_UNSPECIFIED
OFFER_DISCOUNT_TYPE_INSTANT_DISCOUNT
OFFER_DISCOUNT_TYPE_CASHBACK
OFFER_DISCOUNT_TYPE_REWARD_POINT

MealType

NamaDeskripsi
MEAL_TYPE_UNSPECIFIEDNilai enum UNSPECIFIED atau default tidak boleh digunakan dalam feed.
MEAL_TYPE_BREAKFAST
MEAL_TYPE_LUNCH
MEAL_TYPE_DINNER

PaymentInstrumentType

NamaDeskripsi
PAYMENT_INSTRUMENT_TYPE_UNSPECIFIEDNilai enum UNSPECIFIED atau default tidak boleh digunakan dalam feed.
PAYMENT_INSTRUMENT_CREDIT_CARD
PAYMENT_INSTRUMENT_DEBIT_CARD
PAYMENT_INSTRUMENT_BANK_ACCOUNT
PAYMENT_INSTRUMENT_UPI
PAYMENT_INSTRUMENT_ONLINE_WALLET
PAYMENT_INSTRUMENT_NETBANKING

DayOfWeek

Mewakili hari dalam seminggu.

NamaDeskripsi
DAY_OF_WEEK_UNSPECIFIEDHari dalam seminggu tidak ditentukan.
MONDAYSenin
TUESDAYSelasa
WEDNESDAYRabu
THURSDAYKamis
FRIDAYJumat
SATURDAYSabtu
SUNDAYMinggu

ValidityScope

Cakupan masa berlaku; yaitu tindakan apa saja yang berlaku dalam masa berlaku ini.

NamaDeskripsi
VALIDITY_SCOPE_UNSPECIFIED
VALIDITY_SCOPE_CLAIM
VALIDITY_SCOPE_REDEEM

OfferTag

NamaDeskripsi
OFFER_TAG_UNSPECIFIEDNilai enum UNSPECIFIED atau default tidak boleh digunakan dalam feed.
OFFER_TAG_NEW_YEAR_SPECIAL
OFFER_TAG_VALENTINES_SPECIAL

AvailabilityLevel

Menunjukkan status stok atau ketersediaan penawaran.

NamaDeskripsi
AVAILABILITY_LEVEL_UNSPECIFIED
AVAILABILITY_LEVEL_LOWMenunjukkan bahwa penawaran hampir habis. Pengguna dianjurkan untuk menukarkannya sebelum stok habis. Kami mungkin menambahkan MEDIUM dan HIGH nanti.

offer_specification

Diskon dapat berupa persentase atau nilai tetap yang dikurangi dari nilai total. Contoh: 1. Diskon 10% untuk tagihan akhir. 2. Diskon Rp150.000 untuk pesanan. Penjual juga dapat menawarkan diskon kustom seperti 'beli satu gratis satu' melalui kolom spesifikasi yang relevan. Wajib.

Nama KolomJenisPersyaratanDeskripsi
discount_percentangka

Tidak dapat muncul bersamaan dengan discount_value, other_offer_detail_text

Persentase tagihan yang didiskon. [0, 100] Untuk penawaran 1+1 atau diskon 50% yang berlaku untuk seluruh makanan (misalnya, prasmanan 1+1, 1+1 untuk seluruh tagihan, 1+1 untuk menu tetap), nilai ini dapat ditetapkan ke 50.
discount_valueobject
(Money)

Tidak dapat muncul bersamaan dengan discount_percent, other_offer_detail_text

Nilai tetap diskon.
other_offer_detail_textstring

Tidak dapat muncul bersamaan dengan discount_percent, discount_value

Teks bentuk bebas untuk mendeskripsikan diskon. Untuk penawaran 1+1 tertentu (misalnya, 1+1 minuman, +1 hidangan utama, 1+1 item menu tertentu), detail ini harus dijelaskan di sini.

biaya

Nama KolomJenisPersyaratanDeskripsi
amountobject
(Money)

Tidak dapat muncul bersamaan dengan amount_range

amount_rangeobject
(MoneyRange)

Tidak dapat muncul bersamaan dengan amount

denomination_type

Nama KolomJenisPersyaratanDeskripsi
fixed_denominationsobject
(FixedDenominations)

Tidak dapat muncul bersamaan dengan custom_range

Digunakan saat kartu voucher tersedia dalam jumlah tetap tertentu.
custom_rangeobject
(MoneyRange)

Tidak dapat muncul bersamaan dengan fixed_denominations

Digunakan saat merek mengizinkan pengguna memilih nilai nominal kustom (fleksibel) dalam rentang yang ditentukan.

Upload feed

Feed penawaran harus diupload ke server SFTP feed Generic. Ikuti Tutorial Cara menggunakan server SFTP feed generik untuk mendapatkan petunjuk dan gunakan set name ke google.offer dalam file deskriptor Anda.

Frekuensi upload

Secara umum, Google mengharapkan 1 upload feed per hari. Frekuensi dapat ditingkatkan atau dikurangi, bergantung pada frekuensi pembaruan penawaran di pihak Anda untuk memastikan presisi yang tinggi secara konsisten. Berkonsultasilah dengan POC Google Anda.

Perlu waktu beberapa jam hingga data muncul di Google.

Penawaran kategorisasi

  • OFFER_CATEGORY_BASE_OFFER: Penawaran yang dapat diklaim secara terpisah tanpa digabungkan dengan penawaran lain. Saluran ini mencakup:
    • Diskon tetap untuk seluruh tagihan (misalnya, diskon 20%)
    • Penawaran langganan (misalnya, Dessert gratis dengan langganan)
    • Penawaran pembayaran jika tidak ada penawaran dasar lain untuk restoran
    • Catatan: Penawaran penghapusan atau pengurangan biaya di seluruh platform tidak boleh ditetapkan sebagai penawaran dasar.
  • Penawaran Add-On: Penawaran yang memerlukan penawaran dasar untuk diklaim. Hal ini mencakup:
    • OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER (misalnya, Diskon tambahan 10% dengan kartu kredit tertentu)
    • OFFER_CATEGORY_ADD_ON_COUPON_OFFER (misalnya, Minuman gratis dengan kode kupon tertentu)
    • OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER (misalnya, Diskon tambahan 10% untuk pelanggan)
    • OFFER_CATEGORY_ADD_ON_FEE_REDUCTION_OFFER (misalnya, Pengiriman gratis atau biaya lebih rendah)

Pertimbangan Lainnya

  • Penawaran penghapusan atau pengurangan biaya di seluruh platform tidak boleh ditetapkan sebagai penawaran dasar (OFFER_CATEGORY_BASE_OFFER). Penawaran tersebut hanya boleh ditetapkan sebagai OFFER_CATEGORY_ADD_ON_FEE_REDUCTION_OFFER untuk melengkapi penawaran dasar aktif lainnya.
  • Jika restoran tidak menetapkan Penawaran Dasar, penawaran Add-On tidak akan ditampilkan. Jika tidak ada Penawaran Dasar, setiap Penawaran Pembayaran, Langganan, atau Kupon yang dapat diklaim tanpa perlu ditambahkan ke penawaran lain harus diberi tag OFFER_CATEGORY_BASE_OFFER.
    • Bergantung pada jenisnya, data yang relevan untuk PaymentInstrument, Subscription, atau Coupon harus ditetapkan.
    • Partner harus memberikan 2 salinan setiap penawaran ini untuk mencakup skenario saat penawaran tersebut berfungsi sebagai Penawaran Dasar dan Penawaran Add-On. Teks Penawaran Add-On kemudian dapat ditetapkan untuk beberapa restoran menggunakan entity_ids atau add_on_offer_applicable_to_all_entities.
  • Jika restoran memiliki beberapa Penawaran Dasar yang dapat digabungkan, semua Penawaran Dasar harus diberi tag OFFER_CATEGORY_BASE_OFFER, dan Penawaran Dasar yang merupakan penawaran Pembayaran, Langganan, atau Kupon harus dikirimkan juga sebagai jenis Penawaran Add-On yang relevan.
  • ValidityPeriod harus digunakan untuk mengaktifkan penawaran Add-On sebagai Penawaran Dasar hanya jika tidak ada Penawaran Dasar yang aktif.
  • Konsolidasi penawaran identik menurut instrumen pembayaran: Jika beberapa instrumen pembayaran memiliki nilai diskon yang sama persis (misalnya, Kartu Kredit, Kartu Debit, dan Net Banking semuanya menawarkan diskon 5%), kelompokkan instrumen pembayaran tersebut dalam satu objek Offer yang dikonsolidasikan, bukan mengirimkan penawaran duplikat yang terpisah. Untuk melakukannya, isi daftar payment_instrument.items dengan semua instrumen pembayaran yang berlaku. Tindakan ini mengurangi kekacauan tata letak di antarmuka Google dan mencegah potensi penurunan peringkat karena pembatasan duplikat yang berlebihan.

Skenario contoh:

  • Sebuah restoran menawarkan diskon 5% jika membayar dengan kartu kredit tertentu dan minuman gratis dengan kode kupon tertentu

    • Penawaran kartu kredit diskon 5% harus dikirim sebagai 2 salinan, satu diberi tag sebagai OFFER_CATEGORY_BASE_OFFER dan satu lagi diberi tag sebagai OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER dengan detail PaymentInstrument yang disertakan.
    • Penawaran minuman gratis dengan kode kupon harus dikirim sebagai OFFER_CATEGORY_ADD_ON_COUPON_OFFER dengan detail Coupon disertakan.
  • Sebuah restoran menawarkan diskon 10% untuk pelanggan yang datang langsung dan diskon 5% jika membayar dengan kartu kredit tertentu, yang keduanya dapat digabungkan.

    • Penawaran datang langsung 10% harus diberi tag OFFER_CATEGORY_BASE_OFFER.
    • Penawaran kartu kredit diskon 5% harus memiliki 2 salinan, dengan satu salinan diberi tag sebagai OFFER_CATEGORY_BASE_OFFER, dan satu salinan diberi tag sebagai OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER.
  • Sebuah restoran menawarkan diskon 10% hanya untuk makan siang pada hari kerja, dan diskon 5% kapan saja saat membayar dengan kartu kredit tertentu.

    • Penawaran diskon 10% harus ditetapkan ValidityPeriod untuk menunjukkan hanya selama jam makan siang restoran pada hari kerja.
    • Penawaran kartu kredit diskon 5% harus dikirimkan sebagai 2 salinan.
      • Satu salinan harus diberi tag sebagai OFFER_CATEGORY_BASE_OFFER dengan detail PaymentInstrument yang disertakan. ValidityPeriod harus disetel untuk mengecualikan jam makan siang pada hari kerja saat penawaran makan siang diskon 10% aktif
      • Satu salinan harus diberi tag sebagai OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER dengan detail PaymentInstrument yang disertakan.
    • Semua Penawaran Pembayaran lainnya untuk restoran ini harus diberi tag sebagai OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER.

Proses pengembangan & peluncuran

Selama integrasi, Partner Portal akan dapat membantu Anda dengan memberikan informasi dan masukan berdasarkan pengembangan Anda. Proses pengembangan akan mengikuti alur ini:

  • Integrasi akan terlebih dahulu dikembangkan di lingkungan sandbox. Anda harus menggunakan ekspor produksi (atau bahkan data produksi secara langsung) di lingkungan Google Sandbox. Hal ini membantu memastikan pengembangan Anda menangkap semua kasus ekstrem dan memungkinkan Google mengevaluasi kualitas data serta memberikan bantuan yang lebih baik berdasarkan model data Anda.
  • Setelah Anda mengupload feed harian Penjual, Layanan, dan Transaksi yang lengkap secara konsisten di lingkungan Google Sandbox, tim Google akan mengevaluasi feed Anda. Setelah tim Google memberikan persetujuan, Anda dapat mengirimkan kode ke produksi dan mulai mengirimkan data produksi ke lingkungan Produksi Google.
  • Setelah Anda sepenuhnya menguji integrasi Produksi, tim Google juga akan mengujinya. Setelah semua pengujian selesai, integrasi Anda akan diluncurkan.

Pemantauan

Untuk memastikan pengalaman pengguna yang baik, Google akan memeriksa bahwa penawaran yang diberikan valid, benar, dan memenuhi kriteria kebijakan kami sebelum dan setelah peluncuran. Untuk melakukannya, Google akan menggunakan kombinasi peninjauan manual dan otomatis. Hasil ulasan ini dapat diakses di Dasbor Penawaran di Pusat Tindakan (khusus produksi). Hasil pemantauan ini dapat digunakan untuk memengaruhi peringkat penawaran.

Pastikan halaman dimuat sepenuhnya dalam waktu kurang dari 5 detik dengan penawaran, jika tidak, hal ini akan dianggap sebagai kegagalan dan akan ditandai sebagai Bad link.

Pemeriksaan otomatis (Crawler)

Tim kualitas Google menerapkan crawler. Crawler adalah skrip yang mengotomatiskan browser web untuk melakukan beberapa klik dan mengekstrak informasi penawaran, hanya untuk tujuan pengujian kualitas.

Jumlah kueri

Misalnya, jika kami memutuskan untuk mengirim 5.000 pemeriksaan per hari, berarti 5.000 kali per hari (didistribusikan secara merata sepanjang hari, yaitu sekitar satu kali setiap 17 detik), crawler kami melakukan semua tindakan berikut yang akan dilakukan pengguna biasa:

  • Mulai dari Google Penelusuran, lalu klik link partner.
  • Cari informasi penawaran.
  • Jika penawaran memerlukan pemesanan, penawaran akan dilanjutkan ke alur pemesanan untuk mengonfirmasi bahwa penawaran tersedia pada waktu yang ditentukan (tidak ada pemesanan yang dilakukan).

Deteksi scraper web

Untuk memastikan bahwa web scraper tidak dilarang (yang dapat menyebabkan scraper menyimpulkan bahwa penawaran tidak tersedia), pastikan sistem Anda mengizinkan web scraper kami untuk membuat kueri halaman Anda setiap saat. Untuk mengidentifikasi scraper web kami:

  • Agen Pengguna web scraper akan berisi string "Google-Offers":
    • Contoh: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko; Google-Offers) Chrome/104.0.5112.101 Safari/537.36
  • Anda juga dapat memeriksa apakah panggilan berasal dari Google menggunakan DNS terbalik seperti yang direkomendasikan dalam "Memverifikasi Googlebot dan crawler Google lainnya". Dalam kasus khusus kami, resolusi DNS terbalik mengikuti pola ini: google-proxy-***-***-***-***.google.com.

Perilaku teknis

Menyimpan ke cache

Untuk mengurangi beban di situs partner, crawler kami umumnya dikonfigurasi untuk mematuhi semua header caching HTTP standar yang ada dalam respons. Artinya, untuk situs yang dikonfigurasi dengan benar, kita menghindari pengambilan konten yang jarang berubah (misalnya, library JavaScript) berulang kali. Untuk mengetahui detail selengkapnya tentang cara menerapkan caching, baca dokumentasi caching HTTP ini.