במאמר הזה מוסבר איך לזהות מוצרים בחיוב חד-פעמי במשחק ולספק אותם אחרי שהשחקנים קונים אותם באמצעות Play Points באפליקציית Google Play.
אחרי שהמשתמשים מממשים את נקודות Play שלהם במוצר בחיוב חד-פעמי באפליקציית Google Play, הפריטים צריכים להימסר להם מיד במשחק. האיור הבא מציג איך משתמש קונה פריטים באמצעות נקודות Play.
1. לוחצים על Play Points. | 2. לוחצים על הכרטיסייה שימוש כדי לראות את הפריטים. | 3. בוחרים פריט ולוחצים על שימוש בנקודות כדי להשלים את הרכישה. | 4. מקבלים את הפריט. |
![]() |
![]() |
![]() |
![]() |
בדוגמה, המשחק לא פועל בזמן רכישת המוצר. משתמשים יכולים גם להמיר נקודות Play למוצרים כשהמשחק לא מותקן במכשיר שלהם. לכן, אתם צריכים לתכנן את המשחק כך שיטפל במשלוח של פריטים מתוך האפליקציה ממקורות שמחוץ לחנות שבמשחק.
לפני שמתחילים
לפני שמזהים מוצר בחיוב חד-פעמי ומציעים אותו, צריך ליצור את המוצר ואת המבצעים של Play Points.
דרישות לגבי משלוח
כשאתם מספקים מוצרים בחיוב חד-פעמי במשחק באמצעות מבצע של Play Points, אתם צריכים לעמוד בדרישות שמפורטות בקטע הזה.
זמן אספקה
כששחקן ממיר נקודות Play למוצר חד-פעמי, אתם צריכים לספק את הפריט באופן מיידי בלי לדרוש מהשחקן להפעיל מחדש את המשחק. במקרים שבהם צריך להשלים תוכן במשחק מראש, כמו השלמת הדרכה, צריך לספק את הפריט מיד לאחר מכן.
הודעה שתוצג אחרי שליחת הטופס
אם משתמש חוזר למשחק שלכם אחרי שרכש מוצר חד-פעמי מחוץ למשחק, אתם צריכים להציג אישור שהמוצר הוענק בהצלחה בתוך המשחק. ההודעה צריכה להופיע כתיבת דו-שיח או כהודעה בתוך המשחק. המשתמשים לא צריכים לבצע פעולות נוספות כדי לקבל את הפריט.
זהו פורמט ההודעה הנדרש:
הודעה ברורה שהפריט התקבל.
חשוב לציין בבירור את שם הפריט ולהשתמש במונח 'מועדון Play' כדי שהמשתמשים יוכלו להבחין בין הפריט הזה לבין תוכן אחר שהם מקבלים.
אם יש פריטים דומים עם ערכים שונים, שם הפריט צריך לכלול גם את הערך הנכון של הפריט.
תיבת הדו-שיח, ההודעה או ההתראה בתוך המשחק צריכות להיות גלויות למשתמש עד שהוא לוחץ על אישור, למשל על המשך או על אישור. לא אמור להיות לחצן ביטול, כי המטרה של ההודעה הזו היא רק ליידע את המשתמשים לגבי הפריט שהם קיבלו במשחק. אם אין לחצן אישור, ההודעה צריכה להיות גלויה למשתמשים למשך 3 שניות לפחות לפני שהיא נעלמת, כדי לוודא שהמשתמשים יודעים שהם קיבלו את הפריט.
דוגמה להודעה:
"הפריט התקבל! קיבלת עכשיו 100 אבני חן עם נקודות Play. Continue".
המשתמשים אמורים לראות אנימציה או אישור ויזואלי כלשהו שבו מוצגת העלייה ביתרה של המטבע במשחק. אם הפריט הוא פריט מתכלה או פריט עמיד מתוך האפליקציה, צריך להפנות את המשתמשים למקום שבו הפריט נפתח או זמין במשחק.
זיהוי פריטים שהתקבלו מחוץ למשחק
אם המשחק שלכם משתמש בספריית החיובים ב-Google Play, צריך לבצע את השינויים הבאים כדי לזהות מוצרים בחיוב חד-פעמי שמתקבלים מחוץ למשחק.
ב-callback של המשחק
[onResume()][onResume]
, קוראים לשיטה[queryPurchases()][queryPurchases]
כדי לאחזר רשימה של פריטים, וכך אפשר לקבוע אילו פריטים לא אושרו.אם למשחק שלכם יש שרת, מומלץ מאוד לאמת את הרכישה מהשרת באמצעות Subscriptions and In-App Purchases API.
אם יש פריטים בבעלות המשתמש אבל הוא לא אישר את הרכישה שלהם, צריך לאשר את הרכישה באמצעות
[consumeAsync()][consumeAsync]
לפריטים מתכלים או באמצעות[acknowledgePurchase()][acknowledgePurchase]
לפריטים לא מתכלים.הענקת זכאות לפריט שנרכש בתוך המשחק.
זיהוי פריטים שמתקבלים במצב מסך מפוצל
אם המשחק שלכם תומך במצב מרובה חלונות, המשתמשים יכולים לממש נקודות Play ולקבל את הפריט תוך כדי הפעלת האפליקציה של חנות Play והמשחק בו-זמנית. בדוגמה לצילום המסך הבאה אפשר לראות:
כדי לתמוך בתרחיש הזה באמצעות ספריית החיובים ב-Google Play, צריך לבצע את הפעולות הבאות:
המערכת של Google Play קוראת לשיטה
[onPurchasesUpdated()][onPurchasesUpdated]
כדי להודיע למשחק שיש פריט חדש בהמתנה.אם למשחק שלכם יש שרת, מומלץ מאוד לאמת את הרכישה מהשרת באמצעות Subscriptions and In-App Purchases API.
מאשרים את הרכישה באמצעות
consumeAsync()
לפריטים מתכלים או באמצעותacknowledgePurchase()
לפריטים לא מתכלים.הענקת זכאות לפריט שנרכש בתוך המשחק.
הצגת אישור מסירה
כשמשתמשים ממירים נקודות Play ומקבלים פריט להמרה, הם מצפים לראות הודעה במשחק או לקבל התראה כלשהי שתעדכן אותם שהמשחק קיבל את הפריט ועיבד אותו בצורה תקינה. אלה כמה אפשרויות לאישור מסירה:
הצגת תיבת דו-שיח במשחק.
להעביר את ההודעה לתיבת ההודעות במשחק, ולציין בבירור שיש הודעה חדשה בתיבת ההודעות במשחק.
שימוש בהודעת התראה של מערכת ההפעלה.
יכול להיות שהמשחק יהיה בכל מצב כשהפריט השיווקי יתקבל, כולל מצב שבו הוא לא מותקן במכשיר. אתם צריכים לזהות פריטים שיווקיים, לא משנה מה מצב המשחק בזמן קבלת הפריט. עם זאת, יש כמה מקרים יוצאים מן הכלל שבהם אפשר לא להודיע למשתמש באופן מיידי שהפריט התקבל. לדוגמה:
במהלך פעולת המשחק, כשלהצגת הודעה עלולה להיות השפעה מסיחה על המשתמש. במקרה כזה, צריך להודיע למשתמש אחרי שהפעולה מסתיימת.
במהלך סצנות מעבר, שבהן הצגת הודעה עלולה להסיח את דעתו של המשתמש. במקרה כזה, עליכם להודיע למשתמש אחרי סיום הסצנה הקצרה.
במהלך ההדרכה הראשונית ובחלקים של הגדרת המשתמש במשחק. מומלץ להודיע למשתמשים חדשים על התגמול מיד אחרי שהם פותחים את המשחק או במהלך ההגדרה הראשונית של המשתמש. עם זאת, אפשר להמתין עד שרצף המשחק הראשי יהיה זמין כדי להודיע למשתמש.
אם באפליקציה יש כמה דמויות או חשבונות שאפשר להחיל עליהם את הפריט, מומלץ להציג למשתמש בקשה לבחור את החשבון שבו יתקבלו הפריטים השיווקיים.
חשוב לחשוב על המשתמשים כשמחליטים מתי ואיך להודיע להם על מוצרים במבצע. אם משתמש לא מקבל התראה באופן מיידי, הוא עלול להתבלבל, להפסיק לשחק במשחק, לפנות לתמיכה או להתלונן על כך ברשתות החברתיות.
עדכונים למנועי משחקים ספציפיים
הנה כמה דברים שכדאי לקחת בחשבון כשמשתמשים במנועי משחקים ספציפיים:
אם המשחק שלכם מבוסס על Unity, מומלץ לבדוק אם הטמעת הרכישות מתוך האפליקציה שבה אתם משתמשים כבר תומכת במבצעים של Play Points.
אם המשחק שלכם מבוסס על Cocos2d-x או על Unreal Engine (C/C++), סביר להניח שתצטרכו לכתוב את קוד ה-JNI שקורא לממשקי Java API מקוד ה-C/C++ שלכם.
שיטות מומלצות לשימוש בצד השרת
בקטע הזה מפורטות שיטות מומלצות לשימוש במבצעים של Play Points בצד השרת:
אם אתם מתקשרים אל
Purchases.products: get
בשרת שלכם, אתם צריכים לבדוק אם אתם צריכים לטפל בפריטים להחלפת תגמולים ב-Play ובמוצרים חד-פעמיים אחרים בנפרד, על סמך הערכים שלproductId
.אם אתם משתמשים ב-
Onetimeproducts: list
בשרת שלכם, אתם צריכים לבדוק אם אתם צריכים להפריד בין פריטים של החלפת תגמולים ב-Play לבין מוצרים אחרים חד-פעמיים לפי ערכיproductId
.כדאי לעיין בשיטות המומלצות הבאות כדי לבדוק אם צריך לבצע שינויים נוספים:
- הפניה:
- מטמיעים אימות חתימה בצד השרת.
- מוודאים שהערכים של
purchaseToken
ושלorderId
הם ייחודיים ושלא נעשה בהם שימוש בעבר.
פתרון בעיות
בקטע הזה מפורטות המלצות לתרחישים שיכולים להוביל לשאלות של לקוחות.
כמה חשבונות משתמש
אם למשתמש יש כמה חשבונות Google במכשיר והוא מממש את הנקודות של Play בחשבון הלא נכון, Google לא יכולה להעביר את הפריטים לחשבונות האחרים. באופן דומה, האפליקציה לא יכולה להעביר את הפריט באמצעות קריאה לשיטה getPurchases()
. במקרה כזה, כדאי לספק למשתמש את הפריטים באפליקציה באופן ידני באמצעות פעולות התמיכה בלקוחות.
פריטים חסרים או שהמשלוח שלהם מתעכב
אם שחקנים נתקלים בעיכובים בקבלת פריטי תגמול או בפריטים חסרים, אפשר לעיין במדריך לפתרון בעיות ברכישות מתוך האפליקציות במסמכי העזרה של Google Play.