Fırsat entegrasyonuna katılan iş ortakları, başlamadan önce satıcı veya tüzel kişiye (pilot) dayalı entegrasyon adımında hesap kurulumunu tamamlamalıdır. Teklif entegrasyonunun uygulanması, test edilmesi ve kullanıma sunulması bu kılavuzda ayrıntılı olarak açıklanacaktır. Entegrasyon adımlarına geçmeden önce bu genel bakışı ve fırsat politikalarını inceleyin.
Teklifler
Fırsatlar entegrasyonu, satıcı promosyonları ve belirli zamanlarda belirli hizmetlere uygulanan indirimler hakkında yapılandırılmış bilgiler 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 kısıtlamaların karmaşık 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 başlangıç yemeklerinde %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 arasında brunch menüsünde 5 ABD doları indirim
- %10 indirim, premium abonelere% 5 indirim ve kullanıcı uygulamanız üzerinden ödeme yaparsa% 5 indirim ile birleştirilebilen, randevusuz hizmet teklifi olarak sunuluyor.
Bir teklifin entegrasyona dahil edilebilmesi için teknik veri modeline uygun olması 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 teklif politikalarımızı inceleyin.
Teklif uygulama
Fırsatlar entegrasyonu, günlük olarak veya yüksek doğruluk sağlayacak (yani eski verileri 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
Fırsatlar 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 | boolean | Doğruysa bu teklif, toplayıcı altındaki tüm öğeler için geçerlidir. Yalnızca eklenti teklifleri için geçerlidir. | |
offer_source | enum(OfferSource) | Zorunlu | Teklif, toplayıcı, bağımsız bir satıcı veya hatta üçüncü taraf tarafından eklenti olarak sağlanabilir. Zorunlu. |
action_type | enum(ActionType) | Zorunlu | Teklifi sunan 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 tekliflerin oluşturulması beklenir. Zorunlu. |
offer_modes | enum dizisi(OfferMode) | Zorunlu | Tekliften yararlanma yöntemleri (mağazaya gitme, 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], 1 en yüksek önceliği temsil eder). Aynı satıcı için birden fazla teklif olduğunda bu, tekliflerin sıralanması için bir sinyal olur. 0, önceliğin ayarlanmadığını gösterir. | |
offer_details | object(OfferDetails) | Zorunlu | İndirim, rezervasyon maliyeti gibi teklifin ayrıntıları. Zorunlu. |
offer_restrictions | object(OfferRestrictions) | Zorunlu | Teklifin nasıl kısıtlandığını (ör. abonelik/ödeme aracı gerekip gerekmediği, bu teklifin diğer tekliflerle birleştirilip birleştirilemeyeceği ve hangi tür tekliflerle birleştirilebileceği) açıklar. Zorunludur. |
coupon | object(Coupon) | Kupon ayrıntıları. offer_category: OFFER_CATEGORY_ADD_ON_COUPON_OFFER için zorunludur. | |
payment_instrument | object(PaymentInstrument) | Ödeme aracının ayrıntıları offer_category: OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER için zorunludur. | |
subscription | object(Subscription) | Abonelik ayrıntıları. offer_category: OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER için zorunludur. | |
terms | object(Terms) | Zorunlu | Teklifin şartları ve koşulları. Zorunlu. |
validity_periods | nesne dizisi(ValidityPeriod) | Zorunlu | Teklifin geçerlilik süresi. Teklifin geçerli olduğu zaman aralığını (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 zorunludur. | |
image_url | dize | Satıcının teklif resminin URL'si. | |
tags | enum dizisi(OfferTag) | Teklifle ilişkili özel etiketler. Bu, "Festival", "En Çok Puan Alan", "En Çok Rezervasyon Yapılan" gibi özel teklifleri belirlemek için kullanılır. | |
brand_id | dize | Hediye kartı anlaşmalarında, anlaşmayı sunan markayı tanımlamak için gereklidir. |
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. Zorunlu. |
| oneOf(offer_specification) | Zorunlu | Bu oneOf içindeki alanlardan yalnızca biri ayarlanabilir. |
max_discount_value | object(Money) | Faydalanılabilecek maksimum indirim. Örneğin, 100 TL'ye kadar% 10 indirim. | |
min_spend_value | object(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 | object(Money) | Bu teklifi kullanmanın maliyeti. Örneğin, 15 ABD doları karşılığında masa rezerve edildiğinde son 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 | object(Fee) | ||
booking_cost_adjustable | boolean | Rezervasyon maliyetinin ayarlanabilir olup olmadığı (ör. rezervasyon maliyeti nihai faturadan düşülür). Örneğin: Rezervasyonla akşam yemeğinde% 30 indirim. Rezervasyon maliyeti 15 ABD dolarıdır ve bu tutar 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, sevkiyata hazırlık, teslimat, paketleme, hizmet ücreti vb. | |
offer_discount_type | enum(OfferDiscountType) | İndirim türü. | |
gift_card_info | object(GiftCardInfo) | Özellikle hediye kartı fırsatlarıyla ilgili 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 | dize | Tutarın tam birimleri.
Örneğin, currencyCode "USD" ise 1 birim, bir ABD dolarıdır. | |
nanos | sayı | Tutarı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 içindeki alanlardan yalnızca biri ayarlanabilir. |
MoneyRange
| Alan adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
min_amount | object(Money) | ||
max_amount | object(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 | object(Fee) |
GiftCardInfo
| Alan adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
| oneOf(denomination_type) | Bu oneOf içindeki 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 | boolean | 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 ayarlanmışsa 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ğruysa ve bu alan ayarlanmamışsa tüm türler birleştirilebilir. | |
combinable_offer_ids | dize dizisi | Bu teklifin birleştirilebileceği offer_id'lerin listesi. Bazı teklifler yalnızca belirli diğer offer_id'lerle (üst teklifler olarak kabul edilebilir) birleştirilebilir. combinable_with_other_offers doğruysa ve bu alan ayarlanmamışsa tüm teklif kimlikleri 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ı. | |
food_offer_restrictions | object(FoodOfferRestrictions) | Yemek tekliflerine özgü kısıtlamalar. | |
special_conditions | dize dizisi | Bu teklif için 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" |
OfferCondition
| Alan adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
description | dize |
FoodOfferRestrictions
| Alan adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
meal_types | enum dizisi(MealType) | Teklifin geçerli olduğu yemek türleri (ör. öğle veya akşam yemeği). Ayarlanmazsa teklif tüm yemek türlerine uygulanabilir. | |
restricted_to_certain_courses | boolean | Teklifin yalnızca belirli kurslarda geçerli olup olmadığı |
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ı. Banka 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 | boolean | Aboneliğin, kullanıcı bu tekliften yararlandığında otomatik olarak eklenip eklenmediği | |
cost | object(Money) | Zorunlu | Aboneliğin maliyeti Zorunlu. |
subscription_duration | object(Duration) | Zorunlu | Aboneliğin subscription_cost fiyatıyla 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 | dize | Zaman aralığının imzalı saniye değeri. -315.576.000.000 ile +315.576.000.000 arasında olmalıdır (bu değerler dahil). Not: Bu sınırlar şu şekilde hesaplanır: 60 sn/dk * 60 dk/saat * 24 saat/gün * 365,25 gün/yıl * 10.000 yıl | |
nanos | sayı | Zaman aralığının nanosaniye çözünürlüğünde, saniyenin imzalı kesirleri. Bir saniyeden kısa süreler, 0 seconds alanı ve pozitif veya negatif nanos alanı ile gösterilir. Bir saniye veya daha uzun süren durumlarda, 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 (bu değerler dahil) olmalıdır. |
Şartlar
| Alan adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
url | dize | İş ortağının hüküm ve koşullarının URL'si. | |
restricted_to_certain_users | boolean | 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 | object(ValidityRange) | Teklifin 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 bitiş zamanı, geçerlilik süresinin sona erdiği gün 00:00 (hariç) olmalıdır. | |
time_of_day | nesne dizisi(TimeOfDayWindow) | Belirli bir günde geçerli olan zaman aralığını ve teklifin kullanılabileceği günleri belirtir. Gece yarısını geçen zaman aralıkları (ör. 22:00-02:00) için her gün ayrı pencereler kullanın: biri 23:59:59'da sona erer, diğeri ise sonraki gün 00:00'da başlar.
Ö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 ayar yapılmamış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ün cinsinden istisnaları belirtir. | |
validity_scope | enum(ValidityScope) | Geçerlilik döneminin kapsamını belirtir. | |
validity_duration_in_days | sayı | Satın alındıktan sonra kuponun geçerli olduğu süre (gün olarak). |
ValidityRange
Kapalı-açık zaman damgası aralığı.
| Alan adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
valid_from_time | object(Timestamp) | Zorunlu | Aralığın başlangıç zamanı (dahil). Zorunlu. |
valid_through_time | object(Timestamp) | Aralığın bitiş zamanı (dahil değil). Ayarlanmamışsa bu dönemin hiç bitmeyeceği anlamına gelir. İsteğe bağlı. |
Zaman damgası
| Alan adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
seconds | dize | Unix sıfır zamanı olan 1970-01-01T00:00:00Z tarihinden itibaren UTC saatinin saniyelerini 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, sürenin nanosaniye kısmıdır ve saniyelere alternatif değildir. Kesirli negatif saniye değerlerinde, zaman içinde ileriye doğru sayan negatif olmayan nanos değerleri bulunmalıdır. 0 ile 999.999.999 arasında olmalıdır (bu değerler dahil). |
TimeOfDayWindow
TimeWindow nesnesi, kullanıcının siparişinin verilebileceği veya karşılanabileceği bir zaman aralıkları listesini açıklayan bir bileşik varlıktır.
| 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ı. |
TimeOfDayRange
Kapalı-açık zaman aralığı.
| Alan adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
open_time | object(TimeOfDay) | Aralığın gününün başlangıç zamanını gösteren bir saat (girilen tarihler dahil). Ayarlanmazsa 00:00:00 olduğu anlamına gelir. İsteğe bağlı. | |
close_time | object(TimeOfDay) | Aralığın gününün bitiş zamanını gösteren bir saat (hariç). Ayarlanmazsa 23:59:59 anlamına gelir. İsteğe bağlı. |
TimeOfDay
| Alan adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
hours | sayı | 24 saatlik biçimde günün saatleri. 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 senaryolarda "24:00:00" değerine izin vermeyi seçebilir. | |
minutes | sayı | Saatin dakikaları. 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. Bir API, artık saniyelere izin veriyorsa 60 değerine izin verebilir. | |
nanos | sayı | Saniyenin nanosaniye cinsinden 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. |
ValidTimeException
| Alan adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
exceptional_period | object(ValidityRange) | Teklifin geçerli olmadığı başlangıç ve bitiş zaman damgası. Bu zamanlar farklı günleri temsil etmelidir. Yani başlangıç zamanı 00:00 (günün başlangıcı) olmalı ve bitiş zamanı, istisna döneminin sona erdiği günde 00:00 (hariç) olmalıdır. |
Tarih
| Alan adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
year | sayı | Tarihin yılı. 1 ile 9999 arasında olmalı veya yıl içermeyen bir tarih belirtmek için 0 olmalıdır. | |
month | sayı | Yılın ayı. 1 ile 12 arasında olmalı veya ay ve gün içermeyen bir yılı belirtmek için 0 olmalıdır. | |
day | sayı | Ayın günü. Yıl ve ay için 1-31 arasında geçerli bir değer olmalı veya günü belirtmenin önemli olmadığı durumlarda tek başına 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
Teklifin yerine getirme modunu gösterir. Bir teklif birden fazla karşılama modunda paylaşılabiliyorsa her karşılama modu için yinelenen teklifler oluşturulması gerekir.
| 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 teslim alma yemek siparişleri için geçerlidir. |
ACTION_TYPE_DINING | Teklif, restoranda yemek yemek için geçerlidir. |
ACTION_TYPE_SHOPPING_IN_STORE | Teklif, mağazadan yapılan çevrimdışı 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 belirli modların kapsamadığı karşılama yöntemleri için kullanılır. |
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, web sitesi veya dijital platform üzerinden verilen siparişlerde geçerlidir. |
OFFER_MODE_GIFT_CARD_PURCHASE | Fırsattan yararlanmak için hediye kartı satın almanın birincil adım olduğunu gösterir. |
OfferCategory
Teklifin kategorisi. Temel teklif, tüm müşterilerin yararlanabileceği standart bir tekliftir (ör. 100 TRY üzeri harcamalarda% 10 indirim). Kupon veya ödeme aracıyla kısıtlanan 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 |
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 süresinin kapsamı; yani bu geçerlilik süresinin 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 |
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] Tüm öğün için geçerli olan "1 alana 1 bedava" veya% 50 indirim tekliflerinde (ör. açık büfe 1 alana 1 bedava, tüm hesapta 1 alana 1 bedava, set menüde 1 alana 1 bedava) bu değer 50 olarak ayarlanabilir. |
discount_value | object(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 | object(Money) |
| |
amount_range | object(MoneyRange) |
|
denomination_type
| Alan adı | Tür | Gereksinim | Açıklama |
|---|---|---|---|
fixed_denominations | object(FixedDenominations) |
| Hediye kartı belirli ve sabit tutarlarda sunulduğunda 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
Fırsatlar feed'i, Generic feed'i SFTP sunucusuna yüklenmelidir. Talimatlar için Genel feed SFTP sunucusu nasıl kullanılır? başlıklı eğitime göz atın ve açıklama dosyanızda name değerini google.offer olarak ayarlayın.
Yükleme sıklığı
Genel olarak Google, günde 1 feed yüklemesi bekler. Sürekli olarak yüksek bir hassasiyet sağlamak için, teklif güncellemelerinin sıklığına bağlı olarak sıklık artırılabilir veya azaltılabilir. Google İOOY'nizle iletişime geçin.
Verilerin Google'da görünmesi birkaç saat sürer.
Kategorizasyon sunma
OFFER_CATEGORY_BASE_OFFER: Diğer tekliflerle birleştirilmeden bağımsız olarak kullanılabilen teklifler. Bu kapsamda:- Tüm faturada sabit indirimler (ör. %20 indirim)
- Abonelik teklifleri (ör. üyelikle birlikte ücretsiz tatlı)
- Restoran için başka temel tekliflerin olmadığı durumlarda ödeme teklifleri
- Ek Teklifler: Kullanılabilmesi için temel teklifin talep edilmesi gereken teklifler. Bunlar arasında:
OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER(ör. belirli bir kredi kartıyla% 10 ek 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)
Dikkat edilmesi gereken diğer noktalar:
- Bir restoranda temel teklif ayarlanmamışsa ek teklifler gösterilmez.
Temel Teklif yoksa başka bir teklife eklenmesi gerekmeksizin kullanılabilen 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 Eklenti Teklif olarak işlev gördükleri senaryoları kapsamak için bu tekliflerin her birinden 2 kopya sağlamalıdır. Eklenti teklifi kopyası,
entity_idsveyaadd_on_offer_applicable_to_all_entitieskullanılarak birden fazla restoran için ayarlanabilir.
- Türe bağlı olarak,
- Bir restoranda birleştirilebilen birden fazla Temel Teklif varsa tüm Temel Teklifler
OFFER_CATEGORY_BASE_OFFERolarak etiketlenmeli, ödeme, abonelik veya kupon teklifi olan Temel Teklifler ise ilgili eklenti teklifi türü olarak ayrıca gönderilmelidir. ValidityPeriodyalnızca etkin bir Base Offer yoksa Base Offer olarak eklenti tekliflerini etkinleştirmek için kullanılmalıdır.
Ö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ş 2 kopya halinde gönderilmeli vePaymentInstrumentayrıntıları eklenmelidir. - Kupon kodu teklifiyle ücretsiz içecek promosyonu,
Couponayrıntılarıyla birlikteOFFER_CATEGORY_ADD_ON_COUPON_OFFERolarak gönderilmelidir.
- %5 indirimli kredi kartı teklifi, biri
Bir restoran, kapıdan 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. - %5 indirimli kredi kartı teklifinin 2 kopyası olmalıdır. Kopyalardan 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 teklifi, hafta içi yalnızca restoranın öğle yemeği saatlerinde geçerli olduğunu belirtecek şekilde
ValidityPeriodayarlanmalıdır. - %5 indirimli kredi kartı teklifi 2 kopya olarak gönderilmelidir.
- Bir kopya,
PaymentInstrumentayrıntılarıyla birlikteOFFER_CATEGORY_BASE_OFFERolarak etiketlenmelidir. %10 indirimli öğle yemeği teklifi etkin olduğunda, hafta içi öğle yemeği saatleri hariç tutulacak şekildeValidityPeriodof ayarlanmalıdır. - Bir kopya,
OFFER_CATEGORY_ADD_ON_PAYMENT_OFFERilePaymentInstrumentayrıntıları eklenerek etiketlenmelidir.
- Bir kopya,
- Bu restoranla ilgili diğer tüm ödeme teklifleri
OFFER_CATEGORY_ADD_ON_PAYMENT_OFFERolarak etiketlenmelidir.
- %10 indirim teklifi, hafta içi yalnızca restoranın öğle yemeği saatlerinde geçerli olduğunu belirtecek şekilde
Geliştirme ve kullanıma sunma süreci
Entegrasyonunuz boyunca İş Ortağı Portalı, geliştirme sürecinize göre bilgi ve geri bildirimlerle size yardımcı olabilir. Geliştirme süreci şu akışı izleyecektir:
- Entegrasyon ilk olarak Sandbox ortamında geliştirilir. Google Sandbox ortamında üretim verilerinin (hatta doğrudan üretim verilerinin) dışa aktarılmış bir sürümünü kullanmanız gerekir. Bu, geliştirme sürecinizde tüm uç durumların ele alınmasını sağlar ve Google'ın veri kalitesini değerlendirip veri modelinize göre size daha iyi yardımcı olmasına olanak tanır.
- Google Sandbox ortamına Merchant, Services ve Deals feed'lerini 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 gönderebilir ve Google Production 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, doğru ve politika ölçütlerimizi karşıladığını lansman öncesinde ve sonrasında kontrol eder. Google, bu işlemi gerçekleştirmek için hem uzman incelemesinden hem de otomatik incelemeden 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 yapmak ve teklif bilgilerini ayıklamak için bir 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 sıklıkta dağıtılmış, 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 yapılması gerekiyorsa belirtilen zamanda teklifin kullanılabilir olduğunu onaylamak için rezervasyon akışına devam edilir (rezervasyon yapılmaz).
Web kazıyıcı algılama
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 çağrıların Google'dan gelip gelmediğini de kontrol edebilirsiniz.
Özel durumumuzda, ters DNS çözümlemesi şu kalıbı izler:
google-proxy-***-***-***-***.google.com.
Teknik davranış
Önbelleğe alma
Tarayıcılarımız, iş ortağı web sitesindeki yükü azaltmak amacıyla genellikle yanıtta bulunan tüm standart HTTP önbelleğe alma üstbilgilerine 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 almanın nasıl uygulanacağı hakkında daha fazla bilgi için HTTP önbelleğe alma dokümanlarını okuyun.