Jedną ze sposobów na odblokowanie produktów w aplikacji i związanych z nimi korzyści jest tworzenie produktów z nagrodą, czyli przedmiotów, które użytkownicy otrzymują po obejrzeniu reklamy wideo. Oferując nagrody za obejrzenie reklamy wideo, umożliwisz użytkownikom otrzymywanie nagród i korzyści w aplikacji bez konieczności dokonywania bezpośrednich zakupów.
Ten dokument wyjaśnia, jak wdrożyć funkcje reklam tego typu. Sekcja Schemat przepływu pracy na tej stronie ilustruje ten proces.
Identyfikowanie nagród za obejrzenie reklamy wideo w aplikacji
Reklamy wideo z nagrodą mają SkuType
INAPP
.
Produkty muszą być wykorzystane, aby użytkownicy mogli obejrzeć wiele reklam i zdobyć kilka nagród.
Zanim będziesz mieć możliwość zaoferowania użytkownikowi nagrody za obejrzenie reklamy wideo, musisz uzyskać dla niego SkuDetails
. Aby to zrobić, wywołaj querySkuDetailsAsync()
, podając SkuType.INAPP
jako typ produktu.
Deklarowanie reklam dostosowanych do wieku odbiorcy
Aby ułatwić zachowanie zgodności z przepisami prawa dotyczącymi dzieci i niepełnoletnich użytkowników, w tym z ustawą o ochronie prywatności dzieci w internecie (Children's Online Privacy Protection Act – COPPA) i Ogólnym rozporządzeniem o ochronie danych (RODO), w aplikacji musisz zadeklarować, które reklamy powinny być traktowane jako skierowane do dzieci w Stanach Zjednoczonych, a które są kierowane do użytkowników, którzy nie osiągnęli wieku świadomego wyrażenia zgody obowiązującego w danym kraju. W Centrum pomocy AdMob dowiesz się, kiedy należy tagować żądania reklamy pod kątem traktowania treści jako skierowanych do dzieci i kiedy należy otagować je pod kątem kierowania treści do użytkowników, którzy nie osiągnęli wieku samodzielnego wyrażania zgody, a także skutki takiego działania.
Podczas tworzenia klienta obsługującego płatności w aplikacji zastanów się, czy żądania reklamy z nagrodą powinny być traktowane jako skierowane do dzieci czy też do użytkowników, którzy nie osiągnęli wieku świadomego wyrażenia zgody. Jeśli w żądaniach reklamy powinny obowiązywać te ograniczenia, wywołaj metody setChildDirected()
i setUnderAgeOfConsent()
, przekazując odpowiednie wartości do każdej z nich.
Ten fragment kodu pokazuje, jak zadeklarować, że reklamy wideo powinny być odpowiednie dla dzieci lub użytkowników, którzy nie osiągnęli wieku świadomego wyrażenia zgody:
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();
Wczytaj reklamy wideo
Musisz załadować film, zanim udostępnisz użytkownikowi opcję obejrzenia reklamy wideo w celu otrzymania nagrody za produkt. Aby to zrobić, utwórz obiekt RewardLoadParams
i powiąż go z obiektem SkuDetails
, który reprezentuje nagrodę za obejrzenie reklamy wideo. Następnie wywołaj metodę loadRewardedSku()
klienta rozliczeniowego, przekazując obiekt RewardLoadParams
i obiekt RewardResponseListener
.
Detektor RewardResponseListener
otrzyma powiadomienie, gdy film się zakończy. Odbiorca jest też powiadamiany, gdy film będzie niedostępny lub wystąpi inny błąd, na przykład przekroczenie limitu czasu serwera.
Aby utrzymać wydajność urządzenia podczas wczytywania filmów powiązanych z nagrodą w aplikacji, pamiętaj o tych sprawdzonych metodach:
- Wczytuj maksymalnie 3 kody SKU produktu z nagrodą naraz.
- Spróbuj wczytywać filmy za każdym razem, gdy użytkownik otworzy aplikację. W ten sposób sprawdzisz, czy filmy są nadal wczytywane i dostępne.
Podczas podejmowania decyzji o wczytywaniu filmów wybierz odpowiednią równowagę między wykorzystaniem przepustowości a czasem reagowania aplikacji:
- Najwcześniej załaduj filmy po wywołaniu funkcji
getSkuDetails()
w przypadku powiązanej nagrody za obejrzenie reklamy wideo. Aplikacja pozostaje bardzo elastyczna, ale może tracić dane sieciowe na wczytywanie filmu, którego użytkownik nigdy nie ogląda. - Maksymalnie wczytaj film, gdy użytkownik otworzy stronę, na której ma być wyświetlany. W takiej sytuacji aplikacja rzadko marnuje przepustowość, ale użytkownik musi chwilę poczekać, aż przycisk oglądania filmu stanie się klikalny.
- Najwcześniej załaduj filmy po wywołaniu funkcji
Ten fragment kodu przedstawia proces wczytywania reklamy wideo, która jest odtwarzana przed otrzymaniem nagrody za obejrzenie reklamy wideo przez użytkownika:
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. } } }); }
Udostępnij użytkownikom nagrody za zakupy
Jeśli Biblioteka płatności w Google Play wczyta film powiązany z nagrodą – czyli gdy RewardResponseListener
otrzyma responseCode
w wysokości BillingResponse.OK
, możesz rozpocząć proces płatności.
Reklamy wideo z nagrodą rozpoczynasz od wywołania launchBillingFlow()
, podobnie jak w przypadku innych typów produktów w aplikacji. Mimo że użytkownik nie dokonuje bezpośredniego zakupu, aby otrzymać nagrodę za obejrzenie reklamy wideo, musisz włączyć proces płatności, aby użytkownik mógł uzyskać produkt i z niego korzystać.
Konsumpcja zakupu
Aby powiadomić klienta obsługującego płatności, że użytkownik otrzymał i zrealizował nagrodę za obejrzenie reklamy wideo, dokonaj zakupu za pomocą metody onPurchasesUpdated()
odbiornika płatności klienta. Pamiętaj, że zakupy z nagrodą muszą zostać wykorzystane.
Testowanie nagród za obejrzenie reklamy wideo
Aby sprawdzić, jak Twoja aplikacja wczytuje reklamy wideo i udostępnia użytkownikom nagrody za obejrzenie reklamy wideo, skorzystaj z usług licencjonowanych testerów, którzy domyślnie otrzymują reklamy testowe zamiast prawdziwych aplikacji. Aby dowiedzieć się, jak skonfigurować konta dla tych testerów, przeczytaj artykuł Testowanie aplikacji Płatności w Google Play przez użytkowników.
Inną metodą testowania jest użycie identyfikatora produktu android.test.reward
. Ten produkt to zarezerwowana nazwa w Płatnościach w Google Play, więc nie musisz dodawać go do listy produktów w aplikacji w Konsoli Play.
Uwaga: podczas testowania nagród za obejrzenie reklamy wideo w aplikacji nie używaj rzeczywistych produktów. Jeśli tego nie zrobisz, Twoje konto może zostać oznaczone jako spam lub fałszywe.
Po zakończeniu testów pamiętaj, aby przed wdrożeniem produkcyjnej wersji aplikacji u użytkowników zastąpić android.test.reward
identyfikatorami produktów z nagrodą.
Schemat procesu obsługi nagrody za obejrzenie reklamy wideo
Poniższy diagram pokazuje, w jaki sposób użytkownik, aplikacja i Biblioteka płatności w Google Play współdziałają przy wyświetlaniu reklamy wideo i przyznawaniu użytkownikowi dostępu do nagrody za obejrzenie reklamy wideo: