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

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

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

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

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

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

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

כדי לעזור לכם לעמוד בחובות משפטיות שקשורות לילדים ולמשתמשים מתחת לגיל, כולל Children's Online Privacy Protection Act (חוק הגנת הפרטיות של ילדים באינטרנט, COPPA) ו-General Data Protection Regulation (התקנות הכלליות להגנה על מידע, 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