מעורבות ב-SDK לשופינג: הוראות לשילוב טכני של צד שלישי

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

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

פרטי השילוב

טרמינולוגיה

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

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

    ההמלצות שלכם בנויות באופן הבא:

    • אשכול המלצות: תצוגה של ממשק משתמש שמכילה קבוצה של מאותו מפתח שותף.

    • ShoppingEntity: אובייקט שמייצג פריט יחיד באשכול.

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

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

    עגלת הקניות בנויה במבנה הבא:

    • אשכול עגלת קניות: תצוגה של ממשק משתמש שמכילה קבוצה של קניות תצוגות מקדימות של עגלות קניות משותפים של מפתחים רבים.

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

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

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

    • חובה להציג את המספר הכולל של הפריטים באשכול 'סידור מחדש' ההזמנה הקודמת של המשתמש וחייבת לכלול גם אחד מהפרטים הבאים:

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

    מוצג אשכול אחד של ShoppingOrderTracking קרוב לחלק העליון של ממשק המשתמש, במיקום בעדיפות מעל כל ההמלצה אשכולות. כל שותף מפתחים מורשה לשדר כמה פריטים ב-ShoppingOrderTrackingEntity באשכול 'מעקב אחר הזמנות' בשופינג.

    • המבנה של Cluster 'ShoppingOrderTrackingCluster' הוא במבנה הבא:

      • אשכול ShoppingOrderTracking: תצוגה של ממשק משתמש שמכילה קבוצה של תצוגות מקדימות של מעקב הזמנות משותפי מפתחים רבים
      • ShoppingOrderTrackingEntity: אובייקט שמייצג הזמנת קנייה תצוגה מקדימה של מעקב אחר שותף מפתח יחיד, שתוצג אשכול מעקב אחר הזמנות בשופינג. חובה להציג ישות ShoppingOrderTrackingEntity סטטוס ההזמנה ושעת ההזמנה. מומלץ מאוד אכלוס זמן האספקה הצפוי של ShoppingOrderTrackingEntity, באופן הבא הוא מוצג למשתמשים כשמספקים אותו.

הכנה לעבודה

רמת API מינימלית: 19

מוסיפים את הספרייה com.google.android.engage:engage-core לאפליקציה:

dependencies {
    // Make sure you also include that repository in your project's build.gradle file.
    implementation 'com.google.android.engage:engage-core:1.5.2'
}

מידע נוסף זמין במאמר בנושא הרשאות גישה לחבילה ב-Android 11.

סיכום

התכנון מבוסס על יישום של גבול .

הנתונים שלקוח יכול לפרסם כפופים למגבלות הבאות סוגי אשכולות:

סוג האשכול מגבלות של אשכולות תקרות של ישויות באשכול
אשכולות של המלצות 5 לכל היותר 25 ShoppingEntity לכל היותר
אשכול נבחר 1 לכל היותר ShoppingEntity אחד לכל היותר
אשכול עגלות קניות 1 לכל היותר ShoppingCart אחד לכל היותר
אשכול רשימת קניות 1 לכל היותר ShoppingListEntity אחד לכל היותר
אשכול שינוי הסדר בשופינג 1 לכל היותר ReorderEntity אחד לכל היותר
אשכול מעקב אחר הזמנות שופינג 3 לכל היותר 3 ShoppingOrderTrackingEntity לכל היותר

שלב 1: מסירת נתוני הישות

ב-SDK הוגדרו ישויות שונות שמייצגות כל סוג פריט. הישויות הבאות נתמכות בקטגוריה 'שופינג':

  1. ShoppingEntity
  2. ShoppingCart
  3. ShoppingList
  4. Reorder
  5. ShoppingOrderTracking

בתרשימים הבאים מפורטים המאפיינים והדרישות הזמינים לכל סוג.

ShoppingEntity

האובייקט ShoppingEntity מייצג מוצר, מבצע, מבצע, מינוי, או אירוע ששותפי מפתחים רוצים לפרסם.

ShoppingEntity
מאפיין דרישה תיאור פורמט
תמונות של פוסטר חובה יש לספק תמונה אחת לפחות. הנחיות ליצירת תמונות מפורטות במפרט התמונות.
URI של פעולה חובה

קישור העומק לדף באפליקציה שבו מוצגים פרטים על .

הערה: אפשר להשתמש בקישורי עומק לצורך שיוך. אפשר לעיין בשאלות הנפוצות האלה

URI
כותרת אופציונלי שם הישות.

טקסט חופשי

גודל טקסט מומלץ: עד 90 תווים (טקסט אם הטקסט ארוך מדי, ייתכן שיוצגו שלוש נקודות)

מחיר – נוכחי נדרש באופן מותנה

המחיר הנוכחי של הישות.

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

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

טקסט חופשי

גודל טקסט מומלץ: פחות מ-45 תווים (טקסט אם הטקסט ארוך מדי, ייתכן שיוצגו שלוש נקודות)

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

טקסט חופשי

גודל טקסט מומלץ: פחות מ-45 תווים (טקסט אם הטקסט ארוך מדי, ייתכן שיוצגו שלוש נקודות)

דירוג (אופציונלי) - הערה: כל הדירוגים מוצגים באמצעות המערכת הרגילה שלנו לדירוג כוכבים.
דירוג – ערך מקסימלי אופציונלי

הערך המקסימלי של סולם הדירוג.

חובה לציין אם גם ערך הדירוג הנוכחי הוא שניתנו.

מספר >= 0.0
דירוג - ערך נוכחי אופציונלי

הערך הנוכחי של סולם הדירוג.

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

מספר >= 0.0
דירוג – מספר אופציונלי

מספר הדירוגים של הישות.

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

מחרוזת
דירוג - ערך ספירה אופציונלי

מספר הדירוגים של הישות.

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

ארוך
DisplayTimeWindow (אופציונלי) – הגדרת חלון זמן להצגת תוכן בפלטפורמה
חותמת זמן ההתחלה אופציונלי

חותמת הזמן של התקופה שאחריה התוכן אמור להיות מוצג פלטפורמה.

אם המדיניות לא מוגדרת, התוכן יכול להופיע בפלטפורמה.

חותמת זמן של תקופה מסוימת באלפיות השנייה
חותמת זמן של סיום אופציונלי

חותמת הזמן של התקופה שאחריה התוכן כבר לא מוצג את פני השטח.

אם המדיניות לא מוגדרת, התוכן יכול להופיע בפלטפורמה.

חותמת זמן של תקופה מסוימת באלפיות השנייה

ShoppingCart

מאפיין דרישה תיאור פורמט
URI של פעולה חובה

קישור העומק לעגלת הקניות באפליקציה של השותף.

הערה: אפשר להשתמש בקישורי עומק לצורך שיוך. אפשר לעיין בשאלות הנפוצות האלה

URI
מספר הפריטים חובה

מספר הפריטים (לא רק מספר המוצרים) בעגלת הקניות.

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

מספר שלם >= 1
טקסט פעולה אופציונלי

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

אם המפתח לא סיפק טקסט של פעולה, ברירת המחדל היא View Cart.

המאפיין הזה נתמך בגרסה 1.1.0 ואילך.

מחרוזת
כותרת אופציונלי

הכותרת של עגלת הקניות (לדוגמה, שקית הקניות שלך).

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

טקסט חופשי

גודל טקסט מומלץ: פחות מ-25 תווים (טקסט אם הטקסט ארוך מדי, ייתכן שיוצגו שלוש נקודות)

תמונות של עגלת קניות אופציונלי

תמונות של כל מוצר בעגלת הקניות.

אפשר לספק עד 10 תמונות לפי סדר עדיפות. ה מספר התמונות שמוצג בפועל תלוי בצורת המכשיר בשקלול.

הנחיות ליצירת תמונות מפורטות במפרט התמונות.
תוויות פריטים אופציונלי

רשימת התוויות של הפריטים ברשימת הקניות.

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

רשימה של תוויות טקסט חופשי

גודל טקסט מומלץ: פחות מ-20 תווים (טקסט שהוא אם הטקסט ארוך מדי, ייתכן שיוצגו שלוש נקודות)

DisplayTimeWindow (אופציונלי) – הגדרת חלון זמן להצגת תוכן בפלטפורמה
חותמת זמן ההתחלה אופציונלי

חותמת הזמן של התקופה שאחריה התוכן אמור להיות מוצג פלטפורמה.

אם המדיניות לא מוגדרת, התוכן יכול להופיע בפלטפורמה.

חותמת זמן של תקופה מסוימת באלפיות השנייה
חותמת זמן של סיום אופציונלי

חותמת הזמן של התקופה שאחריה התוכן כבר לא מוצג את פני השטח.

אם המדיניות לא מוגדרת, התוכן יכול להופיע בפלטפורמה.

חותמת זמן של תקופה מסוימת באלפיות השנייה

ShoppingList

מאפיין דרישה תיאור פורמט
URI של פעולה חובה

קישור העומק לרשימת הקניות באפליקציה של השותף.

הערה: אפשר להשתמש בקישורי עומק לצורך שיוך. אפשר לעיין בשאלות הנפוצות האלה

URI
מספר הפריטים חובה מספר הפריטים ברשימת הקניות. מספר שלם >= 1
כותרת אופציונלי

שם הרשימה (לדוגמה, רשימת המצרכים שלך).

אם המפתח לא סיפק את השם, ברירת המחדל היא רשימת קניות.

טקסט חופשי

גודל טקסט מומלץ: פחות מ-25 תווים (טקסט אם הטקסט ארוך מדי, ייתכן שיוצגו שלוש נקודות)

תוויות פריטים חובה

רשימת התוויות של הפריטים ברשימת הקניות.

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

רשימה של תוויות טקסט חופשי

גודל טקסט מומלץ: פחות מ-20 תווים (טקסט שהוא אם הטקסט ארוך מדי, ייתכן שיוצגו שלוש נקודות)

ShoppingReorderCluster

מאפיין דרישה תיאור פורמט
URI של פעולה חובה

קישור העומק שצריך לבצע הזמנה מחדש באפליקציה של השותף.

הערה: אפשר להשתמש בקישורי עומק לצורך שיוך. אפשר לעיין בשאלות הנפוצות האלה

URI
טקסט פעולה אופציונלי

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

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

המאפיין הזה נתמך בגרסה 1.1.0 ואילך.

מחרוזת
מספר הפריטים חובה

מספר הפריטים (לא רק מספר המוצרים) הזמנה.

לדוגמה: אם היו 3 סוגי קפה קטנים וקרואסון אחד בסדר הקודם, המספר צריך להיות 4.

מספר שלם >= 1
כותרת חובה השם של הפריט שרוצים להזמין מחדש.

טקסט חופשי

גודל טקסט מומלץ: פחות מ-40 תווים (טקסט אם הטקסט ארוך מדי, ייתכן שיוצגו שלוש נקודות)

תוויות פריטים

אופציונלי

(אם לא סופק, יש לספק תמונות של פוסטר)

רשימת התוויות של הפריטים בהזמנה הקודמת.

אפשר לספק עד 10 תוויות לפי סדר עדיפות. ה מספר התוויות שמוצג בפועל תלוי בצורת המכשיר בשקלול.

רשימה של טקסט חופשי

גודל טקסט מומלץ לכל תווית: עד 20 תווים (בטקסט ארוך מדי עשויות להופיע שלוש נקודות)

תמונות של פוסטר

אופציונלי

(אם לא צוין, יש לספק תוויות של פריטים)

תמונות של הפריטים בהזמנה הקודמת.

אפשר לספק עד 10 תמונות לפי סדר עדיפות. ה מספר התמונות שמוצג בפועל תלוי בצורת המכשיר בשקלול.

לקבלת הנחיות, אפשר לעיין במפרטי תמונות.

ShoppingOrderTrackingCluster

מאפיין דרישה תיאור פורמט
כותרת חובה

שם קצר של החבילה או של הפריטים שנמצאים במעקב או של דף המעקב מספר.

טקסט חופשי

גודל טקסט מומלץ: 50 תווים (טקסט ארוך מדי: הצגת שלוש נקודות)

סוג הזמנה חובה

שם קצר של החבילה או של הפריטים שנמצאים במעקב או של דף המעקב מספר.

ערכים לדוגמה: IN_STORE_PICKUP, SAME_DAY_DELIVERY, MULTI_DAY_DELIVERY

סטטוס חובה

הסטטוס הנוכחי של ההזמנה.

לדוגמה: "עיכובים", "בתחבורה ציבורית", "בעיכוב", 'נשלחה', 'נשלחה', 'חסרה במלאי', 'ההזמנה מוכנה'

טקסט חופשי

גודל טקסט מומלץ: 25 תווים (טקסט ארוך מדי) הצגת שלוש נקודות)

שעת ההזמנה חובה

חותמת הזמן של התקופה הקודמת (epoch) באלפיות השנייה שבה ההזמנה בוצעה.

זמן ההזמנה יוצג אם חלון זמן האספקה הצפוי הוא לא קיים

חותמת זמן של תקופה מסוימת באלפיות השנייה
URI של פעולה חובה

קישור עומק למעקב אחרי ההזמנות באפליקציה של השותף.

URI
OrderDeliveryTimeWindow (אופציונלי) – הגדרת שעה החלון להזמנה שעקבו אחריה מרגע ביצוע ההזמנה למועד של המסירה הצפויה/הבפועל.
OrderDeliveryTimeWindow - שעת התחלה אופציונלי

חותמת הזמן של תקופה של זמן מערכת (epoch) באלפיות השנייה שאחריה ההזמנה תהיה למשלוח או להיות מוכנים לאיסוף.

חותמת זמן של תקופה מסוימת באלפיות השנייה
OrderDeliveryTimeWindow - שעת סיום אופציונלי

חותמת הזמן של תקופה של זמן מערכת (epoch) באלפיות השנייה שממנה או לפני כן תהיה למשלוח או להיות מוכנים לאיסוף.

חותמת זמן של תקופה מסוימת באלפיות השנייה
תמונות של פוסטר אופציונלי

תמונה של פריט אחד או מוצר אחד שנכלל בהזמנה.

יחס הגובה-רוחב המומלץ הוא 1:1

הנחיות ליצירת תמונות מפורטות במפרט התמונות.
מספר הפריטים אופציונלי מספר הפריטים בהזמנה. מספר שלם >= 1
תיאור אופציונלי

פסקה אחת של טקסט לתיאור הפריטים שבסדר.

הערה: התיאור או רשימת הכתוביות יהיו שמוצגות למשתמש, לא גם וגם.

טקסט חופשי

גודל טקסט מומלץ: 180 תווים

רשימת כתוביות אופציונלי

עד 3 כתוביות, כאשר כל כותרת משנה היא שורת טקסט אחת.

הערה: התיאור או רשימת הכתוביות יהיו שמוצגות למשתמש, לא גם וגם.

טקסט חופשי

גודל טקסט מומלץ לכל כותרת משנה: מקסימום 50 תווים

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

טקסט חופשי

גודל טקסט מומלץ: עד 25 תווים

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

טקסט חופשי

גודל טקסט מומלץ: עד 25 תווים

מפרט לתמונות

המפרטים הנדרשים לנכסי תמונות מפורטים בהמשך:

יחס גובה-רוחב מספר פיקסלים מינימלי מספר פיקסלים מומלץ

תמונה ריבועית: (1X1)

מועדף לאשכולות שלא מוצגים

300x300 1,200x1,200

תמונה לרוחב (1.91X1)

מועדף לאשכולות נבחרים

600x314 1,200x628
לאורך (4x5) 480x600 960 x 1,200

פורמטים של קבצים

PNG, JPG, GIF סטטי, WebP

גודל קובץ מקסימלי

5,120KB

המלצות נוספות

  • האזור הבטוח של התמונות: צריך למקם את התוכן החשוב ב-80% המרכזיים של תמונה.
  • השתמשו ברקע שקוף כדי שניתן יהיה להציג את התמונה כראוי הגדרות של עיצוב כהה ועיצוב בהיר.

שלב 2: מספקים נתוני אשכול

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

AppEngageShoppingClient אחראי לפרסום אשכולות של קניות.

ממשקי ה-API הבאים נחשפים לפרסום אשכולות בלקוח:

  • isServiceAvailable
  • publishRecommendationClusters
  • publishFeaturedCluster
  • publishShoppingCart
  • publishShoppingList
  • publishShoppingReorderCluster
  • publishShoppingOrderTrackingCluster
  • publishUserAccountManagementRequest
  • updatePublishStatus
  • deleteRecommendationsClusters
  • deleteFeaturedCluster
  • deleteShoppingCartCluster
  • deleteShoppingListCluster
  • deleteShoppingReorderCluster
  • deleteShoppingOrderTrackingCluster
  • deleteUserManagementCluster
  • deleteClusters

isServiceAvailable

ה-API הזה משמש כדי לבדוק אם השירות זמין לשילוב, האם ניתן להציג את התוכן במכשיר.

Kotlin


client.isServiceAvailable.addOnCompleteListener { task ->
    if (task.isSuccessful) {
        // Handle IPC call success
        if(task.result) {
          // Service is available on the device, proceed with content publish
          // calls.
        } else {
          // Service is not available, no further action is needed.
        }
    } else {
      // The IPC call itself fails, proceed with error handling logic here,
      // such as retry.
    }
}

Java


client.isServiceAvailable().addOnCompleteListener(task - > {
    if (task.isSuccessful()) {
        // Handle success
        if(task.getResult()) {
          // Service is available on the device, proceed with content
          // publish calls.
        } else {
          // Service is not available, no further action is needed.
        }
    } else {
      // The IPC call itself fails, proceed with error handling logic here,
      // such as retry.
    }
});

publishRecommendationClusters

ה-API הזה משמש לפרסום רשימה של RecommendationCluster אובייקטים.

אובייקט RecommendationCluster יכול לכלול את המאפיינים הבאים:

מאפיין דרישה תיאור
רשימת ShoppingEntity חובה רשימה של אובייקטים ב-ShoppingEntity שמהם מורכבות ההמלצות את אשכול ההמלצות הזה.
כותרת חובה

הכותרת של אשכול ההמלצות.

גודל טקסט מומלץ: פחות מ-25 תווים (טקסט אם הטקסט ארוך מדי, ייתכן שיוצגו שלוש נקודות)

כותרת משנה אופציונלי כותרת המשנה של אשכול ההמלצות.
URI של פעולה אופציונלי

קישור העומק לדף באפליקציית השותף שבו המשתמשים יכולים לראות את רשימת ההמלצות המלאה.

הערה: אפשר להשתמש בקישורי עומק לצורך שיוך. אפשר לעיין בשאלות הנפוצות האלה

Kotlin


client.publishRecommendationClusters(
            PublishRecommendationClustersRequest.Builder()
                .addRecommendationCluster(
                    RecommendationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .setTitle("Black Friday Deals")
                        .build())
                .build())

Java


client.publishRecommendationClusters(
            new PublishRecommendationClustersRequest.Builder()
                .addRecommendationCluster(
                    new RecommendationCluster.Builder()
                        .addEntity(entity1)
                        .addEntity(entity2)
                        .setTitle("Black Friday Deals")
                        .build())
                .build());

כשהשירות מקבל את הבקשה, הפעולות הבאות מתרחשות בתוך עסקה אחת:

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

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

publishFeaturedCluster

ה-API הזה משמש לפרסום אובייקט FeaturedCluster.

Kotlin


client.publishFeaturedCluster(
            PublishFeaturedClusterRequest.Builder()
                .setFeaturedCluster(
                    FeaturedCluster.Builder()
                        ...
                        .build())
                .build())

Java


client.publishFeaturedCluster(
            new PublishFeaturedClusterRequest.Builder()
                .setFeaturedCluster(
                    new FeaturedCluster.Builder()
                        ...
                        .build())
                .build());

כשהשירות מקבל את הבקשה, הפעולות הבאות מתרחשות בתוך עסקה אחת:

  • הנתונים הקיימים של FeaturedCluster מהשותף למפתחים יוסרו.
  • הנתונים מהבקשה מנותחים ונשמרים באשכול המעודכן.

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

publishShoppingCart

ה-API הזה משמש לפרסום אובייקט ShoppingCartCluster.

Kotlin


client.publishShoppingCart(
            PublishShoppingCartRequest.Builder()
                .setShoppingCart(
                    ShoppingCart.Builder()
                        ...
                        .build())
                .build())

Java


client.publishShoppingCart(
            new PublishShoppingCartRequest.Builder()
                .setShoppingCart(
                    new ShoppingCart.Builder()
                        ...
                        .build())
                .build())

כשהשירות מקבל את הבקשה, הפעולות הבאות מתרחשות בתוך עסקה אחת:

  • הנתונים הקיימים של ShoppingCart מהשותף למפתחים יוסרו.
  • הנתונים מהבקשה מנותחים ונשמרים בעגלת הקניות המעודכנת אשכול.

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

publishShoppingList

ה-API הזה משמש לפרסום אובייקט FoodShoppingList.

Kotlin


client.publishFoodShoppingList(
            PublishFoodShoppingListRequest.Builder()
                .setFoodShoppingList(
                    FoodShoppingListEntity.Builder()
                        ...
                        .build())
                .build())

Java


client.publishFoodShoppingList(
            new PublishFoodShoppingListRequest.Builder()
                .setFoodShoppingList(
                    new FoodShoppingListEntity.Builder()
                        ...
                        .build())
                .build());

כשהשירות מקבל את הבקשה, הפעולות הבאות מתרחשות בתוך עסקה אחת:

  • הנתונים הקיימים של FoodShoppingList מהשותף למפתחים יוסרו.
  • הנתונים מהבקשה מנותחים ונשמרים ברשימת הקניות המעודכנת אשכול.

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

publishShoppingReorderCluster

ה-API הזה משמש לפרסום אובייקט ShoppingReorderCluster.

Kotlin


client.publishShoppingReorderCluster(
            PublishShoppingReorderClusterRequest.Builder()
                .setReorderCluster(
                    ShoppingReorderCluster.Builder()
                        ...
                        .build())
                .build())

Java


client.publishShoppingReorderCluster(
            new PublishShoppingReorderClusterRequest.Builder()
                .setReorderCluster(
                    new ShoppingReorderCluster.Builder()
                        ...
                        .build())
                .build());

כשהשירות מקבל את הבקשה, הפעולות הבאות מתרחשות בתוך עסקה אחת:

  • הנתונים הקיימים של ShoppingReorderCluster מהשותף למפתחים יוסרו.
  • הנתונים מהבקשה מנותחים ונשמרים באשכול המעודכן לשינוי הסדר.

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

publishShoppingOrderTrackingCluster

ה-API הזה משמש לפרסום אובייקט ShoppingOrderTrackingCluster.

Kotlin


client.publishShoppingOrderTrackingCluster(
            PublishShoppingOrderTrackingClusterRequest.Builder()
                .setShoppingOrderTrackingCluster(
                    ShoppingOrderTrackingCluster.Builder()
                        ...
                        .build())
                .build())

Java


client.publishShoppingOrderTrackingCluster(
            new PublishShoppingOrderTrackingClusterRequest.Builder()
                .setShoppingOrderTrackingCluster(
                    new ShoppingOrderTrackingCluster.Builder()
                        ...
                        .build())
                .build());

כשהשירות מקבל את הבקשה, הפעולות הבאות מתרחשות בתוך עסקה אחת:

  • הנתונים הקיימים של ShoppingOrderTrackingCluster מהשותף למפתחים הם הוסר.
  • הנתונים מהבקשה מנותחים ונשמרים בהזמנה המעודכנת לשופינג אשכול מעקב.

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

publishUserAccountManagementRequest

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

המטא-נתונים הבאים הם חלק מכרטיס הכניסה –

מאפיין דרישה תיאור
URI של פעולה חובה קישור עומק לפעולה (כלומר מעבר לדף הכניסה לאפליקציה)
תמונה אופציונלי – אם לא מציינים כותרת, יש להזין כותרת

תמונה שמוצגת בכרטיס

תמונות ביחס גובה-רוחב של 16x9 עם רזולוציה של 1264x712

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

Kotlin


var SIGN_IN_CARD_ENTITY =
      SignInCardEntity.Builder()
          .addPosterImage(
              Image.Builder()
                  .setImageUri(Uri.parse("http://www.x.com/image.png"))
                  .setImageHeightInPixel(500)
                  .setImageWidthInPixel(500)
                  .build())
          .setActionText("Sign In")
          .setActionUri(Uri.parse("http://xx.com/signin"))
          .build()

client.publishUserAccountManagementRequest(
            PublishUserAccountManagementRequest.Builder()
                .setSignInCardEntity(SIGN_IN_CARD_ENTITY)
                .build());

Java


SignInCardEntity SIGN_IN_CARD_ENTITY =
      new SignInCardEntity.Builder()
          .addPosterImage(
              new Image.Builder()
                  .setImageUri(Uri.parse("http://www.x.com/image.png"))
                  .setImageHeightInPixel(500)
                  .setImageWidthInPixel(500)
                  .build())
          .setActionText("Sign In")
          .setActionUri(Uri.parse("http://xx.com/signin"))
          .build();

client.publishUserAccountManagementRequest(
            new PublishUserAccountManagementRequest.Builder()
                .setSignInCardEntity(SIGN_IN_CARD_ENTITY)
                .build());

כשהשירות מקבל את הבקשה, הפעולות הבאות מתרחשות בתוך עסקה אחת:

  • הנתונים הקיימים של UserAccountManagementCluster מהשותף למפתחים הם הוסר.
  • הנתונים מהבקשה מנותחים ונשמרים אשכול אשכול UserAccountManagement.

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

updatePublishStatus

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

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

רשימת קודי הסטטוסים הכשירים לפרסום היא :

// Content is published
AppEngagePublishStatusCode.PUBLISHED,

// Content is not published as user is not signed in
AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN,

// Content is not published as user is not subscribed
AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SUBSCRIPTION,

// Content is not published as user location is ineligible
AppEngagePublishStatusCode.NOT_PUBLISHED_INELIGIBLE_LOCATION,

// Content is not published as there is no eligible content
AppEngagePublishStatusCode.NOT_PUBLISHED_NO_ELIGIBLE_CONTENT,

// Content is not published as the feature is disabled by the client
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_FEATURE_DISABLED_BY_CLIENT,

// Content is not published as the feature due to a client error
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_CLIENT_ERROR,

// Content is not published as the feature due to a service error
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_SERVICE_ERROR,

// Content is not published due to some other reason
// Reach out to engage-developers@ before using this enum.
AppEngagePublishStatusCode.NOT_PUBLISHED_OTHER

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

Kotlin


client.updatePublishStatus(
   PublishStatusRequest.Builder()
     .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN)
     .build())

Java


client.updatePublishStatus(
    new PublishStatusRequest.Builder()
        .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN)
        .build());

deleteRecommendationClusters

ה-API הזה משמש למחיקת התוכן של אשכולות המלצות.

Kotlin


client.deleteRecommendationClusters()

Java


client.deleteRecommendationClusters();

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

deleteFeaturedCluster

ה-API הזה משמש למחיקת התוכן של אשכול מומלץ.

Kotlin


client.deleteFeaturedCluster()

Java


client.deleteFeaturedCluster();

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

deleteShoppingCartCluster

ה-API הזה משמש למחיקת התוכן של אשכול עגלות הקניות.

Kotlin


client.deleteShoppingCartCluster()

Java


client.deleteShoppingCartCluster();

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

deleteShoppingListCluster

ה-API הזה משמש למחיקת התוכן של אשכול רשימת הקניות.

Kotlin


client.deleteShoppingListCluster()

Java


client.deleteShoppingListCluster();

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

deleteShoppingReorderCluster

ה-API הזה משמש למחיקת התוכן של אשכול סידור מחדש של שופינג.

Kotlin


client.deleteShoppingReorderCluster()

Java


client.deleteShoppingReorderCluster();

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

deleteShoppingOrderTrackingCluster

ה-API הזה משמש למחיקת התוכן של אשכול המעקב אחר הזמנות בשופינג.

Kotlin


client.deleteShoppingOrderTrackingCluster()

Java


client.deleteShoppingOrderTrackingCluster();

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

deleteUserManagementCluster

ה-API הזה משמש למחיקת התוכן של אשכול UserAccountManagement.

Kotlin


client.deleteUserManagementCluster()

Java


client.deleteUserManagementCluster();

כשהשירות מקבל את הבקשה, הוא מסיר את הנתונים הקיימים אשכול UserAccountManagement. במקרה של שגיאה, הבקשה כולה נדחה והמצב הקיים נשמר.

deleteClusters

ה-API הזה משמש למחיקת התוכן של סוג אשכול נתון.

Kotlin


client.deleteClusters(
    DeleteClustersRequest.Builder()
      .addClusterType(ClusterType.TYPE_FEATURED)
      .addClusterType(ClusterType.TYPE_RECOMMENDATION)
      ...
      .build())

Java


client.deleteClusters(
            new DeleteClustersRequest.Builder()
                .addClusterType(ClusterType.TYPE_FEATURED)
                .addClusterType(ClusterType.TYPE_RECOMMENDATION)
                ...
                .build());

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

טיפול בשגיאות

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

Kotlin


client.publishRecommendationClusters(
        PublishRecommendationClustersRequest.Builder()
          .addRecommendationCluster(..)
          .build())
      .addOnCompleteListener { task ->
        if (task.isSuccessful) {
          // do something
        } else {
          val exception = task.exception
          if (exception is AppEngageException) {
            @AppEngageErrorCode val errorCode = exception.errorCode
            if (errorCode == AppEngageErrorCode.SERVICE_NOT_FOUND) {
              // do something
            }
          }
        }
      }

Java


client.publishRecommendationClusters(
              new PublishRecommendationClustersRequest.Builder()
                  .addRecommendationCluster(...)
                  .build())
          .addOnCompleteListener(
              task -> {
                if (task.isSuccessful()) {
                  // do something
                } else {
                  Exception exception = task.getException();
                  if (exception instanceof AppEngageException) {
                    @AppEngageErrorCode
                    int errorCode = ((AppEngageException) exception).getErrorCode();
                    if (errorCode == AppEngageErrorCode.SERVICE_NOT_FOUND) {
                      // do something
                    }
                  }
                }
              });

השגיאה מוחזרת בתור AppEngageException עם הסיבה קוד שגיאה.

קוד שגיאה הערה
SERVICE_NOT_FOUND השירות לא זמין במכשיר הנתון.
SERVICE_NOT_AVAILABLE השירות זמין במכשיר הנתון, אבל הוא לא זמין בזמן השיחה (לדוגמה, האפשרות מושבתת באופן מפורש).
SERVICE_CALL_EXECUTION_FAILURE ביצוע המשימה נכשל עקב בעיות בשרשור. במקרה הזה, יכול להיות ניסיון חוזר.
SERVICE_CALL_PERMISSION_DENIED המתקשר לא מורשה לבצע את שיחת השירות.
SERVICE_CALL_INVALID_ARGUMENT הבקשה מכילה נתונים לא חוקיים (לדוגמה, יותר מהמותר מספר האשכולות).
SERVICE_CALL_INTERNAL יש שגיאה בצד השירות.
SERVICE_CALL_RESOURCE_EXHAUSTED הקריאה לשירות מתבצעת לעיתים קרובות מדי.

שלב 3: טיפול בכוונות שידור

בנוסף לביצוע קריאות לפרסום Content API באמצעות משימה, מדובר גם נדרשות כדי להגדיר BroadcastReceiver כדי לקבל את הבקשה לפרסום תוכן.

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

צריך להגדיר את BroadcastReceiver בשתי הדרכים הבאות:

  • רישום באופן דינמי של מופע של המחלקה BroadcastReceiver באמצעות Context.registerReceiver(). כך מתאפשרת תקשורת מאפליקציות שעדיין קיימים בזיכרון.

Kotlin

class AppEngageBroadcastReceiver : BroadcastReceiver(){
  // Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION
  // broadcast is received
  // Trigger featured cluster publish when PUBLISH_FEATURED broadcast is
  // received
  // Trigger shopping cart cluster publish when PUBLISH_SHOPPING_CART broadcast
  // is received
  // Trigger shopping list cluster publish when PUBLISH_SHOPPING_LIST broadcast
  // is received
  // Trigger reorder cluster publish when PUBLISH_REORDER_CLUSTER broadcast is
  // received
  // Trigger shopping order tracking cluster publish when
  // PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER broadcast is received
}

fun registerBroadcastReceivers(context: Context){
  var  context = context
  context = context.applicationContext

// Register Recommendation Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_RECOMMENDATION))

// Register Featured Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_FEATURED))

// Register Shopping Cart Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_CART))

// Register Shopping List Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_LIST))

// Register Reorder Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_REORDER_CLUSTER))

// Register Shopping Order Tracking Cluster Publish Intent
  context.registerReceiver(AppEngageBroadcastReceiver(),
                           IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER))
}

Java

class AppEngageBroadcastReceiver extends BroadcastReceiver {
// Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION broadcast
// is received

// Trigger featured cluster publish when PUBLISH_FEATURED broadcast is received

// Trigger shopping cart cluster publish when PUBLISH_SHOPPING_CART broadcast is
// received

// Trigger shopping list cluster publish when PUBLISH_SHOPPING_LIST broadcast is
// received

// Trigger reorder cluster publish when PUBLISH_REORDER_CLUSTER broadcast is
// received

// Trigger reorder cluster publish when PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER
// broadcast is received
}

public static void registerBroadcastReceivers(Context context) {

context = context.getApplicationContext();

// Register Recommendation Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_RECOMMENDATION));

// Register Featured Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_FEATURED));

// Register Shopping Cart Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_SHOPPING_CART));

// Register Shopping List Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_SHOPPING_LIST));

// Register Reorder Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_REORDER_CLUSTER));

// Register Shopping Order Tracking Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER));

}
  • הצהרה סטטית על יישום עם התג <receiver> ב- קובץ AndroidManifest.xml. ההרשאה הזו מאפשרת לאפליקציה לקבל שידור את ה-Intent כאשר הוא לא פועל, וגם מאפשרת לאפליקציה לפרסם את התוכן.
<application>
   <receiver
      android:name=".AppEngageBroadcastReceiver"
      android:exported="true"
      android:enabled="true">
      <intent-filter>
         <action android:name="com.google.android.engage.action.PUBLISH_RECOMMENDATION" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.PUBLISH_FEATURED" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.shopping.PUBLISH_SHOPPING_CART" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.shopping.PUBLISH_SHOPPING_LIST" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.shopping.PUBLISH_REORDER_CLUSTER" />
      </intent-filter>
      <intent-filter>
         <action android:name="com.google.android.engage.action.shopping.PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER" />
      </intent-filter>
   </receiver>
</application>

הכוונות הבאות נשלחות על ידי service:

  • com.google.android.engage.action.PUBLISH_RECOMMENDATION מומלץ להתחיל שיחת publishRecommendationClusters את כוונת המשתמש.
  • com.google.android.engage.action.PUBLISH_FEATURED מומלץ להתחיל קריאת publishFeaturedCluster כאשר הכוונה הזו היא התקבלו.
  • com.google.android.engage.action.shopping.PUBLISH_SHOPPING_CART מומלץ להתחיל קריאת publishShoppingCart כאשר הכוונה הזו היא התקבלו.
  • com.google.android.engage.action.shopping.PUBLISH_SHOPPING_LIST מומלץ להתחיל קריאת publishShoppingList כאשר הכוונה הזו היא התקבלו.
  • com.google.android.engage.action.shopping.PUBLISH_REORDER_CLUSTER מומלץ להתחיל קריאת publishReorderCluster כאשר הכוונה הזו היא התקבלו.
  • com.google.android.engage.action.shopping.PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER מומלץ להתחיל שיחת publishShoppingOrderTrackingCluster כאשר הכוונה הזו התקבלה.

תהליך עבודה של שילוב

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

שאלות נפוצות

ניתן לעיין בשאלות נפוצות בנושא Engage SDK בנושא שאלות נפוצות.

יצירת קשר

פרטים ליצירת קשר engagement-developers@google.com, אם יש בזמן תהליך ההטמעה. הצוות שלנו ישיב בהקדם ככל האפשר.

השלבים הבאים

לאחר השלמת השילוב, השלבים הבאים הם:

  • שליחת אימייל אל engagement-developers@google.com וצירוף המסמך את ה-APK המשולב שמוכן לבדיקה על ידי Google.
  • Google מבצעת אימות ובדיקות פנימיות כדי לוודא פועל כמצופה. אם יהיה צורך בשינויים, Google תיצור איתך קשר את כל הפרטים הנדרשים.
  • כשהבדיקה תסתיים ואין צורך בשינויים, Google תיצור איתך קשר כדי תודיע לך שאתה יכול להתחיל לפרסם את ה-APK המעודכן והמשולב חנות Play.
  • לאחר ש-Google אישרה שה-APK המעודכן פורסם חנות Play, המלצה, מוצגת, עגלת קניות, רשימת קניות, סידור מחדש של אשכול ואשכול מעקב אחר הזמנות בשופינג ייתכן שאשכולות יפורסמו ויהיו גלויים למשתמשים.