खास जानकारी

ऑफ़र इंटिग्रेशन में हिस्सा लेने वाले पार्टनर को, इंटिग्रेशन की प्रक्रिया शुरू करने से पहले, कारोबारी या इकाई (पायलट) के आधार पर खाता सेट अप करना होगा. इस गाइड में, ऑफ़र इंटिग्रेशन को लागू करने, उसकी जांच करने, और उसे लॉन्च करने के बारे में पूरी जानकारी दी गई है. इंटिग्रेशन के चरणों को पूरा करने से पहले, इस खास जानकारी और ऑफ़र से जुड़ी नीतियों को पढ़ें.

ऑफ़र

ऑफ़र इंटिग्रेशन की मदद से, कारोबारी या कंपनी के प्रमोशन और खास समय पर खास सेवाओं पर लागू होने वाली छूट के बारे में स्ट्रक्चर्ड जानकारी दी जा सकती है. ऑफ़र में ये चीज़ें शामिल होती हैं: असल ऑफ़र (कीमत में प्रतिशत या रुपये की छूट ...), वैधता की अवधि (खास समय, हफ़्ते के दिन ...), और लागू होने की शर्तें (ऑफ़र का इस्तेमाल सिर्फ़ कुछ सेवाओं पर किया जा सकता है). साथ ही, इसमें पाबंदियों के मुश्किल कॉम्बिनेशन भी शामिल होते हैं.

ऑफ़र के उदाहरण:

  • दिसंबर में बुधवार और गुरुवार को दोपहर 12 बजे से शाम 5 बजे तक, ऐपेटाइज़र पर 50% की छूट
  • मदर्स डे पर, शाम 6 बजे से रात 10 बजे के बीच डिनर करने पर, एक डेज़र्ट खरीदने पर एक डेज़र्ट मुफ़्त पाएं
  • हर रविवार सुबह 10 बजे से दोपहर 2 बजे तक, ब्रंच के मुख्य व्यंजन पर 5 डॉलर की छूट
  • स्टोर में जाकर खरीदारी करने पर 10% की छूट. इसे प्रीमियम सदस्यों के लिए 5% की छूट के साथ जोड़ा जा सकता है. साथ ही, अगर उपयोगकर्ता आपके ऐप्लिकेशन से पेमेंट करता है, तो उसे 5% की छूट मिलती है.

किसी ऑफ़र को इंटिग्रेशन में शामिल करने के लिए, यह ज़रूरी है कि वह तकनीकी डेटा मॉडल के मुताबिक हो. साथ ही, उसे हमारी ज़रूरी शर्तों को भी पूरा करना होगा. पक्का करें कि आपने ऑफ़र से जुड़ी हमारी नीतियां पढ़ ली हों. इससे यह पक्का किया जा सकेगा कि आपका इंटिग्रेशन, नीतियों के मुताबिक है. साथ ही, आपको उन ऑफ़र के बारे में निर्देश मिलेंगे जो तकनीकी शर्तों को पूरा नहीं करते.

लागू करने के सुझाव

ऑफ़र इंटिग्रेशन में दो फ़ीड शामिल होते हैं. इन्हें हर दिन अपलोड किया जाएगा या ऐसी फ़्रीक्वेंसी पर अपलोड किया जाएगा जिससे सटीक जानकारी मिल सके. इसका मतलब है कि जानकारी पुरानी न हो:

OfferFeed

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
dataobject
(Offer) का कलेक्शन

ऑफ़र

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
offer_idस्ट्रिंग

ज़रूरी है

ऑफ़र का यूनीक आईडी. ज़रूरी है.
entity_idsस्ट्रिंग का कलेक्शन

उन कारोबारियों या कंपनियों की सूची जो इस ऑफ़र में हिस्सा ले रही हैं.
add_on_offer_applicable_to_all_entitiesबूलियन

अगर यह वैल्यू 'सही है' पर सेट है, तो इसका मतलब है कि यह ऑफ़र एग्रीगेटर के सभी कारोबारों या कंपनियों पर लागू होता है. यह सिर्फ़ ऐड-ऑन ऑफ़र पर लागू होता है.
offer_sourceenum
(OfferSource)

ज़रूरी है

ऑफ़र, एग्रीगेटर, कोई कारोबारी या कंपनी या ऐड-ऑन के तौर पर कोई तीसरा पक्ष दे सकता है. ज़रूरी है.
action_typeenum
(ActionType)

ज़रूरी है

वह सेवा जो ऑफ़र दे रही है. एक offer_id सिर्फ़ एक action_type से जुड़ा हो सकता है. अगर किसी ऑफ़र को कई तरह की सेवाओं के साथ शेयर किया जा सकता है, तो हर सेवा के लिए डुप्लीकेट ऑफ़र बनाए जाने चाहिए. इन ऑफ़र के आईडी यूनीक होने चाहिए. ज़रूरी है.
offer_modesenum
(OfferMode) का कलेक्शन

ज़रूरी है

ऑफ़र का फ़ायदा पाने के तरीके - स्टोर पर जाकर, बुकिंग करके, ऑनलाइन वगैरह. ज़रूरी है.
offer_categoryenum
(OfferCategory)

ज़रूरी है

ऑफ़र की कैटगरी. ज़रूरी है.
source_assigned_priorityसंख्या

नॉन-नेगेटिव पूर्णांक ([1-100], जहां 1 का मतलब सबसे ज़्यादा प्राथमिकता है) जो सोर्स की ओर से असाइन किए गए ऑफ़र के प्राथमिकता लेवल को दिखाता है. जब एक ही कारोबारी या कंपनी के लिए कई ऑफ़र उपलब्ध होते हैं, तो यह ऑफ़र को रैंक करने के लिए एक सिग्नल होगा. 0 का मतलब है कि प्राथमिकता सेट नहीं की गई है.
offer_detailsobject
(OfferDetails)

ज़रूरी है

ऑफ़र की जानकारी, जैसे कि छूट, बुकिंग का शुल्क वगैरह. ज़रूरी है.
offer_restrictionsobject
(OfferRestrictions)

ज़रूरी है

इससे पता चलता है कि ऑफ़र पर किस तरह की पाबंदी है. जैसे, सदस्यता/पेमेंट का तरीका ज़रूरी है या नहीं, इस ऑफ़र को अन्य ऑफ़र के साथ इस्तेमाल किया जा सकता है या नहीं (और किस तरह के ऑफ़र के साथ), वगैरह. यह जानकारी देना ज़रूरी है.
couponobject
(Coupon)

कूपन की जानकारी. offer_category: OFFER_CATEGORY_ADD_ON_COUPON_OFFER के लिए ज़रूरी है.
payment_instrumentobject
(PaymentInstrument)

पेमेंट के तरीके की जानकारी. offer_category: OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER के लिए ज़रूरी है.
subscriptionobject
(Subscription)

सदस्यता की जानकारी. offer_category: OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER के लिए ज़रूरी है.
termsobject
(Terms)

ज़रूरी है

ऑफ़र के नियम और शर्तें. ज़रूरी है.
validity_periodsobject
(ValidityPeriod) का कलेक्शन

ज़रूरी है

ऑफ़र की वैधता की अवधि. इससे पता चलता है कि ऑफ़र किस समयावधि के लिए मान्य है. इसमें शुरू और खत्म होने का समय, हफ़्ते के दिन वगैरह शामिल हैं. यह जानकारी देना ज़रूरी है.
offer_urlस्ट्रिंग

कारोबारी या कंपनी के ऑफ़र पेज का यूआरएल. offer_category: OFFER_CATEGORY_BASE_OFFER के लिए ज़रूरी है.
image_urlस्ट्रिंग

कारोबारी या कंपनी के ऑफ़र की इमेज का यूआरएल.

OfferDetails

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
offer_display_textस्ट्रिंग

ज़रूरी है

ऑफ़र देने वाला व्यक्ति या कंपनी, खोज नतीजों वाले पेज पर खरीदारों को ऑफ़र का जो टेक्स्ट दिखाना चाहती है. ज़रूरी है.
oneOf
(offer_specification)

ज़रूरी है

इस oneOf में मौजूद फ़ील्ड में से सिर्फ़ एक को सेट किया जा सकता है.
max_discount_valueobject
(Money)

ज़्यादा से ज़्यादा कितनी छूट मिल सकती है. उदाहरण के लिए, 100 डॉलर तक की खरीदारी पर 10% की छूट.
min_spend_valueobject
(Money)

छूट पाने के लिए, कम से कम इतना खर्च करना होगा. उदाहरण के लिए, कुल कीमत 100 डॉलर या इससे ज़्यादा होने पर 10% की छूट.
booking_costobject
(Money)

इस ऑफ़र को बुक करने की कीमत. उदाहरण के लिए, 15 डॉलर में टेबल बुक करने पर, फ़ाइनल बिल पर 100 डॉलर की छूट.
booking_cost_unitenum
(FeeUnit)

बुकिंग की लागत की इकाई. उदाहरण के लिए, हर व्यक्ति के हिसाब से, हर लेन-देन के हिसाब से.
convenience_feeobject
(Fee)

booking_cost_adjustableबूलियन

क्या बुकिंग की लागत को अडजस्ट किया जा सकता है. इसका मतलब है कि बुकिंग की लागत को फ़ाइनल बिल से घटा दिया जाता है. उदाहरण के लिए: टेबल बुक करने पर डिनर में 30% की छूट. बुकिंग के लिए 15 डॉलर का शुल्क लिया जाएगा. यह शुल्क, कुल बिल में जोड़ दिया जाएगा. इसलिए, फ़ाइनल बिल: खर्च की गई कुल रकम - 30% - 15 डॉलर
additional_feesobject
(AdditionalFee) का कलेक्शन

उपयोगकर्ता से लिया जाने वाला अतिरिक्त शुल्क. उदाहरण: सुविधा, हैंडलिंग वगैरह.

पैसे

यह मुद्रा के टाइप के साथ-साथ, पैसे की रकम को दिखाता है.

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
currency_codeस्ट्रिंग

ISO 4217 में तय किया गया तीन अक्षर वाला मुद्रा कोड.
unitsस्ट्रिंग

राशि की पूरी यूनिट. उदाहरण के लिए, अगर currencyCode की वैल्यू "USD" है, तो एक यूनिट की कीमत एक डॉलर होगी.
nanosसंख्या

रकम की नैनो (10^-9) यूनिट की संख्या. वैल्यू, -999,999,999 और +999,999,999 के बीच होनी चाहिए. अगर units पॉज़िटिव है, तो nanos पॉज़िटिव या शून्य होना चाहिए. अगर units शून्य है, तो nanos पॉज़िटिव, शून्य या नेगेटिव हो सकता है. अगर units की वैल्यू नेगेटिव है, तो nanos की वैल्यू नेगेटिव या शून्य होनी चाहिए. उदाहरण के लिए, -1.75 डॉलर को units=-1 और nanos=-750,000,000 के तौर पर दिखाया जाता है.

शुल्क

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
unitenum
(FeeUnit)

typeenum
(FeeType)

oneOf
(cost)

इस oneOf में मौजूद फ़ील्ड में से सिर्फ़ एक को सेट किया जा सकता है.

MoneyRange

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
min_amountobject
(Money)

max_amountobject
(Money)

AdditionalFee

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
nameस्ट्रिंग

ज़रूरी है

अतिरिक्त शुल्क का नाम. उदाहरण: सुविधा शुल्क, हैंडलिंग शुल्क वगैरह. ज़रूरी है.
feeobject
(Fee)

OfferRestrictions

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
combinable_with_other_offersबूलियन

यह ऑफ़र, अन्य ऑफ़र के साथ इस्तेमाल किया जा सकता है या नहीं. अगर यह वैल्यू सही है, तो पार्टनर यह तय कर सकते हैं कि इस ऑफ़र को किन ऑफ़र के साथ जोड़ा जा सकता है. अगर combinable_offer_categories और combinable_offer_ids, दोनों सेट किए गए हैं, तो ऊपर दी गई किसी भी शर्त को पूरा करने वाला ऑफ़र, एक साथ इस्तेमाल किया जा सकेगा.
combinable_offer_categoriesenum
(OfferCategory) का कलेक्शन

ऑफ़र के टाइप की सूची, जिनके साथ इस ऑफ़र को जोड़ा जा सकता है. उदाहरण के लिए, इस ऑफ़र को अन्य कूपन के साथ इस्तेमाल किया जा सकता है. अगर combinable_with_other_offers की वैल्यू 'सही है' पर सेट है और इस फ़ील्ड की वैल्यू सेट नहीं है, तो सभी टाइप को एक साथ इस्तेमाल किया जा सकेगा.
combinable_offer_idsस्ट्रिंग का कलेक्शन

उन offer_id की सूची जिनके साथ इस ऑफ़र को जोड़ा जा सकता है. ऐसा हो सकता है कि कुछ ऑफ़र सिर्फ़ कुछ खास offer_id (इन्हें पैरंट ऑफ़र माना जा सकता है) के साथ जोड़े जा सकें. अगर combinable_with_other_offers की वैल्यू 'सही है' पर सेट है और इस फ़ील्ड को सेट नहीं किया गया है, तो सभी ऑफ़र आईडी को एक साथ इस्तेमाल किया जा सकेगा.
inclusionsobject
(OfferCondition) का कलेक्शन

उन शर्तों की सूची जिन्हें पूरा करने पर ही ऑफ़र मान्य होगा. उदाहरण के लिए, बिना अल्कोहल वाली ड्रिंक, खाना).
exclusionsobject
(OfferCondition) का कलेक्शन

उन शर्तों की सूची जिनसे ऑफ़र अमान्य हो जाएगा. जैसे, बुफ़े, कॉम्बो ऑफ़र, और कॉकटेल.
min_guestसंख्या

ऑफ़र का फ़ायदा पाने के लिए, कम से कम इतने लोग होने चाहिए.
food_offer_restrictionsobject
(FoodOfferRestrictions)

खाने-पीने के ऑफ़र पर लागू होने वाली पाबंदियां.

OfferCondition

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
descriptionस्ट्रिंग

FoodOfferRestrictions

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
meal_typesenum
(MealType) का कलेक्शन

खाने के टाइप, जिन पर ऑफ़र लागू किया जा सकता है. जैसे, दोपहर या रात का खाना. अगर इसे सेट नहीं किया गया है, तो ऑफ़र को हर तरह के खाने पर लागू किया जा सकता है.
restricted_to_certain_coursesबूलियन

क्या ऑफ़र सिर्फ़ कुछ कोर्स पर लागू किया जा सकता है.

कूपन

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
textस्ट्रिंग

यह कूपन का वह टेक्स्ट है जिसे ऑफ़र देने वाला व्यक्ति या कंपनी, लोगों को दिखाना चाहती है.
codeस्ट्रिंग

ज़रूरी है

ऑफ़र रिडीम करने के लिए कूपन कोड ज़रूरी है. ज़रूरी है.

PaymentInstrument

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
itemsobject
(PaymentInstrumentItem) का कलेक्शन

ज़रूरी है

पेमेंट के उन इंस्ट्रूमेंट की सूची जिनका इस्तेमाल करके ऑफ़र पाया जा सकता है. ज़रूरी है.
provider_nameस्ट्रिंग

ज़रूरी है

पेमेंट के तरीके की सुविधा देने वाली कंपनी का नाम. यह बैंकिंग पार्टनर, बैंक का नाम वगैरह हो सकता है. उदाहरण के लिए: अमेरिकन एक्सप्रेस, एचडीएफ़सी, आईसीआईसीआई. ज़रूरी है.

PaymentInstrumentItem

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
typeenum
(PaymentInstrumentType)

ज़रूरी है

पेमेंट के तरीके का टाइप. ज़रूरी है.
nameस्ट्रिंग

ज़रूरी है

पेमेंट के तरीके के आइटम का नाम, जैसे कि क्रेडिट कार्ड का नाम. उदाहरण के लिए: एचडीएफ़सी इनफ़िनिया, अमेरिकन एक्सप्रेस प्लैटिनम. ज़रूरी है.

सदस्यता

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
nameस्ट्रिंग

ज़रूरी है

सदस्यता का नाम. ज़रूरी है.
subscription_auto_addedबूलियन

जब कोई उपयोगकर्ता इस ऑफ़र का फ़ायदा उठाता है, तो क्या सदस्यता अपने-आप जुड़ जाती है
costobject
(Money)

ज़रूरी है

सदस्यता का शुल्क. ज़रूरी है.
subscription_durationobject
(Duration)

ज़रूरी है

यह जानकारी देती है कि सदस्यता शुल्क में सदस्यता कितने समय के लिए मान्य है. ज़रूरी है.
terms_and_conditions_urlस्ट्रिंग

इस सदस्यता से जुड़े पार्टनर के नियमों और शर्तों का यूआरएल.

कुल समय

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
secondsस्ट्रिंग

समय की अवधि के सेकंड. यह वैल्यू -315,576,000,000 से +315,576,000,000 के बीच होनी चाहिए. ध्यान दें: इन सीमाओं की गिनती इस तरह की जाती है: 60 सेकंड/मिनट * 60 मिनट/घंटा * 24 घंटे/दिन * 365.25 दिन/साल * 10,000 साल
nanosसंख्या

समय की अवधि के नैनोसेकंड रिज़ॉल्यूशन पर, सेकंड के साइन किए गए फ़्रैक्शन. एक सेकंड से कम अवधि को 0 seconds फ़ील्ड और पॉज़िटिव या नेगेटिव nanos फ़ील्ड से दिखाया जाता है. एक सेकंड या इससे ज़्यादा अवधि के लिए, nanos फ़ील्ड की वैल्यू शून्य नहीं होनी चाहिए. साथ ही, इसका चिह्न seconds फ़ील्ड के चिह्न के जैसा होना चाहिए. यह -999,999,999 से लेकर +999,999,999 के बीच होना चाहिए.

शर्तें

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
urlस्ट्रिंग

पार्टनर के नियमों और शर्तों का यूआरएल.
restricted_to_certain_usersबूलियन

यह जानकारी कि क्या ऑफ़र सिर्फ़ कुछ उपयोगकर्ताओं के लिए उपलब्ध है.
terms_and_conditionsस्ट्रिंग

पार्टनर की ओर से उपलब्ध कराया गया मुख्य नियम और शर्तें.
additional_terms_and_conditionsस्ट्रिंग का कलेक्शन

पार्टनर की मुख्य शर्तों के अलावा, अन्य नियम और शर्तें.

ValidityPeriod

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
valid_periodobject
(ValidityRange)

शुरू और खत्म होने का टाइमस्टैंप, जिसके दौरान ऑफ़र मान्य है. ये समय अलग-अलग दिनों के होने चाहिए. इसका मतलब है कि शुरू होने का समय 00:00 (दिन की शुरुआत) होना चाहिए और खत्म होने का समय, वैधता अवधि खत्म होने के दिन 00:00 (एक्सक्लूसिव) होना चाहिए.
time_of_dayobject
(TimeOfDayWindow) का कलेक्शन

इससे यह पता चलता है कि किसी दिन ऑफ़र किस समयावधि के दौरान मान्य है और ऑफ़र किन दिनों के लिए उपलब्ध है. उदाहरण के लिए: सोमवार: सुबह 10 बजे से शाम 5 बजे तक मंगलवार: सुबह 10 बजे से दोपहर 2 बजे तक मंगलवार: शाम 5 बजे से रात 7 बजे तक बुधवार, गुरुवार, शुक्रवार, शनिवार, रविवार: दोपहर 3 बजे से शाम 7 बजे तक अगर कोई भी समय सेट नहीं किया गया है, तो इसका मतलब है कि ऑफ़र valid_period में हर समय उपलब्ध है.
time_exceptionsobject
(ValidTimeException) का कलेक्शन

इससे ऊपर दी गई valid_period और valid_time_of_week के अपवादों के बारे में पता चलता है

ValidityRange

टाइमस्टैंप की क्लोज़-ओपन रेंज.

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
valid_from_timeobject
(Timestamp)

ज़रूरी है

रेंज की शुरुआत का समय (शामिल है). ज़रूरी है.
valid_through_timeobject
(Timestamp)

रेंज के खत्म होने का समय (शामिल नहीं है). अगर इसे सेट नहीं किया जाता है, तो इसका मतलब है कि यह अवधि कभी खत्म नहीं होगी. ज़रूरी नहीं.

टाइमस्टैम्प

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
secondsस्ट्रिंग

यह Unix epoch 1970-01-01T00:00:00Z से यूटीसी समय के सेकंड को दिखाता है. यह 0001-01-01T00:00:00Z से 9999-12-31T23:59:59Z के बीच होना चाहिए.
nanosसंख्या

नैनोसेकंड रिज़ॉल्यूशन पर, एक सेकंड के नॉन-नेगेटिव फ़्रैक्शन. भिन्नात्मक वैल्यू वाली नेगेटिव सेकंड वैल्यू में, अब भी नॉन-नेगेटिव नैनो वैल्यू होनी चाहिए. ये वैल्यू, समय के हिसाब से आगे बढ़ती हैं. यह 0 से लेकर 999,999,999 के बीच होना चाहिए.

TimeOfDayWindow

TimeWindow ऑब्जेक्ट एक कंपोज़िट इकाई है. यह उन विंडो की सूची के बारे में बताती है जिनमें उपयोगकर्ता का ऑर्डर प्लेस किया जा सकता है या पूरा किया जा सकता है.

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
time_windowsobject
(TimeOfDayRange)

ज़रूरी है

वह समयावधि जिसके दौरान ऑर्डर दिया जा सकता है या पूरा किया जा सकता है. ज़रूरी है.
day_of_weekenum
(DayOfWeek) का कलेक्शन

हफ़्ते के उन दिनों की सूची जिन पर विंडो लागू होती हैं. अगर कोई भी दिन सेट नहीं किया गया है, तो इसका मतलब है कि यह नीति हफ़्ते के सभी दिनों के लिए लागू होती है. ज़रूरी नहीं.

TimeOfDayRange

क्लोज़-ओपन टाइम रेंज.

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
open_timeobject
(TimeOfDay)

यह एक ऐसा समय है जो रेंज के दिन की शुरुआत का समय दिखाता है. इसमें यह समय शामिल होता है. अगर इसे सेट नहीं किया जाता है, तो इसका मतलब 00:00:00 है. ज़रूरी नहीं.
close_timeobject
(TimeOfDay)

यह समय, रेंज के दिन के खत्म होने का समय दिखाता है. अगर इसे सेट नहीं किया जाता है, तो इसका मतलब है कि समय 23:59:59 है. ज़रूरी नहीं.

TimeOfDay

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
hoursसंख्या

24 घंटे वाले फ़ॉर्मैट में, दिन के घंटे. यह वैल्यू 0 से ज़्यादा या इसके बराबर होनी चाहिए. साथ ही, आम तौर पर यह वैल्यू 23 से कम या इसके बराबर होनी चाहिए. एपीआई, कारोबार के बंद होने के समय जैसे मामलों के लिए "24:00:00" वैल्यू को अनुमति दे सकता है.
minutesसंख्या

एक घंटे के मिनट. यह वैल्यू 0 से ज़्यादा या इसके बराबर और 59 से कम या इसके बराबर होनी चाहिए.
secondsसंख्या

एक मिनट के सेकंड. यह 0 से ज़्यादा या इसके बराबर होनी चाहिए. आम तौर पर, यह 59 से कम या इसके बराबर होनी चाहिए. अगर कोई एपीआई लीप-सेकंड की अनुमति देता है, तो वह वैल्यू 60 की अनुमति दे सकता है.
nanosसंख्या

सेकंड के हिस्से, नैनोसेकंड में. यह 0 के बराबर या इससे ज़्यादा और 99,99,99,999 के बराबर या इससे कम होना चाहिए.

ValidTimeException

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
exceptional_periodobject
(ValidityRange)

शुरू और खत्म होने का वह टाइमस्टैंप जिसके लिए ऑफ़र मान्य नहीं है. ये समय अलग-अलग दिनों के होने चाहिए. इसका मतलब है कि शुरू होने का समय 00:00 (दिन की शुरुआत) होना चाहिए और खत्म होने का समय, छूट की अवधि खत्म होने वाले दिन 00:00 (एक्सक्लूसिव) होना चाहिए.

OfferSource

नामब्यौरा
OFFER_SOURCE_UNSPECIFIED
OFFER_SOURCE_AGGREGATOR

ActionType

नामब्यौरा
ACTION_TYPE_UNSPECIFIED
ACTION_TYPE_DINING

OfferMode

नामब्यौरा
OFFER_MODE_OTHER
OFFER_MODE_WALK_IN
OFFER_MODE_FREE_RESERVATION
OFFER_MODE_PAID_RESERVATION
OFFER_MODE_ONLINE_ORDER

OfferCategory

ऑफ़र की कैटगरी. बुनियादी ऑफ़र, सभी खरीदारों के लिए उपलब्ध एक स्टैंडर्ड ऑफ़र होता है. जैसे, 10,000 रुपये से ज़्यादा खर्च करने पर 10% की छूट. अगर किसी कूपन या पेमेंट के तरीके से बुनियादी ऑफ़र पर पाबंदी लगाई गई है, तो उससे जुड़े फ़ील्ड सेट किए जाएंगे. हमारे पास ऐड ऑन x ऑफ़र भी हैं, जैसे कि ADD_ON_PAYMENT_OFFER. ज़्यादा छूट पाने के लिए, इस तरह के ऑफ़र को अन्य ऑफ़र में जोड़ा जा सकता है.

नामब्यौरा
OFFER_CATEGORY_UNSPECIFIED
OFFER_CATEGORY_BASE_OFFER
OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER
OFFER_CATEGORY_ADD_ON_COUPON_OFFER
OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER

FeeUnit

नामब्यौरा
FEE_UNIT_UNSPECIFIED
FEE_UNIT_PER_GUEST
FEE_UNIT_PER_TRANSACTION

FeeType

नामब्यौरा
FEE_TYPE_UNSPECIFIED
FEE_TYPE_FIXED
FEE_TYPE_VARIABLE

MealType

नामब्यौरा
MEAL_TYPE_UNSPECIFIED
MEAL_TYPE_BREAKFAST
MEAL_TYPE_LUNCH
MEAL_TYPE_DINNER

PaymentInstrumentType

नामब्यौरा
PAYMENT_INSTRUMENT_TYPE_UNSPECIFIED
PAYMENT_INSTRUMENT_CREDIT_CARD
PAYMENT_INSTRUMENT_DEBIT_CARD
PAYMENT_INSTRUMENT_BANK_ACCOUNT
PAYMENT_INSTRUMENT_UPI
PAYMENT_INSTRUMENT_ONLINE_WALLET

DayOfWeek

यह हफ़्ते के किसी दिन को दिखाता है.

नामब्यौरा
DAY_OF_WEEK_UNSPECIFIEDहफ़्ते का दिन तय नहीं किया गया है.
MONDAYसोमवार
TUESDAYमंगलवार
WEDNESDAYबुधवार
THURSDAYगुरुवार
FRIDAYशुक्रवार
SATURDAYशनिवार
SUNDAYरविवार

offer_specification

यह छूट, प्रतिशत या कुल वैल्यू में से घटाई गई तय वैल्यू के तौर पर दी जा सकती है. उदाहरण के लिए: 1. फ़ाइनल बिल पर 10% की छूट. 2. किसी ऑर्डर पर 15 डॉलर की छूट. कारोबारी या कंपनियां, 'एक खरीदें, एक मुफ़्त पाएं' जैसे कस्टम छूट वाले ऑफ़र भी दे सकती हैं. इसके लिए, उन्हें स्पेसिफ़िकेशन फ़ील्ड का इस्तेमाल करना होगा. ज़रूरी है.

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
discount_percentसंख्या

discount_value और other_offer_detail_text के साथ इस्तेमाल नहीं किया जा सकता

बिल के उस हिस्से का प्रतिशत जिस पर छूट दी गई है. [0, 100] 1+1 या 50% की छूट वाले ऐसे ऑफ़र जो पूरे खाने पर लागू होते हैं (जैसे, बुफ़े पर 1+1, पूरे बिल पर 1+1, सेट मेन्यू पर 1+1) के लिए, इस वैल्यू को 50 पर सेट किया जा सकता है.
discount_valueobject
(Money)

discount_percent और other_offer_detail_text के साथ इस्तेमाल नहीं किया जा सकता

छूट की तय वैल्यू.
other_offer_detail_textस्ट्रिंग

discount_percent और discount_value के साथ इस्तेमाल नहीं किया जा सकता

छूट के बारे में बताने के लिए फ़्री-फ़ॉर्म टेक्स्ट. खास तौर पर 1+1 ऑफ़र (जैसे, एक के साथ एक ड्रिंक मुफ़्त, एक के साथ एक मेन कोर्स मुफ़्त, 1+1 चुने गए मेन्यू आइटम) के लिए, यह जानकारी यहां दी जानी चाहिए.

लागत

फ़ील्ड का नामटाइपआवश्यकताब्यौरा
amountobject
(Money)

amount_range के साथ म्यूचुअली एक्सक्लूसिव

amount_rangeobject
(MoneyRange)

amount के साथ म्यूचुअली एक्सक्लूसिव

फ़ीड को अपलोड करना

ऑफ़र फ़ीड को Generic फ़ीड एसएफ़टीपी सर्वर पर अपलोड करना ज़रूरी है. निर्देशों के लिए, जेनेरिक फ़ीड के एसएफ़टीपी सर्वर को इस्तेमाल करने का तरीका बताने वाला ट्यूटोरियल देखें. साथ ही, अपनी डिस्क्रिप्टर फ़ाइल में name को google.offer पर सेट करें.

अपलोड करने की फ़्रीक्वेंसी

आम तौर पर, Google को हर दिन एक फ़ीड अपलोड करने की ज़रूरत होती है. फ़ीड अपलोड करने की फ़्रीक्वेंसी को बढ़ाया या घटाया जा सकता है. यह इस बात पर निर्भर करता है कि आपकी ओर से ऑफ़र अपडेट करने की फ़्रीक्वेंसी क्या है, ताकि लगातार सटीक जानकारी दी जा सके. अपने Google पीओसी से संपर्क करें.

यह डेटा, Google पर दिखने में कुछ घंटे लेगा.

वर्गीकरण की सुविधा

  • OFFER_CATEGORY_BASE_OFFER: ऐसे ऑफ़र जिन्हें किसी अन्य ऑफ़र के साथ जोड़े बिना, अलग से क्लेम किया जा सकता है. इसमें ये शामिल हैं:
    • पूरे बिल पर एक जैसी छूट (जैसे, 20% की छूट)
    • सदस्यता के ऑफ़र (जैसे, सदस्यता लेने पर मुफ़्त मिठाई)
    • ऐसे मामलों में पेमेंट के ऑफ़र जहां रेस्टोरेंट के लिए कोई अन्य बुनियादी ऑफ़र उपलब्ध नहीं हैं
  • ऐड-ऑन ऑफ़र: ऐसे ऑफ़र जिन्हें पाने के लिए, बुनियादी ऑफ़र को क्लेम करना ज़रूरी होता है. इनमें ये शामिल हैं:
    • OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER (उदाहरण के लिए, चुनिंदा क्रेडिट कार्ड से पेमेंट करने पर 10% की अतिरिक्त छूट)
    • OFFER_CATEGORY_ADD_ON_COUPON_OFFER (उदाहरण के लिए, किसी खास कूपन कोड के साथ मुफ़्त ड्रिंक)
    • OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER (उदाहरण के लिए, सदस्यों के लिए 10% की अतिरिक्त छूट)

अन्य बातें:

  • अगर किसी रेस्टोरेंट के लिए कोई मूल ऑफ़र सेट नहीं किया गया है, तो ऐड-ऑन ऑफ़र नहीं दिखेंगे. अगर कोई बेस ऑफ़र नहीं है, तो पेमेंट, सदस्यता या कूपन से जुड़ा कोई भी ऐसा ऑफ़र जिसे किसी अन्य ऑफ़र के साथ जोड़ने की ज़रूरत नहीं है उसे OFFER_CATEGORY_BASE_OFFER के तौर पर टैग किया जाना चाहिए.
    • टाइप के आधार पर, PaymentInstrument, Subscription या Coupon के लिए ज़रूरी डेटा सेट किया जाना चाहिए.
    • पार्टनर को इनमें से हर ऑफ़र की दो कॉपी देनी होंगी, ताकि उन स्थितियों को कवर किया जा सके जहां वे बुनियादी ऑफ़र और ऐड-ऑन ऑफ़र, दोनों के तौर पर काम करते हैं. इसके बाद, ऐड-ऑन ऑफ़र की कॉपी को कई रेस्टोरेंट के लिए सेट किया जा सकता है. इसके लिए, entity_ids या add_on_offer_applicable_to_all_entities में से किसी एक का इस्तेमाल करें.
  • जब किसी रेस्टोरेंट के पास एक से ज़्यादा बुनियादी ऑफ़र हों और उन्हें एक साथ इस्तेमाल किया जा सकता हो, तो सभी बुनियादी ऑफ़र को OFFER_CATEGORY_BASE_OFFER के तौर पर टैग किया जाना चाहिए. साथ ही, पेमेंट, सदस्यता या कूपन वाले बुनियादी ऑफ़र को ऐड-ऑन ऑफ़र के टाइप के तौर पर भी भेजा जाना चाहिए.
  • ValidityPeriod का इस्तेमाल, ऐड-ऑन ऑफ़र को बुनियादी ऑफ़र के तौर पर सिर्फ़ तब चालू करने के लिए किया जाना चाहिए, जब कोई बुनियादी ऑफ़र चालू न हो.

उदाहरण के तौर पर:

  • कोई रेस्टोरेंट, किसी खास क्रेडिट कार्ड से पेमेंट करने पर 5% की छूट देता है. साथ ही, किसी खास कूपन कोड के साथ मुफ़्त ड्रिंक देता है

    • क्रेडिट कार्ड पर मिलने वाले 5% की छूट वाले ऑफ़र की दो कॉपी भेजी जानी चाहिए. एक कॉपी को OFFER_CATEGORY_BASE_OFFER के तौर पर और दूसरी कॉपी को OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER के तौर पर टैग किया जाना चाहिए. साथ ही, इसमें PaymentInstrument की जानकारी शामिल होनी चाहिए.
    • कूपन कोड के साथ मुफ़्त ड्रिंक का ऑफ़र, Coupon की जानकारी के साथ OFFER_CATEGORY_ADD_ON_COUPON_OFFER के तौर पर भेजा जाना चाहिए.
  • एक रेस्टोरेंट, बिना बुकिंग के आने वाले लोगों को 10% की छूट देता है. साथ ही, किसी खास क्रेडिट कार्ड से पेमेंट करने पर 5% की छूट देता है. इन दोनों छूट को एक साथ इस्तेमाल किया जा सकता है.

    • स्टोर में जाकर खरीदारी करने पर मिलने वाले 10% के ऑफ़र को OFFER_CATEGORY_BASE_OFFER के तौर पर टैग किया जाना चाहिए.
    • क्रेडिट कार्ड से पेमेंट करने पर 5% की छूट वाले ऑफ़र की दो कॉपी होनी चाहिए. इनमें से एक को OFFER_CATEGORY_BASE_OFFER के तौर पर और दूसरी को OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER के तौर पर टैग किया जाना चाहिए.
  • एक रेस्टोरेंट, हफ़्ते के दिनों में सिर्फ़ दोपहर के खाने पर 10% की छूट देता है. साथ ही, किसी खास क्रेडिट कार्ड से पेमेंट करने पर, किसी भी समय 5% की छूट मिलती है.

    • 10% की छूट वाले ऑफ़र के लिए, ValidityPeriod को इस तरह सेट किया जाना चाहिए कि यह सिर्फ़ हफ़्ते के दिनों में, रेस्टोरेंट में दोपहर के खाने के समय दिखे.
    • क्रेडिट कार्ड पर मिलने वाली 5% की छूट के ऑफ़र की दो कॉपी भेजी जानी चाहिए.
      • एक कॉपी को OFFER_CATEGORY_BASE_OFFER के तौर पर टैग किया जाना चाहिए. साथ ही, इसमें PaymentInstrument की जानकारी शामिल होनी चाहिए. जब 10% की छूट वाला लंच ऑफ़र चालू हो, तब हफ़्ते के कामकाजी दिनों में लंच के समय को बाहर रखने के लिए, ValidityPeriod को सेट किया जाना चाहिए
      • एक कॉपी को OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER के तौर पर टैग किया जाना चाहिए. इसमें PaymentInstrument की जानकारी शामिल होनी चाहिए.
    • इस रेस्टोरेंट के लिए, पेमेंट से जुड़े अन्य सभी ऑफ़र को OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER के तौर पर टैग किया जाना चाहिए.

डेवलपमेंट और लॉन्च करने की प्रोसेस

इंटिग्रेशन के दौरान, Partner Portal आपको डेवलपमेंट के आधार पर जानकारी और सुझाव/राय देने में मदद करेगा. डेवलपमेंट की प्रोसेस इस तरह होगी:

  • इंटिग्रेशन को सबसे पहले सैंडबॉक्स एनवायरमेंट में डेवलप किया जाएगा. आपको Google सैंडबॉक्स एनवायरमेंट में, प्रोडक्शन डेटा (या सीधे तौर पर प्रोडक्शन डेटा) का एक्सपोर्ट इस्तेमाल करना चाहिए. इससे यह पक्का करने में मदद मिलती है कि आपका डेवलपमेंट, सभी मुश्किल मामलों को कवर करता है. साथ ही, Google को डेटा क्वालिटी का आकलन करने और आपके डेटा मॉडल के आधार पर आपकी बेहतर तरीके से मदद करने की अनुमति देता है.
  • Google सैंडबॉक्स एनवायरमेंट में, हर दिन Merchant, Services, और Deals फ़ीड अपलोड करने के बाद, Google की टीम आपके फ़ीड का आकलन करेगी. Google की टीम से मंज़ूरी मिलने के बाद, अपने कोड को प्रोडक्शन में पुश किया जा सकता है. साथ ही, Google के प्रोडक्शन एनवायरमेंट में प्रोडक्शन डेटा भेजना शुरू किया जा सकता है.
  • प्रोडक्शन इंटिग्रेशन की पूरी तरह से जांच करने के बाद, Google की टीम भी इसकी जांच करेगी. सभी जांच पूरी होने के बाद, आपका इंटिग्रेशन लॉन्च हो जाएगा.

मॉनिटर करने के लिए

उपयोगकर्ताओं को बेहतर अनुभव देने के लिए, Google यह जांच करेगा कि दिए गए ऑफ़र मान्य हैं, सही हैं, और लॉन्च से पहले और बाद में हमारी नीति की शर्तों को पूरा करते हैं. इसके लिए, Google मैन्युअल और ऑटोमेटेड, दोनों तरीकों से समीक्षा करेगा. इन समीक्षाओं के नतीजे, Action Center के ऑफ़र डैशबोर्ड में देखे जा सकेंगे. यह सिर्फ़ प्रोडक्शन के लिए उपलब्ध है. इस मॉनिटरिंग के नतीजों का इस्तेमाल, ऑफ़र की रैंकिंग पर असर डालने के लिए किया जा सकता है.

ऑटोमेटेड चेक (क्रॉलर)

Google की क्वालिटी टीम, क्रॉलर लागू करती है. क्रॉलर ऐसी स्क्रिप्ट होती हैं जो वेब ब्राउज़र को अपने-आप काम करने के लिए सेट करती हैं. इससे कुछ क्लिक किए जा सकते हैं और ऑफ़र की जानकारी निकाली जा सकती है. इनका इस्तेमाल सिर्फ़ क्वालिटी की जांच करने के लिए किया जाता है.

क्वेरी की संख्या

उदाहरण के लिए, अगर हमने हर दिन 5,000 जांचें भेजने का फ़ैसला किया है, तो इसका मतलब है कि हमारा क्रॉलर हर दिन 5,000 बार (दिन भर में समान रूप से, यानी हर 17 सेकंड में एक बार) ये सभी कार्रवाइयां करता है. ये कार्रवाइयां, कोई सामान्य उपयोगकर्ता करता है:

  • Google Search से शुरू करें और पार्टनर लिंक पर क्लिक करें.
  • ऑफ़र की जानकारी ढूंढें.
  • अगर ऑफ़र के लिए बुकिंग करना ज़रूरी है, तो बुकिंग फ़्लो जारी रहेगा. इससे यह पुष्टि की जा सकेगी कि ऑफ़र, तय किए गए समय पर उपलब्ध है या नहीं. हालांकि, कोई बुकिंग नहीं की जाएगी.

वेब स्क्रैपर का पता लगाने की सुविधा

यह पक्का करें कि वेब स्क्रैपर को बैन न किया जाए. ऐसा होने पर, वह यह मान सकता है कि ऑफ़र उपलब्ध नहीं हैं. इसके लिए, यह पक्का करें कि आपका सिस्टम, हमारे वेब स्क्रैपर को हर समय आपके पेज पर क्वेरी करने की अनुमति देता हो. हमारे वेब स्क्रैपर की पहचान करने के लिए:

  • वेब स्क्रैपर के यूज़र-एजेंट में "Google-Offers" स्ट्रिंग शामिल होगी:
    • उदाहरण: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko; Google-Offers) Chrome/104.0.5112.101 Safari/537.36
  • यह भी देखा जा सकता है कि कॉल, Google से आ रहे हैं या नहीं. इसके लिए, रिवर्स डीएनएस का इस्तेमाल करें. इसके बारे में "Googlebot और Google के अन्य क्रॉलर की पुष्टि करना" लेख में बताया गया है. हमारे मामले में, रिवर्स डीएनएस रिज़ॉल्यूशन इस पैटर्न का पालन करता है: google-proxy-***-***-***-***.google.com.

तकनीकी व्यवहार

कैश मेमोरी में सेव करना

आम तौर पर, हमारे क्रॉलर को इस तरह कॉन्फ़िगर किया जाता है कि वे रिस्पॉन्स में मौजूद सभी स्टैंडर्ड एचटीटीपी कैशिंग हेडर का पालन करें. इससे पार्टनर की वेबसाइट पर लोड कम होता है. इसका मतलब है कि सही तरीके से कॉन्फ़िगर की गई वेबसाइटों के लिए, हम ऐसे कॉन्टेंट को बार-बार फ़ेच करने से बचते हैं जिसमें कभी-कभी बदलाव होता है. उदाहरण के लिए, JavaScript लाइब्रेरी. कैशिंग को लागू करने के बारे में ज़्यादा जानने के लिए, एचटीटीपी कैशिंग से जुड़ा यह दस्तावेज़ पढ़ें.