הוספת תכונות ספציפיות למוצרים מתגמלים

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

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

איך מזהים את המוצרים במתנה באפליקציה

למוצרים במתנה יש SkuType של INAPP. כדי להבטיח שהמשתמשים יוכלו לצפות בכמה מודעות ולקבל כמה תגמולים, הם צריכים להשתמש במוצרים.

לפני שמציעים למשתמש מוצר מתגמל, צריך לקבל את SkuDetails למוצר. כדי לעשות את זה, מתקשרים אל querySkuDetailsAsync() עם SkuType.INAPP כסוג המוצר.

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

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

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

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

Kotlin

val billingClient = BillingClient.newBuilder(context)
        .setListener(this)
        .setChildDirected(ChildDirected.CHILD_DIRECTED)
        .setUnderAgeOfConsent(UnderAgeOfConsent.UNDER_AGE_OF_CONSENT)
        .build()

Java

BillingClient billingClient =
    BillingClient.newBuilder(context)
        .setListener(this)
        .setChildDirected(ChildDirected.CHILD_DIRECTED)
        .setUnderAgeOfConsent(UnderAgeOfConsent.UNDER_AGE_OF_CONSENT)
        .build();

טעינה של מודעות וידאו

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

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

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

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

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

בקטע הקוד הבא אפשר לראות את התהליך של טעינת מודעת וידאו שמופעלת לפני שהמשתמש מקבל את המוצר המתגמל:

Kotlin

if (skuDetails.isRewarded()) {
    val params = RewardLoadParams.Builder()
            .setSkuDetails(skuDetails)
            .build()
    mBillingClient.loadRewardedSku(params.build(),
            object : RewardResponseListener {
        override fun onRewardResponse(@BillingResponse responseCode : Int) {
            if (responseCode == BillingResponse.OK) {
                // Enable the reward product, or make
                // any necessary updates to the UI.
            }
        }
    })
}

Java

if (skuDetails.isRewarded()) {
    RewardLoadParams.Builder params = RewardLoadParams.newBuilder();
    params.setSkuDetails(skuDetails);
    mBillingClient.loadRewardedSku(params.build(),
        new RewardResponseListener() {
            @Override
            public void onRewardResponse(int responseCode) {
                if (responseCode == BillingResponse.OK) {
                      // Enable the reward product, or make
                      // any necessary updates to the UI.
                  }
            }
        });
}

הענקת רכישות מתגמלות למשתמשים

אם ספריית החיובים ב-Google Play טוענת בהצלחה את הסרטון שמשויך למוצר במתנה – כלומר, אם RewardResponseListener מקבל responseCode של BillingResponse.OK – אפשר להפעיל את תהליך החיוב.

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

לצרוך את הרכישה

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

בדיקת מוצרים במתנה

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

שיטה נוספת לבדיקה היא שימוש במזהה המוצר android.test.reward. המוצר הספציפי הזה הוא שם שמור בחיוב ב-Google Play, ולכן לא צריך להוסיף אותו לרשימת המוצרים בתוך האפליקציה ב-Play Console.

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

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

תרשים של תהליך העבודה של מוצר במתנה

בתרשים הרצף הבא מוצג איך המשתמש, האפליקציה וספריית החיובים ב-Google Play פועלים יחד כדי להציג מודעת וידאו ולאפשר למשתמש גישה למוצר במתנה:

תרשים רצף שמציג את הפרוטוקול של מוצרים עם תגמול
איור 1. שלבים להשלמת רכישה של מוצר עם תגמול באמצעות חיוב ב-Google Play