סקירה כללית

שותפים שמשתתפים בשילוב של מבצעים צריכים להשלים את הגדרת החשבון בשלב השילוב של מוכר או ישות (פיילוט) לפני שהם מתחילים. במדריך הזה מוסבר בפירוט על ההטמעה, הבדיקה וההפעלה של שילוב המבצעים. לפני שמבצעים את שלבי ההטמעה, חשוב לקרוא את הסקירה הכללית הזו ואת כללי המדיניות בנושא מבצעים.

מבצעים

השילוב של מבצעים מאפשר לכם להעביר מידע מובנה על מבצעים והנחות של מוכרים שחלים על שירותים ספציפיים בזמנים ספציפיים. מבצעים מורכבים מהמבצע עצמו (הנחה באחוזים, הנחה בדולרים וכו'), חלונות תוקף (שעות ספציפיות, ימים בשבוע וכו') ושימושים רלוונטיים (אפשר להשתמש במבצע רק בשירותים מסוימים), וגם משילובים מורכבים של הגבלות.

דוגמאות למבצעים:

  • 50% הנחה על מנות ראשונות בימי רביעי וחמישי בדצמבר, מ-12:00 עד 17:00
  • קונים קינוח ומקבלים קינוח נוסף בחינם בארוחת ערב ליום האם, בין השעות 18:00 ל-22:00
  • הנחה של 5$ על מנה ראשונה בארוחת בראנץ' בכל יום ראשון מ-10:00 עד 14:00
  • הנחה של 10% למשתמשים מזדמנים, שאפשר לשלב עם הנחה של 5% למנויי פרימיום ועם הנחה של 5% אם המשתמש משלם דרך האפליקציה.

כדי שמבצע ייכלל בשילוב, הוא צריך להתאים למודל הנתונים הטכני ולעמוד בדרישות הסף שלנו. חשוב לעיין במדיניות שלנו בנושא מבצעים כדי לוודא שההטמעה שלך עומדת בדרישות, ולקבל הוראות לגבי מה לעשות עם מבצעים שלא עומדים בדרישות הטכניות.

הטמעה של מבצעים

שילוב המבצעים כולל שני פידים שיועלו מדי יום או בתדירות שתבטיח רמת דיוק גבוהה (כלומר, תפחית את הסיכוי לנתונים לא עדכניים):

OfferFeed

שם השדהסוגדרישהתיאור
dataמערך של אובייקט
(Offer)

מבצע

שם השדהסוגדרישהתיאור
offer_idמחרוזת

חובה

המזהה הייחודי של המבצע. חובה.
entity_idsarray of string

רשימת המוכרים שמשתתפים במבצע הזה.
add_on_offer_applicable_to_all_entitiesבוליאני

אם הערך הוא true, המבצע הזה חל על כל הישויות שמשויכות לאתר המקבץ. המאפיין הזה רלוונטי רק למבצעים של חבילות ערוצים.
offer_sourceenum
(OfferSource)

חובה

יכול להיות שהמבצע יסופק על ידי האתר המאגד, על ידי מוכר ספציפי או אפילו על ידי צד שלישי כתוספת. חובה.
action_typeenum
(ActionType)

חובה

השירות שמספק את המבצע. מזהה המבצע (offer_id) יכול להשתייך רק לסוג פעולה אחד (action_type). אם אפשר לשתף מבצע בכמה סוגי שירותים, המערכת צפויה ליצור מבצעים כפולים עם מזהים ייחודיים לכל סוג שירות. חובה.
offer_modesמערך של enum
(OfferMode)

חובה

השיטות שבהן אפשר לממש את המבצע – הגעה למקום, הזמנה, אונליין וכו'. חובה.
offer_categoryenum
(OfferCategory)

חובה

הקטגוריה של המבצע. חובה.
source_assigned_prioritynumber

מספר שלם לא שלילי (‎[1-100]‎, כאשר 1 מייצג את העדיפות הגבוהה ביותר) שמציין את רמת העדיפות של המבצע שהוקצתה על ידי המקור. אם יש כמה מבצעים של אותו מוכר, זה יהיה אות לדירוג המבצעים. הערך 0 מייצג מצב שבו העדיפות לא מוגדרת.
offer_detailsאובייקט
(OfferDetails)

חובה

פרטי המבצע, כמו ההנחה, עלות ההזמנה וכו'. חובה.
offer_restrictionsאובייקט
(OfferRestrictions)

חובה

תיאור ההגבלות של המבצע, למשל אם נדרש מינוי או אמצעי תשלום, אם אפשר לשלב את המבצע עם מבצעים אחרים (ואילו סוגים), וכו'. חובה.
couponאובייקט
(Coupon)

פרטים של שובר. חובה אם ערך המאפיין offer_category [קטגוריית מבצע] הוא OFFER_CATEGORY_ADD_ON_COUPON_OFFER [מבצע_שובר_על_תוספת].
payment_instrumentאובייקט
(PaymentInstrument)

פרטים של אמצעי תשלום. חובה למבצעים מסוג offer_category: OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER.
subscriptionאובייקט
(Subscription)

פרטים של מינוי. חובה למבצעים מסוג offer_category: ‏OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER.
termsאובייקט
(Terms)

חובה

התנאים וההגבלות של המבצע. חובה.
validity_periodsמערך של אובייקט
(ValidityPeriod)

חובה

תקופת התוקף של המבצע. תיאור תקופת התוקף של המבצע, כולל שעות התחלה וסיום, ימים בשבוע וכו'. חובה.
offer_urlמחרוזת

כתובת ה-URL לדף המוצר של המוֹכר. מאפיין חובה לקטגוריית המבצע: OFFER_CATEGORY_BASE_OFFER.
image_urlמחרוזת

כתובת ה-URL של תמונת המבצע של המוֹכר.

OfferDetails

שם השדהסוגדרישהתיאור
offer_display_textמחרוזת

חובה

טקסט המבצע שספק המבצע רוצה להציג ללקוחות בדף תוצאות החיפוש. חובה.
oneOf
(offer_specification)

חובה

אפשר להגדיר רק אחד מהשדות ב-oneOf הזה.
max_discount_valueאובייקט
(Money)

ההנחה המקסימלית שאפשר לקבל. לדוגמה, 10% הנחה על קנייה של עד 100$.
min_spend_valueאובייקט
(Money)

סכום ההוצאה המינימלי שנדרש למימוש ההנחה. לדוגמה, 10% הנחה כשמחיר הקנייה הכולל הוא 100 $או יותר.
booking_costאובייקט
(Money)

העלות של הזמנת המבצע הזה. לדוגמה, הנחה של 100$ מהחשבון הסופי כשמזמינים שולחן בעלות של 15$.
booking_cost_unitenum
(FeeUnit)

יחידת העלות של ההזמנה. לדוגמה, לכל אדם, לכל עסקה.
convenience_feeאובייקט
(Fee)

booking_cost_adjustableבוליאני

האם אפשר להתאים את עלות ההזמנה, כלומר, האם עלות ההזמנה מופחתת מהחשבון הסופי. לדוגמה: 30% הנחה על ארוחת ערב בהזמנה מראש. העלות של השריין היא 15 $והיא תופיע בחשבונית הסופית. לכן החיוב הסופי הוא: סכום ההוצאה הכולל – 30% – 15$
additional_feesמערך של אובייקט
(AdditionalFee)

עמלות נוספות שחלות על המשתמש. דוגמאות: נוחות, טיפול וכו'.

כסף

מייצג סכום כסף עם סוג המטבע.

שם השדהסוגדרישהתיאור
currency_codeמחרוזת

קוד המטבע בן שלוש האותיות כפי שמוגדר בתקן ISO 4217.
unitsמחרוזת

מספר היחידות השלמות של הסכום. לדוגמה, אם הערך של currencyCode הוא "USD", המשמעות היא שיחידה אחת שווה לדולר אחד.
nanosnumber

מספר יחידות הננו (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_amountאובייקט
(Money)

max_amountאובייקט
(Money)

AdditionalFee

שם השדהסוגדרישהתיאור
nameמחרוזת

חובה

שם העמלה הנוספת. דוגמאות: עמלת נוחות, דמי טיפול וכו'. חובה.
feeאובייקט
(Fee)

OfferRestrictions

שם השדהסוגדרישהתיאור
combinable_with_other_offersבוליאני

האם אפשר לשלב את המבצע הזה עם מבצעים אחרים. אם הערך הוא True, השותפים יכולים לציין עם אילו מבצעים אפשר לשלב את המבצע הזה. אם הגדרתם גם את combinable_offer_categories וגם את combinable_offer_ids, כל מבצע שתואם לאחד מהתנאים שלמעלה יהיה ניתן לשילוב.
combinable_offer_categoriesמערך של enum
(OfferCategory)

רשימת סוגי המבצעים שאפשר לשלב עם המבצע הזה. לדוגמה, יכול להיות שאפשר יהיה לשלב את המבצע הזה עם שוברים אחרים. אם הערך של combinable_with_other_offers הוא true והשדה הזה לא מוגדר, אפשר לשלב את כל סוגי המבצעים.
combinable_offer_idsarray of string

רשימה של מזהי מבצעים שאפשר לשלב עם המבצע הזה. יכול להיות שמבצעים מסוימים יחולו רק בשילוב עם מזהי מבצעים ספציפיים אחרים (אפשר להתייחס אליהם כמבצעים ראשיים). אם הערך של combinable_with_other_offers הוא true והשדה הזה לא מוגדר, אפשר לשלב את כל מזהי המבצעים.
inclusionsמערך של אובייקט
(OfferCondition)

רשימת התנאים שצריכים להתקיים כדי שהמבצע יהיה תקף (למשל, משקאות לא אלכוהוליים, אוכל).
exclusionsמערך של אובייקט
(OfferCondition)

רשימת התנאים שבעקבותיהם המבצע לא תקף (לדוגמה, מזנון, מבצעים על ארוחות משולבות וקוקטיילים).
min_guestnumber

מספר האנשים המינימלי שנדרש כדי לממש את המבצע.
food_offer_restrictionsאובייקט
(FoodOfferRestrictions)

הגבלות ספציפיות למבצעים על אוכל.

OfferCondition

שם השדהסוגדרישהתיאור
descriptionמחרוזת

FoodOfferRestrictions

שם השדהסוגדרישהתיאור
meal_typesמערך של enum
(MealType)

סוגי הארוחות שאפשר להחיל עליהן את המבצע, כמו ארוחת צהריים או ארוחת ערב. אם לא מציינים סוג ארוחה, המבצע יכול לחול על כל סוגי הארוחות.
restricted_to_certain_coursesבוליאני

האם אפשר להחיל את המבצע רק על קורסים מסוימים.

שובר

שם השדהסוגדרישהתיאור
textמחרוזת

הטקסט של השובר שספק המבצע רוצה להציג למשתמשים.
codeמחרוזת

חובה

נדרש קוד שובר כדי לממש את המבצע. חובה.

PaymentInstrument

שם השדהסוגדרישהתיאור
itemsמערך של אובייקט
(PaymentInstrumentItem)

חובה

רשימה של אמצעי התשלום שאפשר להשתמש בהם כדי לממש את המבצע. חובה.
provider_nameמחרוזת

חובה

השם של ספק אמצעי התשלום. יכול להיות שם של שותף בנקאי, שם של בנק וכו'. לדוגמה: American Express,‏ HDFC,‏ ICICI. חובה.

PaymentInstrumentItem

שם השדהסוגדרישהתיאור
typeenum
(PaymentInstrumentType)

חובה

סוג אמצעי התשלום. חובה.
nameמחרוזת

חובה

שם פריט אמצעי התשלום, כמו שם כרטיס האשראי. לדוגמה: HDFC Infinia, ‏ American Express Platinum. חובה.

מינוי

שם השדהסוגדרישהתיאור
nameמחרוזת

חובה

שם המינוי. חובה.
subscription_auto_addedבוליאני

האם המינוי מתווסף אוטומטית כשמשתמש מממש את המבצע הזה
costאובייקט
(Money)

חובה

עלות המינוי. חובה.
subscription_durationאובייקט
(Duration)

חובה

משך התוקף של המינוי במחיר המינוי [subscription_cost]. חובה.
terms_and_conditions_urlמחרוזת

כתובת ה-URL של התנאים וההגבלות של השותף שרלוונטיים למינוי הזה.

משך

שם השדהסוגדרישהתיאור
secondsמחרוזת

שניות חתומות של טווח הזמן. הערך חייב להיות בין ‎-315,576,000,000 לבין ‎+315,576,000,000, כולל. הערה: הגבולות האלה מחושבים לפי: 60 שניות/דקה * 60 דקות/שעה * 24 שעות/יום * 365.25 ימים/שנה * 10,000 שנים
nanosnumber

שברים חתומים של שנייה ברזולוציית ננו-שנייה של טווח הזמן. משכי זמן של פחות משנייה מיוצגים באמצעות שדה 0 seconds ושדה nanos חיובי או שלילי. למשכי זמן של שנייה אחת או יותר, הערך בשדה nanos צריך להיות שונה מאפס ובעל אותו סימן כמו הערך בשדה seconds. הערך חייב להיות בין ‎-999,999,999 ל-‎+999,999,999, כולל.

תנאים

שם השדהסוגדרישהתיאור
urlמחרוזת

כתובת ה-URL של התנאים וההגבלות של השותף.
restricted_to_certain_usersבוליאני

האם המבצע מוגבל למשתמשים מסוימים.
terms_and_conditionsמחרוזת

הטקסט העיקרי של התנאים וההגבלות שסופק על ידי השותף.
additional_terms_and_conditionsarray of string

תנאים והגבלות בנוסף לתנאים ולהגבלות העיקריים של השותף.

ValidityPeriod

שם השדהסוגדרישהתיאור
valid_periodאובייקט
(ValidityRange)

חותמת הזמן של ההתחלה וחותמת הזמן של הסיום שבהן המבצע תקף. השעות האלה צריכות לייצג ימים שונים, כלומר שעת ההתחלה צריכה להיות 00:00 (תחילת היום) ושעת הסיום צריכה להיות 00:00 (לא כולל) ביום שבו מסתיים תוקף המבצע.
time_of_dayמערך של אובייקט
(TimeOfDayWindow)

מציין את מרווח הזמן התקף ביום נתון ואת הימים שבהם המבצע זמין. לדוגמה: יום שני: 10:00 עד 17:00 יום שלישי: 10:00 עד 14:00 יום שלישי: 17:00 עד 19:00 יום רביעי, חמישי, שישי, שבת, ראשון: 15:00 עד 19:00 אם לא מוגדרות שעות, המשמעות היא שהמבצע זמין בכל שעות הפתיחה של valid_period.
time_exceptionsמערך של אובייקט
(ValidTimeException)

ההגדרה מציינת חריגים לערכים valid_period ו-valid_time_of_week שצוינו למעלה

ValidityRange

טווח חותמות זמן סגור-פתוח.

שם השדהסוגדרישהתיאור
valid_from_timeאובייקט
(Timestamp)

חובה

שעת ההתחלה של הטווח (כולל). חובה.
valid_through_timeאובייקט
(Timestamp)

שעת הסיום של הטווח (לא כולל). אם לא מוגדרת תקופה, המשמעות היא שהתקופה הזו לא מסתיימת אף פעם. אופציונלי.

חותמת זמן

שם השדהסוגדרישהתיאור
secondsמחרוזת

מייצגת את השניות של זמן UTC מאז ראשית זמן יוניקס (Unix epoch) ב-1970-01-01T00:00:00Z. הערך צריך להיות בין 0001-01-01T00:00:00Z לבין 9999-12-31T23:59:59Z, כולל.
nanosnumber

שברים לא שליליים של שנייה ברזולוציית ננו-שנייה. ערכי שניות שליליים עם שברים עדיין צריכים לכלול ערכי ננו-שניות לא שליליים שסופרים קדימה בזמן. הערך חייב להיות בין 0 ל-999,999,999, כולל.

TimeOfDayWindow

האובייקט TimeWindow הוא ישות מורכבת שמתארת רשימה של חלונות שבהם אפשר לבצע את ההזמנה של המשתמש או לספק אותה.

שם השדהסוגדרישהתיאור
time_windowsאובייקט
(TimeOfDayRange)

חובה

חלון הזמן שבו אפשר לבצע את ההזמנה או לספק אותה. חובה.
day_of_weekמערך של enum
(DayOfWeek)

רשימת הימים בשבוע שבהם חלונות הזמן חלים. אם לא מוגדרים ימים, המשמעות היא שהמדיניות חלה על כל הימים בשבוע. אופציונלי.

TimeOfDayRange

טווח זמן סגור-פתוח.

שם השדהסוגדרישהתיאור
open_timeאובייקט
(TimeOfDay)

השעה שבה מתחיל היום בטווח (כולל). אם לא מגדירים את השדה, ברירת המחדל היא 00:00:00. אופציונלי.
close_timeאובייקט
(TimeOfDay)

שעה שמציינת את שעת הסיום של היום בטווח (לא כולל). אם לא מגדירים את השעה, ברירת המחדל היא 23:59:59. אופציונלי.

TimeOfDay

שם השדהסוגדרישהתיאור
hoursnumber

שעות ביום בפורמט של 24 שעות. הערך חייב להיות גדול מ-0 או שווה לו, ובדרך כלל קטן מ-23 או שווה לו. יכול להיות ש-API יאפשר את הערך '24:00:00' בתרחישים כמו שעת סגירה של עסק.
minutesnumber

מספר הדקות בשעה. הערך חייב להיות גדול מ-0 או שווה לו, וקטן מ-59 או שווה לו.
secondsnumber

שניות בדקה. הערך חייב להיות גדול מ-0 או שווה לו, ובדרך כלל קטן מ-59 או שווה לו. יכול להיות ש-API יאפשר את הערך 60 אם הוא מאפשר שניות מעוברות.
nanosnumber

חלקיקי שניות, בננו-שניות. הערך חייב להיות גדול מ-0 או שווה לו, וקטן מ-999,999,999 או שווה לו.

ValidTimeException

שם השדהסוגדרישהתיאור
exceptional_periodאובייקט
(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% הנחה על הוצאה של מעל 100$. אם מבצע בסיסי מוגבל על ידי שובר או אמצעי תשלום, השדות הרלוונטיים יוגדרו. יש לנו גם מבצעים על חבילות ערוצים, כמו 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_percentnumber

לא כולל discount_value, other_offer_detail_text

אחוז ההנחה בחשבון. ‫[0, 100] במבצעים מסוג 1+1 או 50% הנחה שחלים על כל הארוחה (למשל, מזנון 1+1, הנחה של 1+1 על כל החשבון, הנחה של 1+1 על תפריט קבוע), אפשר להגדיר את הערך הזה ל-50.
discount_valueאובייקט
(Money)

לא כולל discount_percent, other_offer_detail_text

ערך קבוע של ההנחה.
other_offer_detail_textמחרוזת

לא כולל discount_percent, discount_value

טקסט חופשי לתיאור ההנחה. אם מדובר במבצעים ספציפיים של 1+1 (למשל: 1+1 על משקאות, מנה עיקרית נוספת, 1+1 על פריטים נבחרים בתפריט), צריך לפרט אותם כאן.

עלות

שם השדהסוגדרישהתיאור
amountאובייקט
(Money)

לא ניתן להשתמש בו עם amount_range

amount_rangeאובייקט
(MoneyRange)

לא ניתן להשתמש בו עם amount

העלאת פיד

צריך להעלות את פיד המבצעים לשרת ה-SFTP של הפיד Generic. כדי לקבל הוראות, אפשר לעיין במאמר איך משתמשים בשרת SFTP של פיד כללי ולהשתמש בערך google.offer של המאפיין name בקובץ התיאור.

תדירות ההעלאה

באופן כללי, 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.
    • השותפים צריכים לספק 2 עותקים של כל אחת מהחבילות האלה כדי לכסות תרחישים שבהם הן פועלות גם כחבילות בסיסיות וגם כחבילות ערוצים. אחרי זה אפשר להגדיר את העותק של מבצע התוסף למספר מסעדות באמצעות entity_ids או add_on_offer_applicable_to_all_entities.
  • אם למסעדה יש כמה מבצעים בסיסיים שאפשר לשלב ביניהם, צריך לתייג את כולם במאפיין OFFER_CATEGORY_BASE_OFFER. בנוסף, צריך לשלוח מבצעים בסיסיים שקשורים לתשלום, למינוי או לשובר כסוג המבצע הרלוונטי של מוצר נלווה.
  • צריך להשתמש ב-ValidityPeriod כדי להפעיל מבצעים של חבילות כחבילות בסיסיות רק כשאין חבילה בסיסית פעילה.

תרחישים לדוגמה:

  • מסעדה מציעה 5% הנחה על תשלום בכרטיס אשראי ספציפי ומשקה חינם עם קוד שובר ספציפי

    • מבצע של 5% הנחה על כרטיס אשראי צריך להישלח כ-2 עותקים, אחד עם התג OFFER_CATEGORY_BASE_OFFER ואחד עם התג OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER, כולל הפרטים של PaymentInstrument.
    • מבצע של משקה חינם עם קוד שובר צריך להישלח כOFFER_CATEGORY_ADD_ON_COUPON_OFFER עם הפרטים של Coupon.
  • מסעדה מציעה 10% הנחה ללקוחות מזדמנים ו-5% הנחה למשלמים בכרטיס אשראי ספציפי, ואפשר לשלב בין שתי ההנחות.

    • מבצע של 10% הנחה על רכישה בחנות צריך להיות מתויג באמצעות OFFER_CATEGORY_BASE_OFFER.
    • למבצע של 5% הנחה למשלמים בכרטיס אשראי צריכות להיות 2 עותקים, שאחד מהם מתויג בתג OFFER_CATEGORY_BASE_OFFER והשני בתג OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER.
  • מסעדה מציעה הנחה של 10% רק על ארוחת צהריים בימי חול, והנחה של 5% בכל שעה אם משלמים באמצעות כרטיס אשראי ספציפי.

    • במבצע עם הנחה של 10% צריך להגדיר את ValidityPeriod כך שהמבצע יהיה תקף רק בשעות ארוחת הצהריים של המסעדה בימי חול.
    • צריך לשלוח 2 עותקים של מבצע הנחה של 5% למשלמים בכרטיס אשראי.
      • עותק אחד צריך להיות מתויג כ-OFFER_CATEGORY_BASE_OFFER עם הפרטים של PaymentInstrument. צריך להגדיר את ValidityPeriod כך שיוחרגו שעות הצהריים בימי חול, כשהמבצע של 10% הנחה על ארוחת צהריים פעיל
      • עותק אחד צריך להיות מתויג בתג OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER עם הפרטים של PaymentInstrument.
    • כל שאר אמצעי התשלום במסעדה הזו צריכים להיות מסומנים בתג OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER.

תהליך הפיתוח וההשקה

במהלך השילוב, תוכלו לקבל מידע ומשוב על סמך הפיתוח שלכם בפורטל השותפים. תהליך הפיתוח יתבצע לפי השלבים הבאים:

  • השילוב יפותח קודם בסביבת ארגז החול. מומלץ להשתמש בייצוא של נתוני ייצור (או אפילו בנתוני ייצור ישירות) בסביבת ארגז החול של Google. כך תוכלו לוודא שהפיתוח שלכם יתעד את כל המקרים הקיצוניים, ו-Google תוכל להעריך את איכות הנתונים ולעזור לכם בצורה טובה יותר על סמך מודל הנתונים שלכם.
  • אחרי שתסיימו להעלות פידים של מוצרים, שירותים ומבצעים באופן עקבי מדי יום בסביבת ארגז החול של Google, הצוות של Google יבדוק את הפידים שלכם. אחרי שצוות Google יאשר את הקוד, תוכלו להעביר אותו לסביבת הייצור ולהתחיל לשלוח נתוני ייצור לסביבת הייצור של Google.
  • אחרי שתבדקו באופן מלא את השילוב של סביבת הייצור, הצוות של Google יבצע גם הוא בדיקה. אחרי שכל הבדיקות יסתיימו, השילוב יופעל.

מעקב

כדי להבטיח חוויית משתמש טובה, Google תבדוק שהמבצעים שאתם מציעים תקפים, נכונים ועומדים בקריטריונים של המדיניות שלנו לפני ההפעלה ואחריה. לשם כך, Google תשתמש בשילוב של בדיקה אנושית ואוטומטית. תוצאות הבדיקות האלה יהיו זמינות בלוח הבקרה של המוצרים במרכז הפעולות (בסביבת הייצור בלבד). יכול להיות שהתוצאה של המעקב הזה תשמש להשפעה על דירוג המוצרים.

בדיקות אוטומטיות (סורקים)

צוות האיכות של Google מטמיע סורקים. סורקים הם סקריפטים שמבצעים אוטומציה של דפדפן אינטרנט כדי לבצע קליקים מסוימים ולחלץ מידע על מוצרים, למטרות בדיקת איכות בלבד.

מספר השאילתות

לדוגמה, אם החלטנו לשלוח 5,000 בדיקות ביום, המשמעות היא שבמהלך היום (בחלוקה שווה, כלומר בערך אחת ל-17 שניות), הסורק שלנו מבצע 5,000 פעמים את כל הפעולות שמשתמש רגיל מבצע:

  • מתחילים בחיפוש Google ולוחצים על הקישור לשותף.
  • מחפשים את פרטי המבצע.
  • אם המבצע דורש הזמנה, המשתמש ימשיך לתהליך ההזמנה כדי לוודא שהמבצע זמין בשעה שצוינה (לא תתבצע הזמנה).

זיהוי של כלי לגירוד נתונים מאתרים

כדי לוודא שסורק האינטרנט לא ייחסם (מה שעלול לגרום לו להסיק שהמוצרים לא זמינים), צריך לוודא שהמערכת מאפשרת לסורק האינטרנט שלנו לשלוח שאילתות לדף בכל שלב. כדי לזהות את כלי הגירוד שלנו:

  • סוכן המשתמש של כלי הגירוד יכיל את המחרוזת 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 באמצעות DNS הפוך, כמו שמומלץ במאמר אימות של Googlebot וסורקים אחרים של Google. במקרה הספציפי שלנו, רזולוציית ה-DNS ההפוכה פועלת לפי הדפוס הבא: google-proxy-***-***-***-***.google.com.

התנהגות טכנית

שמירה במטמון

כדי להפחית את העומס על אתר השותף, הסורקים שלנו מוגדרים בדרך כלל כך שהם יתייחסו לכל כותרות ה-HTTP הרגילות של שמירת נתונים במטמון שמופיעות בתגובה. המשמעות היא שבאתרים שהוגדרו בצורה נכונה, אנחנו נמנעים מאחזור חוזר של תוכן שמשתנה לעיתים רחוקות (למשל, ספריות JavaScript). פרטים נוספים על הטמעה של שמירה במטמון זמינים במסמכי התיעוד בנושא שמירה במטמון של HTTP.