Jednym ze sposobów odblokowywania produktów i korzyści w aplikacji dla użytkowników jest tworzenie nagród za obejrzenie reklamy wideo, czyli elementów, które użytkownicy otrzymują po obejrzeniu reklamy wideo. Dzięki nagrodom za obejrzenie reklamy wideo użytkownicy mogą otrzymywać nagrody i korzyści w aplikacji bez konieczności dokonywania bezpośrednich zakupów.
Z tego dokumentu dowiesz się, jak wdrożyć funkcje nagród za obejrzenie reklamy wideo. Proces ten ilustruje sekcja z diagramem przepływu pracy na tej stronie.
Określanie nagród za obejrzenie reklamy wideo w aplikacji
Nagrody za obejrzenie reklamy wideo mają wartość
SkuType równą
INAPP.
Aby użytkownicy mogli oglądać wiele reklam i otrzymywać wiele nagród, produkty muszą być zużywane.
Zanim zaoferujesz użytkownikowi nagrodę za obejrzenie reklamy wideo, musisz uzyskać
SkuDetails dla tego
produktu. Aby to zrobić, wywołaj
querySkuDetailsAsync()
z SkuType.INAPP jako typem produktu.
Deklarowanie reklam odpowiednich dla wieku
Aby ułatwić przestrzeganie obowiązków prawnych związanych z dziećmi i osobami niepełnoletnimi, w tym ustawy o ochronie prywatności dzieci w internecie (COPPA) i Ogólnego rozporządzenia o ochronie danych (RODO), Twoja aplikacja powinna deklarować, które reklamy mają być traktowane jako skierowane do dzieci w Stanach Zjednoczonych, a które są kierowane do użytkowników, którzy nie osiągnęli obowiązującego wieku świadomego wyrażenia zgody w swoim kraju. W Centrum pomocy AdMob znajdziesz informacje o tym, kiedy należy oznaczać żądania reklam jako skierowane do dzieci oraz kiedy należy oznaczać je jako skierowane do użytkowników, którzy nie osiągnęli wieku zgody , a także o skutkach takiego działania.
Podczas tworzenia klienta rozliczeniowego aplikacji zastanów się, czy żądania reklam z nagrodą powinny być traktowane jako skierowane do dzieci, czy też powinny być kierowane do użytkowników, którzy nie osiągnęli wieku świadomego wyrażenia zgody. Jeśli żądania reklam mają podlegać tym
ograniczeniom, wywołaj metody
setChildDirected()
i
setUnderAgeOfConsent(), przekazując do każdej z nich odpowiednie wartości.
Poniższy fragment kodu pokazuje, jak zadeklarować, że reklamy wideo powinny być odpowiednie dla dzieci lub dla 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();
Wczytywanie reklam wideo
Zanim pokażesz użytkownikowi opcję obejrzenia reklamy wideo w celu otrzymania nagrody za obejrzenie reklamy wideo, musisz wczytać film. Aby to zrobić, utwórz obiekt
RewardLoadParams, powiązując go z obiektem SkuDetails, który
reprezentuje nagrodę za obejrzenie reklamy wideo. Następnie wywołaj metodę klienta rozliczeniowego
loadRewardedSku()
, przekazując obiekt RewardLoadParams i obiekt
RewardResponseListener.
Gdy film zostanie wczytany, powiadomiony zostanie odbiorca RewardResponseListener. Odbiorca zostanie też powiadomiony, jeśli film jest niedostępny lub wystąpi inny błąd, np. przekroczenie limitu czasu serwera.
Aby zachować wydajność urządzenia podczas wczytywania filmów powiązanych z nagrodami za obejrzenie reklamy wideo w aplikacji, pamiętaj o tych sprawdzonych metodach:
- Wczytuj maksymalnie 3 kody SKU nagród za obejrzenie reklamy wideo naraz.
- Próbuj wczytywać filmy za każdym razem, gdy użytkownik wchodzi do aplikacji. Ten krok pomaga sprawdzić, czy filmy są nadal wczytane i dostępne.
Decydując, kiedy wczytywać filmy, wybierz kompromis między wykorzystaniem przepustowości a szybkością reakcji aplikacji, który najlepiej pasuje do Twojego przypadku użycia:
- Najwcześniej wczytaj filmy po wywołaniu
getSkuDetails()dla powiązanej nagrody za obejrzenie reklamy wideo. Twoja aplikacja pozostanie bardzo responsywna, ale możesz marnować dane sieciowe, wczytując film, którego użytkownik nigdy nie obejrzy. - Najpóźniej wczytaj film, gdy użytkownik przejdzie na stronę, na której ma być wyświetlany. W tym przypadku aplikacja rzadko marnuje przepustowość, ale użytkownik może musieć poczekać kilka sekund, zanim przycisk do obejrzenia filmu stanie się klikalny.
- Najwcześniej wczytaj filmy po wywołaniu
Poniższy fragment kodu pokazuje proces wczytywania reklamy wideo, która jest odtwarzana, zanim użytkownik otrzyma nagrodę za obejrzenie reklamy wideo:
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. } } }); }
Przyznawanie użytkownikom nagród za obejrzenie reklamy wideo
Jeśli Biblioteka płatności w Google Play pomyślnie wczyta film powiązany z nagrodą za obejrzenie reklamy wideo, czyli jeśli RewardResponseListener otrzyma responseCode o BillingResponse.OK, możesz uruchomić proces płatności.
Odtwarzanie reklam z nagrodą za obejrzenie reklamy wideo rozpoczynasz, wywołując
launchBillingFlow(),
tak jak w przypadku wszystkich 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 rozliczeniowy, aby użytkownik mógł otrzymać i używać produktu.
Skonsumuj zakup
Aby powiadomić klienta rozliczeniowego, że użytkownik otrzymał i zużył nagrodę za obejrzenie reklamy wideo
, obsłuż zakup w
metodzie
onPurchasesUpdated()
odbiorcy klienta rozliczeniowego. Pamiętaj, że zakupy z nagrodą za obejrzenie reklamy wideo muszą zostać zużyte.
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 licencjonowanych testerów, którzy domyślnie otrzymują reklamy testowe zamiast prawdziwych reklam. Aby dowiedzieć się, jak skonfigurować konta dla tych testerów, przeczytaj artykuł Testowanie aplikacji korzystającej z Biblioteki rozliczeniowej Google Play przez użytkowników.
Inną metodą testowania jest użycie identyfikatora produktu android.test.reward. Ten konkretny produkt jest nazwą zastrzeżoną 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, ponieważ w przeciwnym razie Twoje konto może zostać oznaczone jako spam lub konto oszukańcze.
Gdy skończysz testowanie, przed wdrożeniem aplikacji w wersji produkcyjnej dla użytkowników zastąp
android.test.reward identyfikatorami produktów rzeczywistych nagród za obejrzenie reklamy wideo.
Diagram przepływu pracy z nagrodami za obejrzenie reklamy wideo
Poniższy diagram sekwencji pokazuje, jak użytkownik, Twoja aplikacja i Biblioteka płatności w Google Play współpracują, aby wyświetlić reklamę wideo i przyznać użytkownikowi dostęp do nagrody za obejrzenie reklamy wideo: