שותפים שמשתתפים בשילוב של מבצעים צריכים להשלים את הגדרת החשבון בשלב השילוב של מוכר או ישות (פיילוט) לפני שהם מתחילים. במדריך הזה מוסבר בפירוט על ההטמעה, הבדיקה וההפעלה של שילוב המבצעים. לפני שמבצעים את שלבי ההטמעה, חשוב לקרוא את הסקירה הכללית הזו ואת כללי המדיניות בנושא מבצעים.
מבצעים
השילוב של מבצעים מאפשר לכם להעביר מידע מובנה על מבצעים והנחות של מוכרים שחלים על שירותים ספציפיים בזמנים ספציפיים. מבצעים מורכבים מהמבצע עצמו (הנחה באחוזים, הנחה בדולרים וכו'), חלונות תוקף (שעות ספציפיות, ימים בשבוע וכו') ושימושים רלוונטיים (אפשר להשתמש במבצע רק בשירותים מסוימים), וגם משילובים מורכבים של הגבלות.
דוגמאות למבצעים:
- 50% הנחה על מנות ראשונות בימי רביעי וחמישי בדצמבר, מ-12:00 עד 17:00
- קונים קינוח ומקבלים קינוח נוסף בחינם בארוחת ערב ליום האם, בין השעות 18:00 ל-22:00
- הנחה של 5$ על מנה ראשונה בארוחת בראנץ' בכל יום ראשון מ-10:00 עד 14:00
- הנחה של 10% למשתמשים מזדמנים, שאפשר לשלב עם הנחה של 5% למנויי פרימיום ועם הנחה של 5% אם המשתמש משלם דרך האפליקציה.
כדי שמבצע ייכלל בשילוב, הוא צריך להתאים למודל הנתונים הטכני ולעמוד בדרישות הסף שלנו. חשוב לעיין במדיניות שלנו בנושא מבצעים כדי לוודא שההטמעה שלך עומדת בדרישות, ולקבל הוראות לגבי מה לעשות עם מבצעים שלא עומדים בדרישות הטכניות.
הטמעה של מבצעים
שילוב המבצעים כולל שני פידים שיועלו מדי יום או בתדירות שתבטיח רמת דיוק גבוהה (כלומר, תפחית את הסיכוי לנתונים לא עדכניים):
OfferFeed
שם השדה | סוג | דרישה | תיאור |
---|---|---|---|
data | מערך של אובייקט(Offer) |
מבצע
שם השדה | סוג | דרישה | תיאור |
---|---|---|---|
offer_id | מחרוזת | חובה | המזהה הייחודי של המבצע. חובה. |
entity_ids | array of string | רשימת המוכרים שמשתתפים במבצע הזה. | |
add_on_offer_applicable_to_all_entities | בוליאני | אם הערך הוא true, המבצע הזה חל על כל הישויות שמשויכות לאתר המקבץ. המאפיין הזה רלוונטי רק למבצעים של חבילות ערוצים. | |
offer_source | enum(OfferSource) | חובה | יכול להיות שהמבצע יסופק על ידי האתר המאגד, על ידי מוכר ספציפי או אפילו על ידי צד שלישי כתוספת. חובה. |
action_type | enum(ActionType) | חובה | השירות שמספק את המבצע. מזהה המבצע (offer_id) יכול להשתייך רק לסוג פעולה אחד (action_type). אם אפשר לשתף מבצע בכמה סוגי שירותים, המערכת צפויה ליצור מבצעים כפולים עם מזהים ייחודיים לכל סוג שירות. חובה. |
offer_modes | מערך של enum(OfferMode) | חובה | השיטות שבהן אפשר לממש את המבצע – הגעה למקום, הזמנה, אונליין וכו'. חובה. |
offer_category | enum(OfferCategory) | חובה | הקטגוריה של המבצע. חובה. |
source_assigned_priority | number | מספר שלם לא שלילי ([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_unit | enum(FeeUnit) | יחידת העלות של ההזמנה. לדוגמה, לכל אדם, לכל עסקה. | |
convenience_fee | אובייקט(Fee) | ||
booking_cost_adjustable | בוליאני | האם אפשר להתאים את עלות ההזמנה, כלומר, האם עלות ההזמנה מופחתת מהחשבון הסופי. לדוגמה: 30% הנחה על ארוחת ערב בהזמנה מראש. העלות של השריין היא 15 $והיא תופיע בחשבונית הסופית. לכן החיוב הסופי הוא: סכום ההוצאה הכולל – 30% – 15$ | |
additional_fees | מערך של אובייקט(AdditionalFee) | עמלות נוספות שחלות על המשתמש. דוגמאות: נוחות, טיפול וכו'. |
כסף
מייצג סכום כסף עם סוג המטבע.
שם השדה | סוג | דרישה | תיאור |
---|---|---|---|
currency_code | מחרוזת | קוד המטבע בן שלוש האותיות כפי שמוגדר בתקן ISO 4217. | |
units | מחרוזת | מספר היחידות השלמות של הסכום.
לדוגמה, אם הערך של currencyCode הוא "USD" , המשמעות היא שיחידה אחת שווה לדולר אחד. | |
nanos | number | מספר יחידות הננו (10^-9) של הסכום.
הערך חייב להיות בין -999,999,999 ל- +999,999,999, כולל.
אם הערך של units הוא חיובי, הערך של nanos חייב להיות חיובי או אפס.
אם הערך של units הוא אפס, הערך של nanos יכול להיות חיובי, אפס או שלילי.
אם הערך של units הוא שלילי, הערך של nanos חייב להיות שלילי או אפס.
לדוגמה, הסכום $-1.75 מיוצג כ-units =-1 וגם כ-nanos =-750,000,000. |
עמלה
שם השדה | סוג | דרישה | תיאור |
---|---|---|---|
unit | enum(FeeUnit) | ||
type | enum(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_ids | array of string | רשימה של מזהי מבצעים שאפשר לשלב עם המבצע הזה. יכול להיות שמבצעים מסוימים יחולו רק בשילוב עם מזהי מבצעים ספציפיים אחרים (אפשר להתייחס אליהם כמבצעים ראשיים). אם הערך של combinable_with_other_offers הוא true והשדה הזה לא מוגדר, אפשר לשלב את כל מזהי המבצעים. | |
inclusions | מערך של אובייקט(OfferCondition) | רשימת התנאים שצריכים להתקיים כדי שהמבצע יהיה תקף (למשל, משקאות לא אלכוהוליים, אוכל). | |
exclusions | מערך של אובייקט(OfferCondition) | רשימת התנאים שבעקבותיהם המבצע לא תקף (לדוגמה, מזנון, מבצעים על ארוחות משולבות וקוקטיילים). | |
min_guest | number | מספר האנשים המינימלי שנדרש כדי לממש את המבצע. | |
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
שם השדה | סוג | דרישה | תיאור |
---|---|---|---|
type | enum(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 שנים | |
nanos | number | שברים חתומים של שנייה ברזולוציית ננו-שנייה של טווח הזמן. משכי זמן של פחות משנייה מיוצגים באמצעות שדה 0
seconds ושדה nanos חיובי או שלילי. למשכי זמן של שנייה אחת או יותר, הערך בשדה nanos צריך להיות שונה מאפס ובעל אותו סימן כמו הערך בשדה seconds . הערך חייב להיות בין -999,999,999 ל-+999,999,999, כולל. |
תנאים
שם השדה | סוג | דרישה | תיאור |
---|---|---|---|
url | מחרוזת | כתובת ה-URL של התנאים וההגבלות של השותף. | |
restricted_to_certain_users | בוליאני | האם המבצע מוגבל למשתמשים מסוימים. | |
terms_and_conditions | מחרוזת | הטקסט העיקרי של התנאים וההגבלות שסופק על ידי השותף. | |
additional_terms_and_conditions | array 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, כולל. | |
nanos | number | שברים לא שליליים של שנייה ברזולוציית ננו-שנייה. ערכי שניות שליליים עם שברים עדיין צריכים לכלול ערכי ננו-שניות לא שליליים שסופרים קדימה בזמן. הערך חייב להיות בין 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
שם השדה | סוג | דרישה | תיאור |
---|---|---|---|
hours | number | שעות ביום בפורמט של 24 שעות. הערך חייב להיות גדול מ-0 או שווה לו, ובדרך כלל קטן מ-23 או שווה לו. יכול להיות ש-API יאפשר את הערך '24:00:00' בתרחישים כמו שעת סגירה של עסק. | |
minutes | number | מספר הדקות בשעה. הערך חייב להיות גדול מ-0 או שווה לו, וקטן מ-59 או שווה לו. | |
seconds | number | שניות בדקה. הערך חייב להיות גדול מ-0 או שווה לו, ובדרך כלל קטן מ-59 או שווה לו. יכול להיות ש-API יאפשר את הערך 60 אם הוא מאפשר שניות מעוברות. | |
nanos | number | חלקיקי שניות, בננו-שניות. הערך חייב להיות גדול מ-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_percent | number | לא כולל | אחוז ההנחה בחשבון. [0, 100] במבצעים מסוג 1+1 או 50% הנחה שחלים על כל הארוחה (למשל, מזנון 1+1, הנחה של 1+1 על כל החשבון, הנחה של 1+1 על תפריט קבוע), אפשר להגדיר את הערך הזה ל-50. |
discount_value | אובייקט(Money) | לא כולל | ערך קבוע של ההנחה. |
other_offer_detail_text | מחרוזת | לא כולל | טקסט חופשי לתיאור ההנחה. אם מדובר במבצעים ספציפיים של 1+1 (למשל: 1+1 על משקאות, מנה עיקרית נוספת, 1+1 על פריטים נבחרים בתפריט), צריך לפרט אותם כאן. |
עלות
שם השדה | סוג | דרישה | תיאור |
---|---|---|---|
amount | אובייקט(Money) | לא ניתן להשתמש בו עם | |
amount_range | אובייקט(MoneyRange) | לא ניתן להשתמש בו עם |
העלאת פיד
צריך להעלות את פיד המבצעים לשרת ה-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
.
- מבצע של 5% הנחה על כרטיס אשראי צריך להישלח כ-2 עותקים, אחד עם התג
מסעדה מציעה 10% הנחה ללקוחות מזדמנים ו-5% הנחה למשלמים בכרטיס אשראי ספציפי, ואפשר לשלב בין שתי ההנחות.
- מבצע של 10% הנחה על רכישה בחנות צריך להיות מתויג באמצעות
OFFER_CATEGORY_BASE_OFFER
. - למבצע של 5% הנחה למשלמים בכרטיס אשראי צריכות להיות 2 עותקים, שאחד מהם מתויג בתג
OFFER_CATEGORY_BASE_OFFER
והשני בתגOFFER_CATEGORY_ADD_ON_PAYMENT_OFFER
.
- מבצע של 10% הנחה על רכישה בחנות צריך להיות מתויג באמצעות
מסעדה מציעה הנחה של 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
.
- במבצע עם הנחה של 10% צריך להגדיר את
תהליך הפיתוח וההשקה
במהלך השילוב, תוכלו לקבל מידע ומשוב על סמך הפיתוח שלכם בפורטל השותפים. תהליך הפיתוח יתבצע לפי השלבים הבאים:
- השילוב יפותח קודם בסביבת ארגז החול. מומלץ להשתמש בייצוא של נתוני ייצור (או אפילו בנתוני ייצור ישירות) בסביבת ארגז החול של 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.