Teklifler
Teklif entegrasyonu, belirli zamanlarda belirli hizmetlere uygulanan satıcı promosyonları ve indirimleri hakkında yapılandırılmış bilgileri aktarmanıza olanak tanır. Teklifler; gerçek teklif (yüzde indirim, belirli bir tutarda indirim vb.), geçerlilik süreleri (belirli zamanlar, haftanın belirli günleri vb.) ve geçerli kullanımların (teklif yalnızca belirli hizmetlerde kullanılabilir) yanı sıra karmaşık kısıtlama kombinasyonlarından oluşur.
Fırsat örnekleri:
- Aralık ayında çarşamba ve perşembe günleri 12:00-17:00 saatleri arasında mezelerde %50 indirim
- Anneler Günü akşam yemeğinde 18:00-22:00 saatleri arasında bir tatlı alana bir tatlı bedava
- Her pazar 10:00-14:00 saatleri arasında brunch ana yemeklerinde 5 ABD doları indirim
- %10 indirim (premium abonelere% 5 indirim ve kullanıcı uygulamanız üzerinden ödeme yaparsa% 5 indirim ile birleştirilebilir)
Bir teklifin entegrasyona dahil edilebilmesi için teknik veri modeline uyması ve uygunluk koşullarımızı karşılaması gerekir. Entegrasyonunuzun uygun olduğundan emin olmak ve teknik koşullara uymayan tekliflerle ilgili ne yapmanız gerektiği hakkında talimat almak için fırsat politikalarımızı inceleyin.
Teklifleri uygulama
Teklif entegrasyonu, günlük olarak veya yüksek doğruluk sağlayacak (yani güncelliğini yitirmeyi azaltacak) sıklıkta yüklenecek iki feed'den oluşur:
- Şunlardan biri:
- Satıcı feed'i
(
Merchantyapılandırması kullanılarak) - Veya
Varlık feed'i
(
Genericyapılandırması kullanılarak)
- Satıcı feed'i
(
- Ve
Teklifler feed'i
(
Genericyapılandırması kullanılarak)
OfferFeed
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
data | nesne dizisi(Offer) |
Teklif
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
offer_id | dize | Zorunlu | Teklifin benzersiz kimliği. Zorunlu. |
entity_ids | dize dizisi | Bu teklife katılan satıcıların listesi. | |
add_on_offer_applicable_to_all_entities | boole | Doğruysa bu teklif, toplayıcı altındaki tüm tüzel kişiler için geçerlidir. Yalnızca ek teklifler için geçerlidir. | |
offer_source | enum(OfferSource) | Zorunlu | Teklifler toplayıcı, bireysel satıcı veya üçüncü taraf bir eklenti tarafından sağlanabilir. Zorunlu. |
action_type | enum(ActionType) | Zorunlu | Teklifi sağlayan hizmet. Bir offer_id yalnızca bir action_type'a ait olabilir. Bir teklif birden fazla hizmet türünde paylaşılabiliyorsa her hizmet türü için benzersiz kimliklere sahip yinelenen teklifler oluşturulmalıdır. Zorunlu. |
offer_modes | enum dizisi(OfferMode) | Zorunlu | Tekliften yararlanma yöntemleri (ör. randevusuz hizmet, rezervasyon, online vb.). Zorunlu. |
offer_category | enum(OfferCategory) | Zorunlu | Teklifin kategorisi. Zorunlu. |
source_assigned_priority | sayı | Kaynağın teklife atadığı öncelik düzeyini gösteren, negatif olmayan tam sayı ([1-100], burada 1 en yüksek önceliği temsil eder). Aynı satıcı için birden fazla teklif mevcut olduğunda bu, teklifleri sıralamak için bir sinyal olur. 0, önceliğin ayarlanmadığını gösterir. | |
offer_details | nesne(OfferDetails) | Zorunlu | İndirim, rezervasyon maliyeti gibi teklifin ayrıntıları. Zorunlu. |
offer_restrictions | nesne(OfferRestrictions) | Zorunlu | Teklifin nasıl kısıtlandığını açıklar. Örneğin, abonelik/ödeme aracının gerekli olup olmadığı, bu teklifin diğer tekliflerle birleştirilip birleştirilemeyeceği (ve hangi türlerle) vb. Zorunlu. |
coupon | object(Coupon) | Kupon ayrıntıları. offer_category: OFFER_CATEGORY_ADD_ON_COUPON_OFFER için gereklidir. | |
payment_instrument | nesne(PaymentInstrument) | Ödeme aracının ayrıntıları. offer_category: OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER için gereklidir. | |
subscription | nesne(Subscription) | Abonelik ayrıntıları. offer_category: OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER için gereklidir. | |
terms | object(Terms) | Zorunlu | Teklifin hüküm ve koşulları. Zorunlu. |
validity_periods | nesne dizisi(ValidityPeriod) | Zorunlu | Teklifin geçerlilik dönemi. Teklifin geçerli olduğu dönemi (başlangıç ve bitiş saatleri, haftanın günleri vb.) açıklar. Zorunludur. |
offer_url | dize | Satıcının teklif sayfasının URL'si. offer_category: OFFER_CATEGORY_BASE_OFFER için gereklidir. | |
tags | enum dizisi(OfferTag) | Teklifle ilişkili özel etiketler. Bu, "Festival", "En Yüksek Puanlı", "En Çok Rezervasyon Yapılan" gibi özel teklifleri tanımlamak için kullanılır. | |
brand_id | dize | Teklifle ilişkili markayı tanımlar. Ayarlanmazsa varsayılan marka kullanılır. | |
availability_level | enum(AvailabilityLevel) | Teklifin stok durumu düzeyi. |
OfferDetails
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
offer_display_text | dize | Zorunlu | Teklif sağlayıcının arama sonuçları sayfasında müşterilere göstermek istediği teklif metni. Bu açıklamanın kullanıcılara gösterilen açıklamayla tam olarak aynı olmayabileceğini ve açıklamayı yeniden yazmak/ifade etmek için başka meta veriler kullanabileceğimizi unutmayın. Zorunlu. |
| oneOf(offer_specification) | Zorunlu | Bu oneOf'taki alanlardan yalnızca biri ayarlanabilir. |
max_discount_value | object(Money) | Kullanılabilecek maksimum indirim. Örneğin, 100 TL'ye kadar% 10 indirim. | |
min_spend_value | nesne(Money) | İndirimden yararlanmak için yapılması gereken minimum harcama tutarı. Örneğin, toplam fiyat 100 TL veya daha fazla olduğunda% 10 indirim. | |
booking_cost | nesne(Money) | Bu teklifi kullanmanın maliyeti. Örneğin, 15 ABD doları karşılığında masa ayırtıldığında nihai faturada 100 ABD doları indirim. | |
booking_cost_unit | enum(FeeUnit) | Rezervasyon maliyetinin birimi. Örneğin, kişi başına, işlem başına. | |
convenience_fee | nesne(Fee) | ||
booking_cost_adjustable | boole | Rezervasyon maliyetinin ayarlanabilir olup olmadığı (ör. rezervasyon maliyetinin nihai faturadan düşülüp düşülmediği). Örneğin: Rezervasyonla akşam yemeğinde% 30 indirim. Rezervasyon maliyeti 15 ABD dolarıdır ve nihai faturaya yansıtılır. Dolayısıyla nihai fatura: Toplam Harcama - %30 - 15 ABD doları | |
additional_fees | nesne dizisi(AdditionalFee) | Kullanıcıdan alınan ek ücretler. Örnekler: kolaylık, işleme, teslimat, paketleme, hizmet ücreti vb. | |
offer_discount_type | enum(OfferDiscountType) | İndirimin türü. | |
gift_card_info | object(GiftCardInfo) | Hediye kartı fırsatlarına özel ayrıntılar. |
Para
Para birimi türüyle birlikte bir para tutarını gösterir.
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
currency_code | dize | ISO 4217'de tanımlanan üç harfli para birimi kodu. | |
units | sayı | Tutarın tam birimleri.
Örneğin, currencyCode "USD" ise 1 birim, 1 ABD dolarıdır. | |
nanos | sayı | Miktarın nano (10^-9) birim sayısı.
Değer, -999.999.999 ile +999.999.999 arasında (değerler dahil) olmalıdır.
units pozitifse nanos pozitif veya sıfır olmalıdır.
units sıfırsa nanos pozitif, sıfır veya negatif olabilir.
units negatifse nanos negatif veya sıfır olmalıdır.
Örneğin, -1,75 ABD doları units=-1 ve nanos=-750.000.000 olarak gösterilir. |
Ücret
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
unit | enum(FeeUnit) | ||
type | enum(FeeType) | ||
| oneOf(cost) | Bu oneOf'taki alanlardan yalnızca biri ayarlanabilir. |
MoneyRange
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
min_amount | nesne(Money) | ||
max_amount | nesne(Money) |
AdditionalFee
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
name | dize | Zorunlu | Ek ücretin adı. Örnekler: özel ödeme yöntemi ücreti, sevkiyata hazırlık ücreti vb. Zorunludur. |
fee | nesne(Fee) |
GiftCardInfo
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
| oneOf(denomination_type) | Bu oneOf'taki alanlardan yalnızca biri ayarlanabilir. |
FixedDenominations
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
amounts | nesne dizisi(Money) | Kullanılabilir tüm ayrı birimlerin listesi (ör. [100, 500, 1000]). |
OfferRestrictions
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
combinable_with_other_offers | boole | Bu teklifin diğer tekliflerle birleştirilip birleştirilemeyeceği. Doğru olduğunda iş ortakları, bu teklifin hangi tekliflerle birleştirilebileceğini belirtebilir. Hem combinable_offer_categories hem de combinable_offer_ids ayarlanırsa yukarıdaki koşullardan birini karşılayan tüm teklifler birleştirilebilir. | |
combinable_offer_categories | enum dizisi(OfferCategory) | Bu teklifin birleştirilebileceği teklif türlerinin listesi. Örneğin, bu teklif diğer kuponlarla birleştirilebilir. combinable_with_other_offers doğru değerine ayarlanırsa ve bu alan ayarlanmazsa tüm türler birleştirilebilir. | |
combinable_offer_ids | dize dizisi | Bu teklifin birleştirilebileceği teklif numaralarının listesi. Bazı teklifler yalnızca belirli diğer offer_id'lerle (üst teklifler olarak kabul edilebilir) birleştirilebilir. combinable_with_other_offers alanı doğru değerine ayarlanmışsa ve bu alan ayarlanmamışsa tüm teklif numaraları birleştirilebilir. | |
inclusions | nesne dizisi(OfferCondition) | Teklifin geçerli olması için karşılanması gereken koşulların listesi (ör. alkolsüz içecekler, yiyecekler). | |
exclusions | nesne dizisi(OfferCondition) | Teklifi geçersiz kılacak koşulların listesi (ör. açık büfe, paket teklifler ve kokteyller). | |
min_guest | sayı | Tekliften yararlanmak için gereken minimum kişi sayısı. Not: Bu alan yalnızca restoran rezervasyonları için geçerlidir ve diğer sektörlerde kullanılmamalıdır. | |
food_offer_restrictions | nesne(FoodOfferRestrictions) | Yemek tekliflerine özgü kısıtlamalar. | |
max_redemption_count | sayı | Bu teklifin kaç kez kullanılabileceğine dair kısıtlamalar. 0 değeri, sınır olmadığını belirtir. Örneğin, 3 değeri, kullanıcının bu teklifi 3 kez kullanabileceği anlamına gelir. | |
max_total_discount_value | object(Money) | Bu teklifin birden fazla işleminde kullanılabilecek maksimum indirim. | |
special_conditions | dize dizisi | Bu teklifle ilgili, kullanıcıya gösterilmesi gereken özel koşullar. Örnekler: "Yalnızca [bölge] içinde ödeme için geçerlidir", "Online ödemeler hariçtir", "Hediye çeki indirim döneminde KULLANILABİLİR." |
OfferCondition
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
description | dize |
FoodOfferRestrictions
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
meal_types | enum dizisi(MealType) | Teklifin uygulanabileceği yemek türleri (ör. öğle veya akşam yemeği). Ayarlanmazsa teklif tüm öğün türlerine uygulanabilir. | |
restricted_to_certain_courses | boole | Teklifin yalnızca belirli kurslara uygulanıp uygulanamayacağı. |
Kupon
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
text | dize | Teklif sağlayıcının kullanıcılara göstermek istediği kupon metni. | |
code | dize | Zorunlu | Tekliften yararlanmak için kupon kodu gerekir. Zorunlu. |
PaymentInstrument
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
items | nesne dizisi(PaymentInstrumentItem) | Zorunlu | Teklifi kullanmak için kullanılabilecek ödeme araçlarının listesi. Zorunlu. |
provider_name | dize | Ödeme aracı sağlayıcısının adı. Bankacılık iş ortağı, banka adı vb. olabilir. Örneğin: American Express, HDFC, ICICI. |
PaymentInstrumentItem
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
type | enum(PaymentInstrumentType) | Zorunlu | Ödeme aracının türü. Zorunlu. |
name | dize | Zorunlu | Ödeme aracı öğesinin adı (ör. kredi kartının adı). Örneğin: HDFC Infinia, American Express Platinum. Zorunlu. |
Abonelik
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
name | dize | Zorunlu | Aboneliğin adı. Zorunlu. |
subscription_auto_added | boole | Kullanıcı bu tekliften yararlandığında aboneliğin otomatik olarak eklenip eklenmeyeceği | |
cost | object(Money) | Zorunlu | Abonelik ücreti Zorunlu. |
subscription_duration | nesne(Duration) | Zorunlu | Aboneliğin subscription_cost karşılığında geçerli olduğu süre. Zorunlu. |
terms_and_conditions_url | dize | İş ortağının bu abonelikle ilgili hükümler ve koşullarının URL'si. |
Süre
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
seconds | sayı | Zaman aralığının imzalı saniye sayısı. -315.576.000.000 ile +315.576.000.000 arasında (her iki değer de dahil) olmalıdır. Not: Bu sınırlar şu şekilde hesaplanır: 60 sn/dk * 60 dk/sa * 24 sa/gün * 365,25 gün/yıl * 10.000 yıl | |
nanos | sayı | Zaman aralığının nanosaniye çözünürlüğünde saniyenin işaretli kesirleri. Bir saniyeden kısa süreler 0 değerine sahip bir seconds alanı ve pozitif veya negatif bir nanos alanı ile temsil edilir. Bir saniye veya daha uzun süreler için nanos alanının sıfır olmayan değeri, seconds alanıyla aynı işarete sahip olmalıdır. -999.999.999 ile +999.999.999 arasında (her iki değer de dahil) olmalıdır. |
Şartlar
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
url | dize | İş ortağının hükümler ve koşullarının URL'si. | |
restricted_to_certain_users | boole | Teklifin belirli kullanıcılarla sınırlı olup olmadığı. | |
terms_and_conditions | dize | İş ortağı tarafından sağlanan birincil H&K metni. | |
additional_terms_and_conditions | dize dizisi | İş ortağının birincil Hükümler ve Koşulları'na ek olarak geçerli olan hükümler ve koşullar. |
ValidityPeriod
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
valid_period | nesne(ValidityRange) | Fırsatın geçerli olduğu başlangıç ve bitiş zaman damgası. Bu zamanlar farklı günleri temsil etmelidir. Örneğin, başlangıç zamanı 00:00 (günün başlangıcı) olmalı ve geçerlilik dönemi sona erdiği gün bitiş zamanı 00:00 (hariç) olmalıdır. | |
time_of_day | nesne dizisi(TimeOfDayWindow) | Belirli bir günde geçerli zaman aralığını ve teklifin hangi günlerde kullanılabileceğini belirtir. Gece yarısını geçen zaman aralıkları (ör. 22:00 - 02:00) için her gün ayrı zaman aralıkları kullanın: Biri 23:59:59'da sona eren, diğeri ise ertesi gün 00:00'da başlayan.
Örneğin:
Pazartesi: 10:00-17:00
Salı: 10:00-14:00
Salı: 17:00-19:00
Çarşamba, Perşembe, Cuma, Cumartesi, Pazar: 15:00-19:00
Hiçbir zaman aralığı ayarlanmamışsa teklifin valid_period içinde her zaman kullanılabileceği anlamına gelir. | |
time_exceptions | nesne dizisi(ValidTimeException) | Yukarıdaki valid_period ve valid_time_of_week için istisnaları belirtir. | |
date_exceptions | nesne dizisi(Date) | Yukarıdaki valid_period ve time_of_day için günlerdeki istisnaları belirtir. | |
validity_scope | enum(ValidityScope) | Geçerlilik döneminin kapsamını belirtir. | |
validity_duration_in_days | sayı | Voucher/kuponun satın alındıktan sonra geçerli olduğu süre (gün cinsinden). |
ValidityRange
Kapalı-açık zaman damgası aralığı.
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
valid_from_time | nesne(Timestamp) | Zorunlu | Aralığın başlangıç zamanı (dahil). Zorunlu. |
valid_through_time | nesne(Timestamp) | Aralığın bitiş zamanı (hariç). Ayarlanmazsa bu dönemin hiç bitmediği anlamına gelir. İsteğe bağlıdır. |
Zaman damgası
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
seconds | sayı | Unix Epoch 1970-01-01T00:00:00Z'den bu yana geçen UTC süresini saniye cinsinden gösterir. -62135596800 ile 253402300799 arasında (0001-01-01T00:00:00Z ile 9999-12-31T23:59:59Z'ye karşılık gelir) olmalıdır. | |
nanos | sayı | Nanosaniye çözünürlüğünde, negatif olmayan saniyenin kesirleri. Bu alan, saniyenin alternatifi değil, sürenin nanosaniye kısmıdır. Kesirli negatif saniye değerleri, zamanı ileriye doğru sayan negatif olmayan nanos değerlerine sahip olmalıdır. 0 ile 999.999.999 arasında (her iki değer de dahil) olmalıdır. |
TimeOfDayWindow
TimeWindow nesnesi, kullanıcının siparişinin verilebileceği veya yerine getirilebileceği zaman aralıklarının listesini açıklayan bileşik bir öğedir.
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
time_windows | object(TimeOfDayRange) | Zorunlu | Siparişin verilebileceği/karşılanabileceği zaman aralığı. Zorunlu. |
day_of_week | enum dizisi(DayOfWeek) | Pencerelerin uygulandığı haftanın günlerinin listesi. Hiçbiri ayarlanmamışsa haftanın tüm günleri için geçerli olduğu anlamına gelir. İsteğe bağlıdır. | |
day_of_month | nesne dizisi(DayOfMonthRange) | Pencerelerin uygulandığı ayın günleri. Hiçbiri ayarlanmamışsa ayın tüm günleri için geçerli olduğu anlamına gelir. İsteğe bağlıdır. |
TimeOfDayRange
Kapalı-açık zaman aralığı.
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
open_time | nesne(TimeOfDay) | Aralığın başlangıç saatini (dahil) gösteren bir saat. Ayarlanmazsa 00:00:00 anlamına gelir. İsteğe bağlıdır. | |
close_time | object(TimeOfDay) | Aralığın bitiş zamanını (hariç) gösteren bir saat. Ayarlanmazsa 23:59:59 olarak kabul edilir. İsteğe bağlıdır. |
TimeOfDay
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
hours | sayı | Günün saatleri, 24 saat biçiminde. 0'dan büyük veya 0'a eşit olmalı ve genellikle 23'ten küçük veya 23'e eşit olmalıdır. Bir API, işletmenin kapanış saati gibi senaryolar için "24:00:00" değerine izin vermeyi seçebilir. | |
minutes | sayı | Saatin dakikası. 0'dan büyük veya 0'a eşit ve 59'dan küçük veya 59'a eşit olmalıdır. | |
seconds | sayı | Bir dakikanın saniyeleri. 0'dan büyük veya 0'a eşit olmalı ve genellikle 59'dan küçük veya 59'a eşit olmalıdır. Artık saniyelere izin veren bir API, 60 değerine izin verebilir. | |
nanos | sayı | Nanosaniye cinsinden saniye kesirleri. 0'dan büyük veya 0'a eşit ve 999.999.999'dan küçük veya 999.999.999'a eşit olmalıdır. |
DayOfMonthRange
Yılın tüm ayları için geçerli olan bir ayın gün aralığı.
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
valid_from_day | sayı | Zorunlu | Aralığın başlangıç günü (dahil). Zorunlu. |
valid_through_day | sayı | Aralığın bitiş günü (dahil). Ayarlanmazsa bu aralık tek bir günü (valid_from_day) temsil eder. İsteğe bağlıdır. |
ValidTimeException
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
exceptional_period | nesne(ValidityRange) | Fırsatın geçerli olmadığı başlangıç ve bitiş zaman damgası. Bu zamanlar farklı günleri temsil etmelidir. Diğer bir deyişle, başlangıç zamanı 00:00 (günün başlangıcı) ve bitiş zamanı, istisna döneminin sona erdiği gün 00:00 (hariç) olmalıdır. |
Tarih
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
year | sayı | Tarihin yılı. 1 ile 9999 arasında bir değer olmalıdır. Yıl belirtmeden tarih girmek için 0 değerini kullanın. | |
month | sayı | Yılın ayı. 1 ile 12 arasında olmalı veya ay ve gün belirtilmeyen bir yılı belirtmek için 0 olmalıdır. | |
day | sayı | Ayın günü. Yıl ve ay için geçerli olan 1 ile 31 arasında olmalı veya günü önemli olmayan bir yıl ya da yıl ve ay belirtmek için 0 olmalıdır. |
OfferSource
| Ad | Açıklama |
|---|---|
OFFER_SOURCE_UNSPECIFIED | |
OFFER_SOURCE_AGGREGATOR |
ActionType
Fırsatın yerine getirme modunu gösterir. Bir teklif birden fazla sipariş karşılama modu arasında paylaşılabiliyorsa her sipariş karşılama modu için yinelenen teklifler oluşturulması beklenir.
| Ad | Açıklama |
|---|---|
ACTION_TYPE_UNSPECIFIED | |
ACTION_TYPE_FOOD_DELIVERY | Teklif, yemek teslimat hizmetleri için geçerlidir. |
ACTION_TYPE_FOOD_TAKEOUT | Teklif, paket servis veya gel-al siparişleri için geçerlidir. |
ACTION_TYPE_DINING | Fırsat, restoranda yemek yemek için geçerlidir. |
ACTION_TYPE_APPOINTMENT | Teklif, randevu rezervasyonu hizmetleri için geçerlidir. |
ACTION_TYPE_SHOPPING_IN_STORE | Teklif, çevrimdışı ve mağaza içi alışverişlerde geçerlidir. |
OfferMode
Kullanıcının tekliften yararlanabileceği yöntemi veya kanalı belirtir.
| Ad | Açıklama |
|---|---|
OFFER_MODE_OTHER | Diğer özel modların kapsamadığı karşılama yöntemleri için kullanın. |
OFFER_MODE_WALK_IN | Teklif, önceden rezervasyon yapılmadan yerinde ziyaretler için geçerlidir. |
OFFER_MODE_FREE_RESERVATION | Teklif, kullanıcının ön ödeme gerektirmeyen bir rezervasyon yapması durumunda geçerlidir. |
OFFER_MODE_PAID_RESERVATION | Teklif, kullanıcının ön ödeme gerektiren bir rezervasyon yapması durumunda geçerlidir. |
OFFER_MODE_ONLINE_ORDER | Teklif, bir web sitesi veya dijital platform üzerinden verilen siparişler için geçerlidir. |
OFFER_MODE_GIFT_CARD_PURCHASE | Fırsattan yararlanmak için hediye kartı satın almanın gerekli olduğunu gösterir. |
OfferCategory
Teklifin kategorisi. Temel teklif, tüm müşterilere sunulan standart bir tekliftir (ör. 100 TL üzeri harcamalarda% 10 indirim). Kupon veya ödeme aracıyla sınırlanan temel tekliflerde ilgili alanlar ayarlanır. Ayrıca ADD_ON_PAYMENT_OFFER gibi ek ürün tekliflerimiz de var. Bu tür teklifler, ek indirimlerden yararlanmak için diğer tekliflere eklenebilir.
| Ad | Açıklama |
|---|---|
OFFER_CATEGORY_UNSPECIFIED | UNSPECIFIED veya varsayılan enum değeri feed'lerde kullanılmamalıdır. |
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
| Ad | Açıklama |
|---|---|
FEE_UNIT_UNSPECIFIED | UNSPECIFIED veya varsayılan enum değeri feed'lerde kullanılmamalıdır. |
FEE_UNIT_PER_GUEST | |
FEE_UNIT_PER_TRANSACTION |
FeeType
| Ad | Açıklama |
|---|---|
FEE_TYPE_UNSPECIFIED | UNSPECIFIED veya varsayılan enum değeri feed'lerde kullanılmamalıdır. |
FEE_TYPE_FIXED | |
FEE_TYPE_VARIABLE |
OfferDiscountType
| Ad | Açıklama |
|---|---|
OFFER_DISCOUNT_TYPE_UNSPECIFIED | |
OFFER_DISCOUNT_TYPE_INSTANT_DISCOUNT | |
OFFER_DISCOUNT_TYPE_CASHBACK | |
OFFER_DISCOUNT_TYPE_REWARD_POINT |
MealType
| Ad | Açıklama |
|---|---|
MEAL_TYPE_UNSPECIFIED | UNSPECIFIED veya varsayılan enum değeri feed'lerde kullanılmamalıdır. |
MEAL_TYPE_BREAKFAST | |
MEAL_TYPE_LUNCH | |
MEAL_TYPE_DINNER |
PaymentInstrumentType
| Ad | Açıklama |
|---|---|
PAYMENT_INSTRUMENT_TYPE_UNSPECIFIED | UNSPECIFIED veya varsayılan enum değeri feed'lerde kullanılmamalıdır. |
PAYMENT_INSTRUMENT_CREDIT_CARD | |
PAYMENT_INSTRUMENT_DEBIT_CARD | |
PAYMENT_INSTRUMENT_BANK_ACCOUNT | |
PAYMENT_INSTRUMENT_UPI | |
PAYMENT_INSTRUMENT_ONLINE_WALLET | |
PAYMENT_INSTRUMENT_NETBANKING |
HaftanınGünü
Haftanın bir gününü temsil eder.
| Ad | Açıklama |
|---|---|
DAY_OF_WEEK_UNSPECIFIED | Haftanın günü belirtilmemiş. |
MONDAY | Pazartesi |
TUESDAY | Salı |
WEDNESDAY | Çarşamba |
THURSDAY | Perşembe |
FRIDAY | Cuma |
SATURDAY | Cumartesi |
SUNDAY | Pazar |
ValidityScope
Geçerlilik döneminin kapsamı (ör. bu geçerlilik döneminin tam olarak hangi işlemler için geçerli olduğu)
| Ad | Açıklama |
|---|---|
VALIDITY_SCOPE_UNSPECIFIED | |
VALIDITY_SCOPE_CLAIM | |
VALIDITY_SCOPE_REDEEM |
OfferTag
| Ad | Açıklama |
|---|---|
OFFER_TAG_UNSPECIFIED | UNSPECIFIED veya varsayılan enum değeri feed'lerde kullanılmamalıdır. |
OFFER_TAG_NEW_YEAR_SPECIAL | |
OFFER_TAG_VALENTINES_SPECIAL |
AvailabilityLevel
Bir teklifin stok veya kullanılabilirlik durumunu gösterir.
| Ad | Açıklama |
|---|---|
AVAILABILITY_LEVEL_UNSPECIFIED | |
AVAILABILITY_LEVEL_LOW | Teklifin stokta azaldığını gösterir. Kullanıcıların, stoklar tükenmeden önce bu teklifi kullanmaları önerilir. MEDIUM ve HIGH seçeneklerini daha sonra ekleyebiliriz. |
offer_specification
İndirim, toplam değerden çıkarılan bir yüzde veya sabit bir değer olabilir. Örneğin: 1. Nihai faturada% 10 indirim. 2. Siparişlerde 15 ABD doları indirim Satıcılar, ilgili spesifikasyon alanları aracılığıyla "bir alana bir bedava" gibi özel indirimler de sunabilir. Zorunlu.
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
discount_percent | sayı |
| Faturanın indirimli yüzdesi. [0, 100] Yemeğin tamamında geçerli olan 1+1 veya% 50 indirim teklifleri için (ör. açık büfe 1+1, tüm hesapta 1+1, set menüde 1+1) bu değer 50 olarak ayarlanabilir. |
discount_value | nesne(Money) |
| İndirimin sabit değeri. |
other_offer_detail_text | dize |
| İndirimi açıklayan serbest biçimli metin. Belirli 1+1 teklifleri (ör. 1+1 içecek, +1 ana yemek, 1+1 seçili menü öğeleri) için bu ayrıntılar burada açıklanmalıdır. |
maliyet
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
amount | nesne(Money) |
| |
amount_range | nesne(MoneyRange) |
|
denomination_type
| Alan Adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
fixed_denominations | object(FixedDenominations) |
| Hediye kartı belirli, sabit tutarlarda kullanılabildiğinde kullanılır. |
custom_range | object(MoneyRange) |
| Markanın, kullanıcıların tanımlı bir aralıkta özel (esnek) bir nominal değer seçmesine izin verdiği durumlarda kullanılır. |
Feed yükleme
Teklif feed'i, Generic feed SFTP sunucusuna yüklenmelidir. Talimatlar için Genel feed SFTP sunucusu nasıl kullanılır? eğitimini uygulayın ve tanımlayıcı dosyanızda google.offer olarak ayarlanmış name kullanın.
Yükleme sıklığı
Google, genellikle günde 1 feed yüklemesi yapılmasını bekler. Sürekli olarak yüksek doğruluk sağlamak için sıklık, teklif güncellemelerinizin sıklığına bağlı olarak artırılabilir veya azaltılabilir. Google'daki ilgili kişinize danışın.
Verilerin Google'da görünmesi birkaç saat sürer.
Fırsatları kategorilere ayırma
OFFER_CATEGORY_BASE_OFFER: Başka bir teklifle birleştirilmeden bağımsız olarak kullanılabilen teklifler. Bu kanallar aşağıdakileri kapsar:- Faturanın tamamına uygulanan sabit indirimler (ör. %20 indirim)
- Abonelik teklifleri (ör. üyelikle birlikte ücretsiz tatlı)
- Restoran için başka temel tekliflerin olmadığı durumlarda ödeme teklifleri
- Not: Platform genelinde ücret muafiyeti veya ücret indirimi teklifleri, temel teklif olarak ayarlanmamalıdır.
- Ek Teklifler: Kullanılabilmesi için temel teklifin kullanılması gereken teklifler. Bunlar arasında şunlar yer alır:
OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER(ör. Belirli bir kredi kartıyla ek% 10 indirim)OFFER_CATEGORY_ADD_ON_COUPON_OFFER(ör. belirli bir kupon koduyla ücretsiz içecek)OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER(ör. abonelere ek% 10 indirim)OFFER_CATEGORY_ADD_ON_FEE_REDUCTION_OFFER(ör. ücretsiz teslimat veya indirimli ücret)
Dikkat edilmesi gereken diğer noktalar:
- Platform genelinde ücret muafiyeti veya indirim teklifleri, temel teklif (
OFFER_CATEGORY_BASE_OFFER) olarak ayarlanmamalıdır. Bu teklifler, yalnızca başka bir etkin temel teklifi tamamlamak içinOFFER_CATEGORY_ADD_ON_FEE_REDUCTION_OFFERolarak ayarlanmalıdır. - Bir restoranın temel teklifi yoksa ek teklifler gösterilmez.
Temel Teklif yoksa başka bir teklife eklenmesine gerek kalmadan talep edilebilecek tüm Ödeme, Abonelik veya Kupon Teklifleri
OFFER_CATEGORY_BASE_OFFERolarak etiketlenmelidir.- Türe bağlı olarak,
PaymentInstrument,SubscriptionveyaCouponiçin ilgili veriler ayarlanmalıdır. - İş ortakları, hem temel teklif hem de ek teklif olarak işlev gördükleri senaryoları kapsamak için bu tekliflerin her birinden 2 kopya sağlamalıdır. Ek teklif metni,
entity_idsveyaadd_on_offer_applicable_to_all_entitieskullanılarak birden fazla restoran için ayarlanabilir.
- Türe bağlı olarak,
- Bir restoranın birleştirilebilir birden fazla Temel Teklifi varsa tüm Temel Teklifler
OFFER_CATEGORY_BASE_OFFERolarak etiketlenmelidir. Ödeme, Abonelik veya Kupon teklifleri olan Temel Teklifler ise ilgili Ek Teklif türü olarak ayrıca gönderilmelidir. ValidityPeriod, yalnızca etkin bir temel teklif olmadığında eklenti tekliflerini temel teklif olarak etkinleştirmek için kullanılmalıdır.- Ödeme aracına göre aynı tekliflerin birleştirilmesi: Birden fazla ödeme aracı tam olarak aynı indirim değerini paylaşıyorsa (örneğin, kredi kartı, banka kartı ve internet bankacılığı% 5 indirim sunuyorsa) ayrı yinelenen teklifler göndermek yerine bunları tek bir birleştirilmiş
Offernesnesi altında gruplandırın. Bunun içinpayment_instrument.itemslistesini geçerli tüm ödeme araçlarıyla doldurun. Bu sayede, Google arayüzündeki düzen karmaşası azaltılır ve aşırı yinelenen kısıtlamalar nedeniyle sıralamada düşüş yaşanması önlenir.
Örnek senaryolar:
Bir restoran, belirli bir kredi kartıyla ödeme yapıldığında% 5 indirim ve belirli bir kupon koduyla ücretsiz içecek sunuyor.
- %5 indirimli kredi kartı teklifi, biri
OFFER_CATEGORY_BASE_OFFER, diğeriOFFER_CATEGORY_ADD_ON_PAYMENT_OFFERolarak etiketlenmiş vePaymentInstrumentayrıntıları eklenmiş 2 kopya halinde gönderilmelidir. - Kupon koduyla ücretsiz içecek teklifi,
Couponayrıntılarıyla birlikteOFFER_CATEGORY_ADD_ON_COUPON_OFFERolarak gönderilmelidir.
- %5 indirimli kredi kartı teklifi, biri
Bir restoran, randevusuz gelen müşterilere% 10 indirim ve belirli bir kredi kartıyla ödeme yapıldığında% 5 indirim sunuyor. Bu iki indirim birleştirilebilir.
- %10 randevusuz hizmet teklifi
OFFER_CATEGORY_BASE_OFFERolarak etiketlenmelidir. - Kredi kartı için% 5 indirim teklifinin 2 kopyası olmalıdır. Bunlardan biri
OFFER_CATEGORY_BASE_OFFER, diğeri iseOFFER_CATEGORY_ADD_ON_PAYMENT_OFFERolarak etiketlenmelidir.
- %10 randevusuz hizmet teklifi
Bir restoran, hafta içi yalnızca öğle yemeğinde% 10, belirli bir kredi kartıyla ödeme yapıldığında ise her zaman% 5 indirim sunuyor.
- %10 indirim teklifinde, yalnızca restoranın hafta içi öğle yemeği saatlerini gösterecek şekilde ayarlanmış
ValidityPeriodbulunmalıdır. - Kredi kartıyla% 5 indirim teklifi 2 kopya olarak gönderilmelidir.
- Kopyalardan biri,
PaymentInstrumentayrıntılarıyla birlikteOFFER_CATEGORY_BASE_OFFERolarak etiketlenmelidir.ValidityPeriodöğle yemeğinde% 10 indirim teklifi etkin olduğunda hafta içi öğle yemeği saatlerini hariç tutacak şekilde ayarlanmalıdır. - Kopyalardan biri
OFFER_CATEGORY_ADD_ON_PAYMENT_OFFERolarak etiketlenmeli vePaymentInstrumentayrıntılarını içermelidir.
- Kopyalardan biri,
- Bu restoran için diğer tüm ödeme teklifleri
OFFER_CATEGORY_ADD_ON_PAYMENT_OFFERolarak etiketlenmelidir.
- %10 indirim teklifinde, yalnızca restoranın hafta içi öğle yemeği saatlerini gösterecek şekilde ayarlanmış
Geliştirme ve lansman süreci
Entegrasyonunuz boyunca İş Ortağı Portalı, geliştirme sürecinize dayalı bilgiler ve geri bildirimlerle size yardımcı olabilir. Geliştirme süreci şu akışı izler:
- Entegrasyon ilk olarak korumalı alan ortamında geliştirilir. Google korumalı alan ortamında, üretim verilerinin bir kopyasını (veya doğrudan üretim verilerini) kullanmanız gerekir. Bu, geliştirme sürecinizin tüm uç durumları yakalamasına yardımcı olur ve Google'ın veri kalitesini değerlendirmesine ve veri modelinize göre size daha iyi yardımcı olmasına olanak tanır.
- Google Sandbox ortamına Merchant, Services ve Deals feed'ini eksiksiz ve günlük olarak yüklemeye başladığınızda Google Ekibi feed'lerinizi değerlendirir. Google ekibi onay verdikten sonra kodunuzu üretime aktarabilir ve Google üretim ortamına üretim verileri göndermeye başlayabilirsiniz.
- Üretim entegrasyonunu tamamen test ettikten sonra Google ekibi de test eder. Tüm testler tamamlandıktan sonra entegrasyonunuz kullanıma sunulur.
İzleme
Google, iyi bir kullanıcı deneyimi sağlamak için sunulan tekliflerin geçerli ve doğru olduğunu, ayrıca lansman öncesinde ve sonrasında politika ölçütlerimizi karşıladığını kontrol eder. Bunun için Google, hem uzmanlar hem de otomatik incelemelerden yararlanır. Bu incelemelerin sonucu, İşlem Merkezi'nin Fırsat Kontrol Paneli'nde (yalnızca üretim) erişilebilir olacaktır. Bu izlemenin sonucu, tekliflerin sıralamasını etkilemek için kullanılabilir.
Sayfanın, tekliflerle birlikte tamamen yüklenmesinin 5 saniyeden kısa sürdüğünden emin olun. Aksi takdirde bu durum başarısızlık olarak kabul edilir ve Bad link olarak işaretlenir.
Otomatik kontroller (tarayıcılar)
Google Kalite Ekibi, tarayıcıları uygular. Tarayıcılar, yalnızca kalite testi amacıyla bazı tıklamaları gerçekleştirmek ve teklif bilgilerini ayıklamak için web tarayıcısını otomatikleştirme komut dosyalarıdır.
Sorgu sayısı
Örneğin, günde 5.000 kontrol göndermeye karar verirsek bu, günde 5.000 kez (güne eşit olarak dağıtılır, yani yaklaşık olarak her 17 saniyede bir) tarayıcımızın normal bir kullanıcının yapacağı tüm işlemleri yapacağı anlamına gelir:
- Google Arama'dan başlayın ve iş ortağı bağlantısını tıklayın.
- Teklif bilgilerini bulun.
- Teklif için rezervasyon gerekiyorsa teklifin belirtilen zamanda kullanılabilir olduğunu onaylamak için rezervasyon akışına devam edilir (rezervasyon yapılmaz).
Web kazıyıcı tespiti
Web kazıyıcının yasaklanmaması (bu durum, tekliflerin kullanılamadığı sonucuna varılmasına neden olabilir) için sisteminizin, web kazıyıcımızın sayfanızı her zaman sorgulamasına izin verdiğinden emin olun. Web kazıyıcımızı tanımlamak için:
- Web kazıyıcı kullanıcı aracısı, "Google-Offers" dizesini içerir:
- Örnek: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko; Google-Offers) Chrome/104.0.5112.101 Safari/537.36
- Ayrıca, "Googlebot'u ve diğer Google tarayıcılarını doğrulama" başlıklı makalede önerildiği gibi ters DNS kullanarak aramaların Google'dan gelip gelmediğini de kontrol edebilirsiniz.
Bizim durumumuzda, ters DNS çözümleme şu kalıbı izler:
google-proxy-***-***-***-***.google.com.
Teknik davranış
Önbelleğe alma
İş ortağı web sitesindeki yükü azaltmak için tarayıcılarımız genellikle yanıtta bulunan tüm standart HTTP önbelleğe alma başlıklarına uyacak şekilde yapılandırılır. Bu, doğru şekilde yapılandırılmış web sitelerinde nadiren değişen içeriklerin (ör. JavaScript kitaplıkları) tekrar tekrar getirilmesini önlediğimiz anlamına gelir. Önbelleğe almayı uygulama hakkında daha fazla bilgi için HTTP önbelleğe alma dokümanlarını inceleyin.