Reklamy pełnoekranowe z nagrodą

Reklama pełnoekranowa z nagrodą to format reklamy zachęcającej użytkownika do jej obejrzenia. Umożliwia uzyskanie nagród w aplikacji, takich jak monety lub dodatkowe życia. Reklamy tego typu wyświetlają się automatycznie w naturalnych momentach przejściowych w aplikacji. W przeciwieństwie do reklam z nagrodą użytkownicy nie muszą wyrazić zgody na wyświetlenie reklamy pełnoekranowej z nagrodą. Z tego przewodnika dowiesz się, jak zintegrować reklamy pełnoekranowe z nagrodą z AdMob z aplikacją Flutter.

Wymagania wstępne

Zanim przejdziesz dalej, wykonaj te czynności:

Zawsze testuj reklamy testowe

Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie reklam aktywnych. Jeśli tego nie zrobisz, Twoje konto może zostać zawieszone.

Najłatwiejszym sposobem na wczytanie reklam testowych jest użycie naszego specjalnego identyfikatora jednostki reklamowej do testowania reklam pełnoekranowych z nagrodą:

Android

ca-app-pub-3940256099942544/5354046379

iOS

ca-app-pub-3940256099942544/6978759866

Jednostki reklamowe do testowania są skonfigurowane tak, aby zwracać reklamy testowe w przypadku każdego żądania. Możesz ich używać w swoich aplikacjach podczas kodowania, testowania i debugowania. Pamiętaj tylko, aby przed opublikowaniem aplikacji zastąpić je własnymi identyfikatorami jednostek reklamowych.

Wczytywanie reklamy

Poniższy przykład wczytuje reklamę pełnoekranową z nagrodą:

RewardedInterstitialAd.load(
  adUnitId: "_adUnitId",
  request: const AdRequest(),
  rewardedInterstitialAdLoadCallback: RewardedInterstitialAdLoadCallback(
    onAdLoaded: (RewardedInterstitialAd ad) {
      // Called when an ad is successfully received.
      debugPrint('Ad was loaded.');
      // Keep a reference to the ad so you can show it later.
      _rewardedInterstitialAd = ad;
    },
    onAdFailedToLoad: (LoadAdError error) {
      // Called when an ad request failed.
      debugPrint('Ad failed to load with error: $error');
    },
  ),
);

Zastąp _adUnitId własnym identyfikatorem jednostki reklamowej.

Zdarzenia reklam pełnoekranowych z nagrodą

Za pomocą FullScreenContentCallback możesz nasłuchiwać zdarzeń cyklu życia, takich jak wyświetlenie lub zamknięcie reklamy. Aby otrzymywać powiadomienia o tych zdarzeniach, przed wyświetleniem reklamy ustaw RewardedInterstitialAd.fullScreenContentCallback. Ten przykład implementuje każdą metodę i rejestruje komunikat w konsoli:

ad.fullScreenContentCallback = FullScreenContentCallback(
  onAdShowedFullScreenContent: (ad) {
    // Called when the ad showed the full screen content.
    debugPrint('Ad showed full screen content.');
  },
  onAdFailedToShowFullScreenContent: (ad, err) {
    // Called when the ad failed to show full screen content.
    debugPrint('Ad failed to show full screen content with error: $err');
    // Dispose the ad here to free resources.
    ad.dispose();
  },
  onAdDismissedFullScreenContent: (ad) {
    // Called when the ad dismissed full screen content.
    debugPrint('Ad was dismissed.');
    // Dispose the ad here to free resources.
    ad.dispose();
  },
  onAdImpression: (ad) {
    // Called when an impression occurs on the ad.
    debugPrint('Ad recorded an impression.');
  },
  onAdClicked: (ad) {
    // Called when a click is recorded for an ad.
    debugPrint('Ad was clicked.');
  },
);

Reklama displayowa

RewardedInterstitialAd jest wyświetlana jako nakładka na całą zawartość aplikacji i jest umieszczana statycznie. Nie można jej więc dodać do drzewa widżetów Flutter. Możesz wybrać, kiedy wyświetlić reklamę, wywołując show(). RewardedInterstitialAd.show() przyjmuje OnUserEarnedRewardCallback, który jest wywoływany, gdy użytkownik otrzyma nagrodę. Pamiętaj, aby zaimplementować tę funkcję i przyznać użytkownikowi nagrodę za obejrzenie reklamy.

_rewardedInterstitialAd?.show(
  onUserEarnedReward: (AdWithoutView view, RewardItem rewardItem) {
    debugPrint('Reward amount: ${rewardItem.amount}');
  },
);

Po wywołaniu show() reklamy Ad wyświetlanej w ten sposób nie można usunąć programowo. Wymaga ona danych wejściowych użytkownika. RewardedInterstitialAd można wyświetlić tylko raz. Kolejne wywołania funkcji show spowodują wywołanie onAdFailedToShowFullScreenContent.

Gdy dostęp do reklamy nie jest już potrzebny, należy ją usunąć. Najlepszym rozwiązaniem jest wywołanie dispose() w wywołaniach zwrotnych FullScreenContentCallback.onAdDismissedFullScreenContent i FullScreenContentCallback.onAdFailedToShowFullScreenContent.

[Opcjonalnie] Weryfikowanie wywołań zwrotnych weryfikacji po stronie serwera (SSV)

Aplikacje, które wymagają dodatkowych danych w wywołaniach zwrotnych weryfikacji po stronie serwera , powinny korzystać z funkcji danych niestandardowych w reklamach z nagrodą. Każda wartość ciągu znaków ustawiona w obiekcie reklamy z nagrodą jest przekazywana do parametru zapytania custom_data wywołania zwrotnego SSV. Jeśli nie ustawiono wartości danych niestandardowych, wartość parametru zapytania custom_data nie będzie obecna w wywołaniu zwrotnym SSV.

Poniższy przykładowy kod pokazuje, jak ustawić opcje SSV po wczytaniu reklamy pełnoekranowej z nagrodą:

RewardedInterstitialAd.load(
  adUnitId: "_adUnitId",
  request: AdRequest(),
  rewardedInterstitialAdLoadCallback: RewardedInterstitialAdLoadCallback(
    onAdLoaded: (ad) {
      ServerSideVerificationOptions _options =
          ServerSideVerificationOptions(
            customData: 'SAMPLE_CUSTOM_DATA_STRING',
          );
      ad.setServerSideOptions(_options);
      _rewardedInterstitialAd = ad;
    },
    onAdFailedToLoad: (error) {},
  ),
);

Zastąp SAMPLE_CUSTOM_DATA_STRING swoimi danymi niestandardowymi.

Pełny przykład na GitHubie

Reklama pełnoekranowa z nagrodą