Google מפתחת ממשק במכשיר שמארגן את האפליקציות של המשתמשים לפי קטגוריות, ומאפשר חוויה חדשה וסוחפת של צריכת תוכן באפליקציות וגילוי אפליקציות. חוויית המסך המלא הזו מאפשרת לשותפים מפתחים להציג את התוכן העשיר הטוב ביותר שלהם בערוץ ייעודי מחוץ לאפליקציה שלהם.במדריך הזה מפורטות הוראות לשותפים מפתחים לשילוב תוכן היכרויות באמצעות Engage SDK כדי לאכלס את האזור החדש הזה.
פרטי השילוב
הסברים על המונחים
השילוב הזה כולל את שלושת סוגי האשכולות הבאים: המלצה, מומלצים והמשך.
באשכולות ההמלצות מוצגות הצעות מותאמות אישית להיכרויות ממפתח שותף ספציפי. ההמלצות האלה יכולות להיות מותאמות אישית למשתמש.
- אשכול המלצות יכול לכלול
ArticleEntity, PersonEntityאוEventEntity, אבל לא שילוב של סוגי ישויות שונים.
ההמלצות שלכם בנויות באופן הבא:
אוסף המלצות: תצוגה בממשק המשתמש שמכילה קבוצה של המלצות מאותו שותף מפתח.
ישות: אובייקט שמייצג פריט יחיד באשכול. השילוב הזה מציע כמה ישויות שיוצגו באמצעות המלצות לאשכול:
ArticleEntity: ArticleEntity מייצג המלצה לתוכן מבוסס-טקסט שקשור להיכרויות. פריט ArticleEntity מאפשר למפתחים לספק מגוון של תוכן טקסט ותמונות עם יותר מטא-נתונים כדי להעביר את המידע למשתמשים.
איור 1: ממשק משתמש שבו מוצג ArticleEntity יחיד באשכול Recommendations. PersonEntity: מייצג אדם. ההמלצות יכולות להיות להדגיש אדם מסוים מבין האנשים הפוטנציאליים לדייטים.
איור 2: ממשק משתמש שבו מוצג PersonEntity יחיד באשכול Recommendations. EventEntity: EventEntity מייצג אירוע שיתרחש בעתיד. שעת ההתחלה של האירוע היא מידע חשוב שצריך להעביר למשתמשים.
איור 3: ממשק משתמש שבו מוצג EventEntity יחיד באשכול ההמלצות.
- אשכול המלצות יכול לכלול
באוסף ההמשכים מוצג תוכן שמשתמשים הביעו בו עניין לאחרונה מכמה שותפי פיתוח בקבוצה אחת בממשק המשתמש. כל שותף מפתח יוכל לשדר עד 10 ישויות באשכול Continuation.
התוכן של ההמשך יכול להיות במבנה הבא:
ArticleEntity: ArticleEntity מייצג המלצה לתוכן מבוסס-טקסט שקשור להיכרויות. אפשר להשתמש בישות הזו כדי לייצג כתבות חדשותיות לא גמורות או תוכן אחר שהמשתמש רוצה להמשיך לצרוך מהמקום שבו הוא הפסיק.
איור 6. ממשק משתמש שבו מוצג ArticleEntity יחיד בתוך אשכול Continuation. EventReservationEntity: EventReservationEntity מייצג הזמנה לאירוע ועוזר למשתמשים לעקוב אחרי הזמנות לאירועים קרובים או לאירועים שמתקיימים כרגע של מפגשים או היכרויות.
איור 8. ממשק משתמש שמוצג בו EventReservationEntity יחיד באשכול Continuation.
אוסף המוצרים המומלצים הוא תצוגה בממשק המשתמש שמציגה את המוצר המרכזי שנבחר מתוך הרבה שותפים מפתחים בקבוצה אחת בממשק המשתמש.
GenericFeaturedEntityיש אשכול אחד של המלצות נבחרות, שמוצג בחלק העליון של ממשק המשתמש, עם מיקום עדיף על פני כל אשכולות ההמלצות. כל שותף מפתח יכול לשדר ישות אחת מסוג נתמך בקטע 'מומלצות', עם הרבה ישויות (יכול להיות מסוגים שונים) מכמה מפתחי אפליקציות באשכול 'מומלצות'.GenericFeaturedEntity: השדה GenericFeaturedEntity שונה מהשדה Recommendation item בכך שהשדה Featured item צריך לשמש לתוכן מוביל יחיד ממפתחים, והוא צריך לייצג את התוכן החשוב ביותר שיהיה מעניין ורלוונטי למשתמשים.
איור 12: ממשק משתמש שבו מוצג FeaturedCluster עם רשימה של GenericFeaturedEntity
עבודה מקדימה
רמת ה-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.12'
}
סיכום
העיצוב מבוסס על הטמעה של שירות מאוגד.
הנתונים שלקוח יכול לפרסם כפופים למגבלות הבאות עבור סוגים שונים של אשכולות:
| סוג האשכול | מגבלות על אשכולות | מגבלות מינימליות על ישויות באשכול | מגבלות מקסימליות של ישויות באשכול |
|---|---|---|---|
| אשכולות של המלצות | עד 5 | 5 לפחות | עד 25 (ArticleEntity, PersonEntity או EventEntity) |
| אשכול המשכיות | עד 1 | לפחות 1 | עד 10 (ArticleEntity או EventReservationEntity) |
| אשכול מוצג | עד 1 | לפחות 1 | עד 10 (GenericFeaturedEntity) |
שלב 1: הזנת נתוני הישות
ב-SDK מוגדרות ישויות שונות שמייצגות כל סוג פריט. אנחנו תומכים בישויות הבאות בקטגוריה 'היכרויות':
GenericFeaturedEntityArticleEntityPersonEntityEventEntityEventReservationEntity
בטבלאות הבאות מפורטים המאפיינים הזמינים והדרישות לכל סוג.
GenericFeaturedEntity
| מאפיין | דרישה | תיאור | פורמט |
|---|---|---|---|
| URI של פעולה | חובה |
קישור עומק לישות באפליקציה לבעלי מקצוע. הערה: אפשר להשתמש בקישורי עומק לשיוך (Attribution). אפשר לעיין בשאלות הנפוצות |
URI |
| תמונות פוסטר | חובה | אם תספקו כמה תמונות, נציג רק אחת מהן. יחס הגובה-רוחב המומלץ הוא 16:9 הערה: אם מספקים תג, צריך לוודא שיש שטח בטוח של 24 נקודות dps בחלק העליון והתחתון של התמונה. |
הנחיות זמינות במאמר בנושא מפרט לתמונות. |
| שם | אופציונלי | השם של הישות. | טקסט חופשי גודל מומלץ של הטקסט: 50 תווים |
| תיאור | אופציונלי | פסקה אחת של טקסט שמתארת את הישות. הערה: למשתמש תוצג רשימת התיאורים או רשימת הכתוביות, אבל לא שתיהן. |
טקסט חופשי גודל מומלץ של טקסט: 180 תווים |
| רשימת כתוביות | אופציונלי | עד 3 כתוביות, כאשר כל כתובית היא שורה אחת של טקסט. הערה: למשתמש תוצג רשימת התיאורים או רשימת הכתוביות, אבל לא שתיהן. |
טקסט חופשי גודל הטקסט המומלץ לכל כותרת משנה: עד 50 תווים |
| תגים | אופציונלי | כל תג יכול להיות טקסט חופשי (עד 15 תווים) או תמונה קטנה. טיפול מיוחד בחוויית המשתמש מעל תמונה או סרטון, למשל כשכבת-על של תג על התמונה
|
|
| תג – טקסט | אופציונלי | השם של התג הערה: חובה להוסיף טקסט או תמונה לתג |
טקסט חופשי גודל טקסט מומלץ: עד 15 תווים |
| תג – תמונה | אופציונלי | תמונה קטנה טיפול מיוחד בחוויית המשתמש, למשל הצגת תג כשכבת-על בתמונה הממוזערת של התמונה או הסרטון. הערה: חובה להוסיף טקסט או תמונה לתג |
הנחיות זמינות במאמר בנושא מפרט לתמונות. |
| קטגוריות תוכן | אופציונלי | תיאור הקטגוריה של התוכן בישות. | רשימת Enums אפשר לקבל הנחיות נוספות בקטע בנושא קטגוריית תוכן. |
ArticleEntity
| מאפיין | דרישה | תיאור | פורמט |
|---|---|---|---|
| URI של פעולה | חובה |
קישור עומק לישות באפליקציה לבעלי מקצוע. הערה: אפשר להשתמש בקישורי עומק לשיוך (Attribution). אפשר לעיין בשאלות הנפוצות |
URI |
| שם | חובה | השם של הישות. | טקסט חופשי גודל הטקסט המומלץ: 50 תווים לכל היותר |
| תמונות פוסטר | אופציונלי | אם תספקו כמה תמונות, נציג רק אחת מהן. יחס הגובה-רוחב המומלץ הוא 16:9 הערה: מומלץ מאוד להוסיף תמונה. אם מספקים תג, צריך לוודא שיש מרווח בטוח של 24 נקודות לשנייה בחלק העליון ובחלק התחתון של התמונה. |
הנחיות זמינות במאמר בנושא מפרט לתמונות. |
| מקור – שם | אופציונלי | השם של המחבר, הארגון או הכתב | טקסט חופשי גודל מומלץ של הטקסט: פחות מ-25 תווים |
| מקור – תמונה | אופציונלי | תמונה של המקור, למשל המחבר, הארגון או הכתב | הנחיות זמינות במאמר בנושא מפרט לתמונות. |
| תיאור | אופציונלי | פסקה אחת של טקסט שמתארת את הישות. הערה: למשתמש תוצג רשימת התיאורים או רשימת הכתוביות, אבל לא שתיהן. |
טקסט חופשי גודל מומלץ של טקסט: 180 תווים |
| רשימת כתוביות | אופציונלי | עד 3 כתוביות, כאשר כל כתובית היא שורה אחת של טקסט. הערה: למשתמש תוצג רשימת התיאורים או רשימת הכתוביות, אבל לא שתיהן. |
טקסט חופשי גודל הטקסט המומלץ לכל כותרת משנה: עד 50 תווים |
| תגים | אופציונלי | כל תג יכול להיות טקסט חופשי (עד 15 תווים) או תמונה קטנה. טיפול מיוחד בחוויית המשתמש מעל תמונה או סרטון, למשל כשכבת-על של תג על התמונה
|
|
| תג – טקסט | אופציונלי | השם של התג הערה: חובה להוסיף טקסט או תמונה לתג |
טקסט חופשי גודל טקסט מומלץ: עד 15 תווים |
| תג – תמונה | אופציונלי | תמונה קטנה טיפול מיוחד בחוויית המשתמש, למשל הצגת תג כשכבת-על בתמונה הממוזערת של התמונה או הסרטון. הערה: חובה להוסיף טקסט או תמונה לתג |
הנחיות זמינות במאמר בנושא מפרט לתמונות. |
| מועד פרסום התוכן | אופציונלי | חותמת הזמן של התקופה (epoch) באלפיות השנייה שבה התוכן פורסם או עודכן באפליקציה. | חותמת זמן של תקופת זמן המערכת באלפיות השנייה |
| מועד האינטראקציה האחרונה | חובה מותנית | חותמת הזמן של התקופה (epoch) באלפיות השנייה שבה המשתמש קיים אינטראקציה עם הישות הזו בפעם האחרונה. הערה: השדה הזה הוא חובה אם הישות הזו היא חלק מאשכול ההמשך. |
חותמת זמן של תקופת זמן המערכת באלפיות השנייה |
| אחוז התקדמות | חובה מותנית | אחוז התוכן המלא שהמשתמש צרך עד היום. הערה: השדה הזה הוא חובה אם הישות הזו היא חלק מאשכול ההמשך. |
ערך מסוג int בין 0 ל-100, כולל. |
| קטגוריות תוכן | אופציונלי | תיאור הקטגוריה של התוכן בישות. | רשימת Enums אפשר לקבל הנחיות נוספות בקטע בנושא קטגוריית תוכן. |
PersonEntity
| מאפיין | דרישה | תיאור | פורמט |
|---|---|---|---|
| URI של פעולה | חובה |
קישור עומק לישות באפליקציה לבעלי מקצוע. הערה: אפשר להשתמש בקישורי עומק לשיוך (Attribution). אפשר לעיין בשאלות הנפוצות |
URI |
| פרופיל – שם | חובה | שם הפרופיל, המזהה או הכינוי, למשל 'John Doe', '@TeamPixel' וכו'. | מחרוזת גודל הטקסט המומלץ: 50 תווים לכל היותר |
| פרופיל – דמות | חובה |
תמונת פרופיל או תמונת דמות של המשתמש. הערה: התמונה חייבת להיות ריבועית (1:1). |
הנחיות זמינות במאמר בנושא מפרט לתמונות. |
| פרופיל – טקסט נוסף | אופציונלי | טקסט חופשי כמו שם המשתמש בפרופיל. | טקסט חופשי גודל טקסט מומלץ: עד 15 תווים |
| פרופיל – תמונה נוספת | אופציונלי | תמונה קטנה כמו תג אימות. | הנחיות זמינות במאמר בנושא מפרט לתמונות. |
| תמונת כותרת | אופציונלי |
מייצג את תמונת הכותרת. התמונה צריכה להיות שונה מתמונת הפרופיל. אפשר להשתמש בזה אם יש תמונה נוספת שיכולה לעזור להדגיש את האדם, למשל תמונה של העבודה שלו. הערה: התמונה צריכה להיות ביחס של 16:9. אם מספקים תג, צריך לוודא שיש מרווח בטוח של 24 נקודות לשנייה בחלק העליון ובחלק התחתון של התמונה |
הנחיות זמינות במאמר בנושא מפרט לתמונות. |
| פופולריות – מספר | אופציונלי |
מציינים את מספר העוקבים או את ערך הפופולריות, למשל - "3.7 M.". הערה: אם תציינו ערכים גם במאפיין מספר הפריטים וגם במאפיין ערך מספר הפריטים, המערכת תשתמש בערך של מאפיין מספר הפריטים. |
מחרוזת גודל טקסט מומלץ: עד 20 תווים לספירה + תווית ביחד |
| פופולריות – ערך ספירה | אופציונלי | מספר העוקבים או ערך הפופולריות. הערה: צריך לספק ערך של Count אם האפליקציה לא רוצה לטפל בלוגיקה של אופטימיזציה של מספר גדול עבור גדלי תצוגה שונים. אם מספקים גם את הערך של המאפיין 'מספר' וגם את הערך של המאפיין 'ערך המספר', הערך של המאפיין 'מספר' מוצג למשתמשים. |
ארוך |
| פופולריות – תווית | אופציונלי | מציינים מהי תווית הפופולריות. לדוגמה: 'לייקים'. | מחרוזת גודל טקסט מומלץ: עד 20 תווים לספירה + תווית ביחד |
| פופולריות – ויזואלית | אופציונלי |
מציינים מה מטרת האינטראקציה. לדוגמה – תמונה שבה מוצגים סמל הלייק ואמוג'י. אפשר לספק יותר מתמונה אחת, אבל יכול להיות שלא כל התמונות יוצגו בכל גורמי הצורה. הערה: התמונה צריכה להיות מרובעת (1:1) |
הנחיות זמינות במאמר בנושא מפרט לתמונות. |
| דירוג – ערך מקסימלי | חובה | הערך המקסימלי בסולם הדירוג. חובה לציין את המאפיין הזה אם מציינים גם את הערך הנוכחי של הדירוג. |
מספר >= 0.0 |
| דירוג – ערך נוכחי | חובה | הערך הנוכחי של סולם הדירוג. חובה לציין את המאפיין הזה אם מציינים גם את הערך המקסימלי של הדירוג. |
מספר >= 0.0 |
| דירוג – ספירה | אופציונלי | מספר הדירוגים של הישות. הערה: צריך לספק את השדה הזה אם רוצים שהאפליקציה תשלוט באופן שבו המידע מוצג למשתמשים. צריך לציין את המחרוזת התמציתית שתוצג למשתמש. לדוגמה, אם המספר הוא 1,000,000, כדאי להשתמש בקיצורים כמו 1M, כדי שהמספר לא ייחתך בגדלי מסך קטנים יותר. |
מחרוזת |
| דירוג – ערך הספירה | אופציונלי | מספר הדירוגים של הישות. הערה: צריך לספק את השדה הזה אם לא רוצים לטפל בעצמכם בלוגיקה של קיצור התצוגה. אם מופיעים גם Count וגם Count Value, נשתמש ב-Count כדי להציג למשתמשים |
ארוך |
| מיקום – מדינה | אופציונלי | המדינה שבה האדם נמצא או משרת. | טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| מיקום – עיר | אופציונלי | העיר שבה האדם נמצא או נותן שירות. | טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| מיקום – כתובת להצגה | אופציונלי | הכתובת שבה האדם נמצא או משרת תוצג למשתמש. | טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| מיקום – כתובת | אופציונלי | כתובת הרחוב (אם רלוונטי) שבה האדם נמצא או מספק שירות. | טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| מיקום – מדינה | אופציונלי | המדינה בארה"ב (אם רלוונטי) שבה האדם נמצא או משרת. | טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| מיקום – מיקוד | אופציונלי | המיקוד (אם רלוונטי) שבו האדם נמצא או משרת. | טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| מיקום – שכונה | אופציונלי | השכונה (אם רלוונטי) שבה האדם נמצא או מספק שירות. | טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| תגים | אופציונלי |
כל תג יכול להיות טקסט חופשי (עד 15 תווים) או תמונה קטנה. |
|
| תג – טקסט | אופציונלי | השם של התג הערה: חובה להוסיף טקסט או תמונה לתג |
טקסט חופשי גודל טקסט מומלץ: עד 15 תווים |
| תג – תמונה | אופציונלי | תמונה קטנה טיפול מיוחד בחוויית המשתמש, למשל הצגת תג כשכבת-על בתמונה הממוזערת של התמונה או הסרטון. הערה: חובה להוסיף טקסט או תמונה לתג |
הנחיות זמינות במאמר בנושא מפרט לתמונות. |
| תיאור | אופציונלי | פסקה אחת של טקסט שמתארת את הישות. הערה: למשתמש תוצג רשימת התיאורים או רשימת הכתוביות, אבל לא שתיהן. |
טקסט חופשי גודל מומלץ של טקסט: 180 תווים |
| רשימת כתוביות | אופציונלי | עד 3 כתוביות, כאשר כל כתובית היא שורה אחת של טקסט. הערה: למשתמש תוצג רשימת התיאורים או רשימת הכתוביות, אבל לא שתיהן. |
טקסט חופשי גודל הטקסט המומלץ לכל כותרת משנה: עד 50 תווים |
| קטגוריות תוכן | אופציונלי | תיאור הקטגוריה של התוכן בישות. | רשימה של טיפוסים בני מנייה שעומדים בדרישות
אפשר לקבל הנחיות נוספות בקטע בנושא קטגוריית תוכן. |
EventEntity
| מאפיין | דרישה | תיאור | פורמט |
|---|---|---|---|
| URI של פעולה | חובה |
קישור עומק לישות באפליקציה לבעלי מקצוע. הערה: אפשר להשתמש בקישורי עומק לשיוך (Attribution). אפשר לעיין בשאלות הנפוצות |
URI |
| שם | חובה | השם של הישות. | מחרוזת גודל הטקסט המומלץ: 50 תווים לכל היותר |
| שעת התחלה | חובה |
חותמת הזמן של תקופת ה-Epoch שבה האירוע צפוי להתחיל. הערה: הערך הזה יוצג באלפיות השנייה. |
חותמת זמן של תקופת זמן המערכת באלפיות השנייה |
| מצב אירוע | חובה | שדה שמציין אם האירוע יהיה וירטואלי, פרונטלי או גם וירטואלי וגם פרונטלי. |
ערכים אפשריים: VIRTUAL, IN_PERSON או HYBRID |
| תמונות פוסטר | חובה | אם תספקו כמה תמונות, נציג רק אחת מהן. יחס הגובה-רוחב המומלץ הוא 16:9 הערה: מומלץ מאוד להוסיף תמונה. אם מספקים תג, צריך לוודא שיש מרווח בטוח של 24 נקודות לשנייה בחלק העליון ובחלק התחתון של התמונה. |
הנחיות זמינות במאמר בנושא מפרט לתמונות. |
| מיקום – מדינה | חובה מותנית | המדינה שבה מתקיים האירוע. הערה: חובה להשתמש בפרמטר הזה לאירועים מסוג IN_PERSON או HYBRID |
טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| מיקום – עיר | חובה מותנית | העיר שבה מתקיים האירוע. הערה: חובה להשתמש בפרמטר הזה לאירועים מסוג IN_PERSON או HYBRID |
טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| מיקום – כתובת להצגה | חובה מותנית | הכתובת או שם המקום שבו האירוע יתקיים, שיוצגו למשתמש. הערה: חובה להשתמש בפרמטר הזה לאירועים מסוג IN_PERSON או HYBRID |
טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| מיקום – כתובת | אופציונלי | כתובת הרחוב (אם רלוונטי) של המיקום שבו מתקיים האירוע. | טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| מיקום – מדינה | אופציונלי | המדינה או המחוז (אם רלוונטי) שבהם האירוע מתקיים. | טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| מיקום – מיקוד | אופציונלי | המיקוד (אם רלוונטי) של המיקום שבו מתקיים האירוע. | טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| מיקום – שכונה | אופציונלי | השכונה (אם רלוונטי) שבה מתקיים האירוע. | טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| שעת סיום | אופציונלי |
חותמת הזמן של מערכת Unix שבה האירוע צפוי להסתיים. הערה: הערך הזה יוצג באלפיות השנייה. |
חותמת זמן של תקופת זמן המערכת באלפיות השנייה |
| תיאור | אופציונלי | פסקה אחת של טקסט שמתארת את הישות. הערה: למשתמש תוצג רשימת התיאורים או רשימת הכתוביות, אבל לא שתיהן. |
טקסט חופשי גודל מומלץ של טקסט: 180 תווים |
| רשימת כתוביות | אופציונלי | עד 3 כתוביות, כאשר כל כתובית היא שורה אחת של טקסט. הערה: למשתמש תוצג רשימת התיאורים או רשימת הכתוביות, אבל לא שתיהן. |
טקסט חופשי גודל הטקסט המומלץ לכל כותרת משנה: עד 50 תווים |
| תגים | אופציונלי |
כל תג יכול להיות טקסט חופשי (עד 15 תווים) או תמונה קטנה. |
|
| תג – טקסט | אופציונלי | השם של התג הערה: חובה להוסיף טקסט או תמונה לתג |
טקסט חופשי גודל טקסט מומלץ: עד 15 תווים |
| תג – תמונה | אופציונלי | תמונה קטנה טיפול מיוחד בחוויית המשתמש, למשל הצגת תג כשכבת-על בתמונה הממוזערת של התמונה או הסרטון. הערה: חובה להוסיף טקסט או תמונה לתג |
הנחיות זמינות במאמר בנושא מפרט לתמונות. |
| מחיר – CurrentPrice | חובה להזין ערך בתנאים מסוימים |
המחיר הנוכחי של הכרטיס או הכרטיס העונתי לאירוע. חובה לציין את המחיר הקודם אם מציינים מחיר קודם מחוק. |
טקסט חופשי |
| מחיר – מחיר קודם מחוק | אופציונלי | המחיר המקורי של הכרטיס לאירוע. | טקסט חופשי |
| נכס יתרונות מרכזיים של מחיר | אופציונלי | הצגת מחיר מוזל כדי להבליט מבצע, אירוע או הנחה לחברי מועדון, אם יש כאלה. | טקסט חופשי גודל הטקסט המומלץ: פחות מ-45 תווים (טקסט ארוך מדי עשוי להציג שלוש נקודות) |
| קטגוריות תוכן | אופציונלי | תיאור הקטגוריה של התוכן בישות. | רשימה של טיפוסים בני מנייה שעומדים בדרישות
אפשר לקבל הנחיות נוספות בקטע בנושא קטגוריית תוכן. |
EventReservationEntity
| מאפיין | דרישה | תיאור | פורמט |
|---|---|---|---|
| URI של פעולה | חובה |
קישור עומק לישות באפליקציה לבעלי מקצוע. הערה: אפשר להשתמש בקישורי עומק לשיוך (Attribution). אפשר לעיין בשאלות הנפוצות |
URI |
| שם | חובה | השם של הישות. | מחרוזת גודל הטקסט המומלץ: 50 תווים לכל היותר |
| שעת התחלה | חובה |
חותמת הזמן של תקופת ה-Epoch שבה האירוע צפוי להתחיל. הערה: הערך הזה יוצג באלפיות השנייה. |
חותמת זמן של תקופת זמן המערכת באלפיות השנייה |
| מצב אירוע | חובה | שדה שמציין אם האירוע יהיה וירטואלי, פרונטלי או גם וירטואלי וגם פרונטלי. |
ערכים אפשריים: VIRTUAL, IN_PERSON או HYBRID |
| מיקום – מדינה | חובה מותנית | המדינה שבה מתקיים האירוע. הערה: חובה להשתמש בפרמטר הזה לאירועים מסוג IN_PERSON או HYBRID |
טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| מיקום – עיר | חובה מותנית | העיר שבה מתקיים האירוע. הערה: חובה להשתמש בפרמטר הזה לאירועים מסוג IN_PERSON או HYBRID |
טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| מיקום – כתובת להצגה | חובה מותנית | הכתובת או שם המקום שבו האירוע יתקיים, שיוצגו למשתמש. הערה: חובה להשתמש בפרמטר הזה לאירועים מסוג IN_PERSON או HYBRID |
טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| מיקום – כתובת | אופציונלי | כתובת הרחוב (אם רלוונטי) של המיקום שבו מתקיים האירוע. | טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| מיקום – מדינה | אופציונלי | המדינה או המחוז (אם רלוונטי) שבהם האירוע מתקיים. | טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| מיקום – מיקוד | אופציונלי | המיקוד (אם רלוונטי) של המיקום שבו מתקיים האירוע. | טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| מיקום – שכונה | אופציונלי | השכונה (אם רלוונטי) שבה מתקיים האירוע. | טקסט חופשי גודל מומלץ של הטקסט: עד 20 תווים |
| תמונות פוסטר | אופציונלי | אם תספקו כמה תמונות, נציג רק אחת מהן. יחס הגובה-רוחב המומלץ הוא 16:9 הערה: מומלץ מאוד להוסיף תמונה. אם מספקים תג, צריך לוודא שיש מרווח בטוח של 24 נקודות לשנייה בחלק העליון ובחלק התחתון של התמונה. |
הנחיות זמינות במאמר בנושא מפרט לתמונות. |
| שעת סיום | אופציונלי |
חותמת הזמן של מערכת Unix שבה האירוע צפוי להסתיים. הערה: הערך הזה יוצג באלפיות השנייה. |
חותמת זמן של תקופת זמן המערכת באלפיות השנייה |
| ספק שירות – שם | אופציונלי |
השם של ספק השירות. הערה: חובה להוסיף טקסט או תמונה לספק השירות. |
טקסט חופשי. לדוגמה, שם מארגן האירוע או הסיור |
| ספק שירות – תמונה | אופציונלי |
הלוגו או התמונה של ספק השירות. הערה: חובה להוסיף טקסט או תמונה לספק השירות. |
הנחיות זמינות במאמר בנושא מפרט לתמונות. |
| תיאור | אופציונלי | פסקה אחת של טקסט שמתארת את הישות. הערה: למשתמש תוצג רשימת התיאורים או רשימת הכתוביות, אבל לא שתיהן. |
טקסט חופשי גודל מומלץ של טקסט: 180 תווים |
| רשימת כתוביות | אופציונלי | עד 3 כתוביות, כאשר כל כתובית היא שורה אחת של טקסט. הערה: למשתמש תוצג רשימת התיאורים או רשימת הכתוביות, אבל לא שתיהן. |
טקסט חופשי גודל הטקסט המומלץ לכל כותרת משנה: עד 50 תווים |
| תגים | אופציונלי |
כל תג יכול להיות טקסט חופשי (עד 15 תווים) או תמונה קטנה. |
|
| תג – טקסט | אופציונלי | השם של התג הערה: חובה להוסיף טקסט או תמונה לתג |
טקסט חופשי גודל טקסט מומלץ: עד 15 תווים |
| תג – תמונה | אופציונלי | תמונה קטנה טיפול מיוחד בחוויית המשתמש, למשל הצגת תג כשכבת-על בתמונה הממוזערת של התמונה או הסרטון. הערה: חובה להוסיף טקסט או תמונה לתג |
הנחיות זמינות במאמר בנושא מפרט לתמונות. |
| מזהה הזמנה | אופציונלי | מזהה ההזמנה של ההזמנה לאירוע. | טקסט חופשי |
| מחיר – CurrentPrice | חובה להזין ערך בתנאים מסוימים |
המחיר הנוכחי של הכרטיס או הכרטיס העונתי לאירוע. חובה לציין את המחיר הקודם אם מציינים מחיר קודם מחוק. |
טקסט חופשי |
| מחיר – מחיר קודם מחוק | אופציונלי | המחיר המקורי של הכרטיס לאירוע. | טקסט חופשי |
| נכס יתרונות מרכזיים של מחיר | אופציונלי | הצגת מחיר מוזל כדי להבליט מבצע, אירוע או הנחה לחברי מועדון, אם יש כאלה. | טקסט חופשי גודל הטקסט המומלץ: פחות מ-45 תווים (טקסט ארוך מדי עשוי להציג שלוש נקודות) |
| דירוג – ערך מקסימלי | אופציונלי | הערך המקסימלי בסולם הדירוג. חובה לציין את המאפיין הזה אם מציינים גם את הערך הנוכחי של הדירוג. |
מספר >= 0.0 |
| דירוג – ערך נוכחי | אופציונלי | הערך הנוכחי של סולם הדירוג. חובה לציין את המאפיין הזה אם מציינים גם את הערך המקסימלי של הדירוג. |
מספר >= 0.0 |
| דירוג – ספירה | אופציונלי | מספר הדירוגים של האירוע. הערה: צריך לספק את השדה הזה אם רוצים שהאפליקציה תשלוט באופן שבו המידע מוצג למשתמשים. צריך לציין את המחרוזת התמציתית שתוצג למשתמש. לדוגמה, אם המספר הוא 1,000,000, כדאי להשתמש בקיצורים כמו 1M, כדי שהמספר לא ייחתך בגדלי מסך קטנים יותר. |
מחרוזת |
| דירוג – ערך הספירה | אופציונלי | מספר הדירוגים של האירוע. הערה: צריך לספק את השדה הזה אם לא רוצים לטפל בעצמכם בלוגיקה של קיצור התצוגה. אם מופיעים גם Count וגם Count Value, נשתמש ב-Count כדי להציג למשתמשים |
ארוך |
| קטגוריות תוכן | אופציונלי | תיאור הקטגוריה של התוכן בישות. | רשימה של טיפוסים בני מנייה שעומדים בדרישות
אפשר לקבל הנחיות נוספות בקטע בנושא קטגוריית תוכן. |
מפרט לתמונות
בטבלה הזו מפורטים המפרטים הנדרשים לנכסי תמונות:
| יחס גובה-רוחב | מספר פיקסלים מינימלי | מספר פיקסלים מומלץ |
|---|---|---|
ריבוע (1x1) מועדף |
300x300 | 1,200x1,200 |
| תמונה לרוחב (1.91x1) | 600x314 | 1,200x628 |
| לאורך (4x5) | 480x600 | 960x1200 |
התמונות צריכות להיות מאוחסנות ברשתות CDN ציבוריות כדי ש-Google תוכל לגשת אליהן.
פורמטים של קבצים
PNG, JPG, GIF סטטי, WebP
גודל קובץ מקסימלי
5120 KB
המלצות נוספות
- האזור הבטוח לתמונות: צריך למקם את התוכן החשוב ב-80% המרכזיים של התמונה.
- השתמשו ברקע שקוף כדי שהתמונה תוצג בצורה תקינה בהגדרות של עיצוב כהה ובהיר.
קטגוריית תוכן
קטגוריית התוכן מאפשרת לאפליקציות לפרסם תוכן ששייך לכמה קטגוריות. התוכן ממופה לחלק מהקטגוריות המוגדרות מראש, כלומר:
TYPE_EDUCATIONTYPE_SPORTSTYPE_MOVIES_AND_TV_SHOWSTYPE_BOOKSTYPE_AUDIOBOOKSTYPE_MUSICTYPE_DIGITAL_GAMESTYPE_TRAVEL_AND_LOCALTYPE_HOME_AND_AUTOTYPE_BUSINESSTYPE_NEWSTYPE_FOOD_AND_DRINKTYPE_SHOPPINGTYPE_HEALTH_AND_FITENESSTYPE_MEDICALTYPE_PARENTINGTYPE_DATING
התמונות צריכות להיות מאוחסנות ברשתות CDN ציבוריות כדי ש-Google תוכל לגשת אליהן.
הנחיות לשימוש בקטגוריות התוכן
- יש ישויות כמו ArticleEntity ו-GenericFeaturedEntity שעומדות בדרישות לשימוש בכל אחת מקטגוריות התוכן. עבור ישויות אחרות כמו EventEntity, EventReservationEntity ו-PersonEntity, רק קבוצת משנה של הקטגוריות האלה עומדת בדרישות. לפני שממלאים את הרשימה, כדאי לבדוק את רשימת הקטגוריות שעומדות בדרישות לסוג ישות.
בקטגוריות תוכן מסוימות, כדאי להשתמש בסוג הישות הספציפי במקום בשילוב של הישויות הגנריות והמאפיין ContentCategory:
- TYPE_MOVIES_AND_TV_SHOWS – כדאי לעיין בישויות מתוך מדריך השילוב של Watch לפני שמשתמשים בישויות כלליות.
- TYPE_BOOKS – כדאי לעיין ב-EbookEntity לפני שמשתמשים בישויות כלליות.
- TYPE_AUDIOBOOKS – לפני שמשתמשים בישויות כלליות, כדאי לעיין ב-AudiobookEntity.
- TYPE_SHOPPING – מעבר לתשלום לפני השימוש בישויות כלליות, צריך לבדוק את ShoppingEntity.
- TYPE_FOOD_AND_DRINK – לפני שמשתמשים בישויות כלליות, כדאי לעיין בישויות מתוך מדריך השילוב של הזמנת אוכל.
השדה ContentCategory הוא אופציונלי, ואם התוכן לא שייך לאף אחת מהקטגוריות שצוינו קודם, צריך להשאיר אותו ריק.
אם מציינים כמה קטגוריות תוכן, צריך לציין אותן לפי סדר הרלוונטיות לתוכן, כשהקטגוריה הרלוונטית ביותר מופיעה ראשונה ברשימה.
שלב 2: ציון נתונים של אוסף ההמשכים
מומלץ להריץ את משימת פרסום התוכן ברקע (לדוגמה, באמצעות WorkManager) ולתזמן אותה על בסיס קבוע או על בסיס אירוע (לדוגמה, בכל פעם שהמשתמש פותח את האפליקציה או כשהמשתמש מוסיף פריט לעגלת הקניות).
AppEngagePublishClient אחראי לפרסום של אוספים.
יש ממשקי API שמאפשרים לפרסם אשכולות בלקוח:
isServiceAvailablepublishRecommendationClusterspublishFeaturedClusterpublishContinuationClusterpublishUserAccountManagementRequestupdatePublishStatusdeleteRecommendationsClustersdeleteFeaturedClusterdeleteContinuationClusterdeleteUserManagementClusterdeleteClusters
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.
Kotlin
client.publishRecommendationClusters(
PublishRecommendationClustersRequest.Builder()
.addRecommendationCluster(
RecommendationCluster.Builder()
.addEntity(entity1)
.addEntity(entity2)
.setTitle("Top Picks For You")
.build()
)
.build()
)
Java
client.publishRecommendationClusters(
new PublishRecommendationClustersRequest.Builder()
.addRecommendationCluster(
new RecommendationCluster.Builder()
.addEntity(entity1)
.addEntity(entity2)
.setTitle("Top Picks For You")
.build())
.build());
כשהשירות מקבל את הבקשה, הפעולות הבאות מתבצעות במסגרת עסקה אחת:
- הנתונים הקיימים של
RecommendationClusterמשותף המפתחים יוסרו. - הנתונים מהבקשה מנותחים ומאוחסנים ב-RecommendationCluster המעודכן.
במקרה של שגיאה, הבקשה כולה נדחית והמצב הקיים נשמר.
publishFeaturedCluster
ה-API הזה משמש לפרסום רשימה של אובייקטים מסוג FeaturedCluster.
Kotlin
client.publishFeaturedCluster(
PublishFeaturedClusterRequest.Builder()
.setFeaturedCluster(
FeaturedCluster.Builder()
.addEntity(entity1)
.addEntity(entity2)
.build())
.build())
Java
client.publishFeaturedCluster(
new PublishFeaturedClustersRequest.Builder()
.addFeaturedCluster(
new FeaturedCluster.Builder()
.addEntity(entity1)
.addEntity(entity2)
.build())
.build());
כשהשירות מקבל את הבקשה, הפעולות הבאות מתבצעות במסגרת עסקה אחת:
- הנתונים הקיימים של
FeaturedClusterמשותף המפתחים יוסרו. - הנתונים מהבקשה מנותחים ונשמרים באוסף המאמרים המומלצים המעודכן.
במקרה של שגיאה, הבקשה כולה נדחית והמצב הקיים נשמר.
publishContinuationCluster
משתמשים ב-API הזה כדי לפרסם אובייקט ContinuationCluster.
Kotlin
client.publishContinuationCluster(
PublishContinuationClusterRequest.Builder()
.setContinuationCluster(
ContinuationCluster.Builder()
.addEntity(entity1)
.addEntity(entity2)
.build())
.build())
Java
client.publishContinuationCluster(
new PublishContinuationClusterRequest.Builder()
.setContinuationCluster(
new ContinuationCluster.Builder()
.addEntity(entity1)
.addEntity(entity2)
.build())
.build());
כשהשירות מקבל את הבקשה, הפעולות הבאות מתבצעות במסגרת עסקה אחת:
- הנתונים הקיימים של
ContinuationClusterמשותף המפתחים יוסרו. - הנתונים מהבקשה מנותחים ומאוחסנים ב-Continuation Cluster המעודכן.
במקרה של שגיאה, הבקשה כולה נדחית והמצב הקיים נשמר.
publishUserAccountManagementRequest
ה-API הזה משמש לפרסום כרטיס כניסה . פעולת הכניסה מפנה את המשתמשים לדף הכניסה של האפליקציה כדי שהאפליקציה תוכל לפרסם תוכן (או לספק תוכן מותאם אישית יותר)
המטא-נתונים הבאים הם חלק מכרטיס הכניסה –
| מאפיין | דרישה | תיאור |
|---|---|---|
| URI של פעולה | חובה | קישור עומק לפעולה (כלומר, מעבר לדף הכניסה לאפליקציה) |
| תמונה | אופציונלי – אם לא מספקים את הערך הזה, חובה לספק את הערך Title |
התמונה שמוצגת בכרטיס תמונות עם יחס גובה-רוחב של 16:9 ורזולוציה של 1264x712 |
| שם | אופציונלי – אם לא מספקים תמונה, חובה לספק סרטון | השם על הכרטיס |
| טקסט פעולה | אופציונלי | הטקסט שמוצג ב-CTA (למשל, 'כניסה') |
| כותרת משנה | אופציונלי | כתובית אופציונלית בכרטיס |
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קיימים מהשותף המפתח יוסרו. - הנתונים מהבקשה מנותחים ומאוחסנים באשכול UserAccountManagementCluster המעודכן.
במקרה של שגיאה, הבקשה כולה נדחית והמצב הקיים נשמר.
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 תמליץ לפרסם את כרטיס הכניסה. אם מסיבה כלשהי הספקים לא יכולים לפרסם את כרטיס הכניסה, מומלץ להתקשר אל updatePublishStatus API עם קוד הסטטוס 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();
כשהשירות מקבל את הבקשה, הוא מסיר את הנתונים הקיימים מהאשכול המומלץ. במקרה של שגיאה, הבקשה כולה נדחית והמצב הקיים נשמר.
deleteContinuationCluster
ממשק ה-API הזה משמש למחיקת התוכן של Continuation Cluster.
Kotlin
client.deleteContinuationCluster()
Java
client.deleteContinuationCluster();
כשהשירות מקבל את הבקשה, הוא מסיר את הנתונים הקיימים מ-Continuation Cluster. במקרה של שגיאה, הבקשה כולה נדחית והמצב הקיים נשמר.
deleteUserManagementCluster
ה-API הזה משמש למחיקת התוכן של UserAccountManagement Cluster.
Kotlin
client.deleteUserManagementCluster()
Java
client.deleteUserManagementCluster();
כשהשירות מקבל את הבקשה, הוא מסיר את הנתונים הקיימים מהאשכול UserAccountManagement. במקרה של שגיאה, הבקשה כולה נדחית והמצב הקיים נשמר.
deleteClusters
ממשק ה-API הזה משמש למחיקת התוכן של סוג מסוים של אשכול.
Kotlin
client.deleteClusters(
DeleteClustersRequest.Builder()
.addClusterType(ClusterType.TYPE_CONTINUATION)
.addClusterType(ClusterType.TYPE_FEATURED)
.addClusterType(ClusterType.TYPE_RECOMMENDATION)
.build())
Java
client.deleteClusters(
new DeleteClustersRequest.Builder()
.addClusterType(ClusterType.TYPE_CONTINUATION)
.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: טיפול ב-Intents של שידור
בנוסף לקריאות ל-API לפרסום תוכן דרך משימה, צריך גם להגדיר BroadcastReceiver כדי לקבל את הבקשה לפרסום תוכן.
המטרה העיקרית של כוונות שידור היא הפעלה מחדש של אפליקציות ואילוץ סנכרון נתונים. ה-Intents של שידור לא נועדו להישלח בתדירות גבוהה מאוד. ההודעה מופעלת רק כשהשירות 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 continuation cluster publish when PUBLISH_CONTINUATION 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),
com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
/*scheduler=*/null)
// Register Featured Cluster Publish Intent
context.registerReceiver(AppEngageBroadcastReceiver(),
IntentFilter(Intents.ACTION_PUBLISH_FEATURED),
com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
/*scheduler=*/null)
// Register Continuation Cluster Publish Intent
context.registerReceiver(AppEngageBroadcastReceiver(),
IntentFilter(Intents.ACTION_PUBLISH_CONTINUATION),
com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
/*scheduler=*/null)
}
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 continuation cluster publish when PUBLISH_CONTINUATION 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),
com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
/*scheduler=*/null);
// Register Featured Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_FEATURED),
com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
/*scheduler=*/null);
// Register Continuation Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_CONTINUATION),
com.google.android.engage.service.BroadcastReceiverPermissions.BROADCAST_REQUEST_DATA_PUBLISH_PERMISSION,
/*scheduler=*/null);
}
מצהירים באופן סטטי על הטמעה באמצעות התג
<receiver>בקובץAndroidManifest.xml. ההרשאה הזו מאפשרת לאפליקציה לקבל שידורי Intent כשהיא לא פועלת, וגם מאפשרת לאפליקציה לפרסם את התוכן.
<application>
<receiver
android:name=".AppEngageBroadcastReceiver"
android:permission="com.google.android.engage.REQUEST_ENGAGE_DATA"
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.PUBLISH_CONTINUATION" />
</intent-filter>
</receiver>
</application>
הכוונה הבאה נשלחת על ידי השירות:
com.google.android.engage.action.PUBLISH_RECOMMENDATIONמומלץ להתחיל שיחתpublishRecommendationClustersכשמתקבלת הכוונה הזו.com.google.android.engage.action.PUBLISH_FEATUREDמומלץ להתחיל שיחה ב-publishFeaturedClusterכשמתקבלת הכוונה הזו.com.google.android.engage.action.PUBLISH_CONTINUATIONמומלץ להתחיל שיחה ב-publishContinuationClusterכשמתקבלת הכוונה הזו.
תהליך עבודה של שילוב
מדריך מפורט לאימות השילוב אחרי שהוא הושלם זמין במאמר תהליך העבודה של שילוב Engage למפתחים.
שאלות נפוצות
יצירת קשר
אם יש לכם שאלות במהלך תהליך האינטגרציה, תוכלו לפנות אל engage-developers@google.com.
השלבים הבאים
אחרי שמסיימים את השילוב, השלבים הבאים הם:
- שולחים אימייל לכתובת
engage-developers@google.comומצרפים את קובץ ה-APK המשולב שמוכן לבדיקה על ידי Google. - Google מבצעת אימות ובדיקה פנימית כדי לוודא שהשילוב פועל כמו שצריך. אם יהיה צורך בשינויים, Google תיצור איתכם קשר ותבקש את הפרטים הנדרשים.
- בסיום הבדיקה, אם לא נדרשים שינויים, Google תיצור איתכם קשר כדי להודיע לכם שאתם יכולים להתחיל לפרסם את קובץ ה-APK המעודכן והמשולב בחנות Play.
- אחרי ש-Google תאשר שקובץ ה-APK המעודכן פורסם בחנות Play, יכול להיות שקטעי ההמלצות, האפליקציות המומלצות וההמשך יפורסמו ויוצגו למשתמשים.