Z nagrodą

Reklamy z nagrodą to reklamy, z którymi użytkownicy mogą wchodzić w interakcję w zamian do nagród w aplikacji. W tym przewodniku widać, jak zintegrować reklamy z nagrodą z Ad Managera w aplikacji Flutter.

Zawsze korzystaj z reklam testowych

Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie reklam, aktywne reklamy. Jeśli tego nie zrobisz, możemy zawiesić Twoje konto.

Najłatwiejszym sposobem wczytania reklam testowych jest użycie specjalnego identyfikatora testowego reklamy z nagrodą:

  • /6499/example/rewarded

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

Wczytywanie reklamy

Ten przykład wczytuje reklamę z nagrodą:

class RewardedExampleState extends State<RewardedExample> {
  RewardedAd? _rewardedAd;

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = '/6499/example/rewarded';

  /// Loads a rewarded ad.
  void loadAd() {
    RewardedAd.loadWithAdManagerAdRequest(
        adUnitId: adUnitId,
        adManagerAdRequest: const AdManagerAdRequest(),
        adLoadCallback: RewardedAdLoadCallback(
          // Called when an ad is successfully received.
          onAdLoaded: (ad) {
            debugPrint('$ad loaded.');
            // Keep a reference to the ad so you can show it later.
            _rewardedAd = ad;
          },
          // Called when an ad request failed.
          onAdFailedToLoad: (LoadAdError error) {
            debugPrint('RewardedAd failed to load: $error');
          },
        ));
  }
}

Zdarzenia reklamy z nagrodą

Za pomocą FullScreenContentCallback możesz monitorować cykl życia zdarzenia, np. wyświetlenie lub odrzucenie reklamy. Ustaw RewardedAd.fullScreenContentCallback przed wyświetleniem reklamy, aby otrzymać powiadomienia o tych wydarzeniach. W tym przykładzie zaimplementowano każdą metodę i rejestruje do konsoli:

class RewardedExampleState extends State<RewardedExample> {
  RewardedAd? _rewardedAd;

  // TODO: replace this test ad unit with your own ad unit.
  final adUnitId = '/6499/example/rewarded';

  /// Loads a rewarded ad.
  void loadAd() {
    RewardedAd.loadWithAdManagerAdRequest(
        adUnitId: adUnitId,
        adManagerAdRequest: const AdManagerAdRequest(),
        adLoadCallback: RewardedAdLoadCallback(
          // Called when an ad is successfully received.
          onAdLoaded: (ad) {
            ad.fullScreenContentCallback = FullScreenContentCallback(
              // Called when the ad showed the full screen content.
              onAdShowedFullScreenContent: (ad) {},
              // Called when an impression occurs on the ad.
              onAdImpression: (ad) {},
              // Called when the ad failed to show full screen content.
              onAdFailedToShowFullScreenContent: (ad, err) {
                // Dispose the ad here to free resources.
                ad.dispose();
              },
              // Called when the ad dismissed full screen content.
              onAdDismissedFullScreenContent: (ad) {
                // Dispose the ad here to free resources.
                ad.dispose();
              },
              // Called when a click is recorded for an ad.
              onAdClicked: (ad) {});

            debugPrint('$ad loaded.');
            // Keep a reference to the ad so you can show it later.
            _rewardedAd = ad;
          },
          // Called when an ad request failed.
          onAdFailedToLoad: (LoadAdError error) {
            debugPrint('RewardedAd failed to load: $error');
          },
        ));
  }
}

Reklama displayowa

RewardedAd wyświetla się w formie nakładki na całą zawartość aplikacji i jest jest umieszczony statycznie; więc nie można go dodać do drzewa widżetów Flutter. Dostępne opcje wybierz, kiedy wyświetlić reklamę, wywołując show(). Funkcja RewardedAd.show() przyjmuje wartość OnUserEarnedRewardCallback, która jest wywoływana, użytkownik otrzymuje nagrodę. Pamiętaj, aby zaimplementować tę funkcję i nagrodzić użytkownika za po obejrzeniu reklamy.

_rewardedAd.show(onUserEarnedReward: (AdWithoutView ad, RewardItem rewardItem) {
  // Reward the user for watching an ad.
});

Po wywołaniu funkcji show() nie można usunąć obiektu Ad wyświetlonego w ten sposób automatycznie i wymaga danych wejściowych użytkownika. Pole RewardedAd można wyświetlić tylko raz. Kolejne wywołania wywołają onAdFailedToShowFullScreenContent.

Reklamę należy wyrzucić, gdy dostęp do niej nie jest już potrzebny. Sprawdzona metoda dotyczące czasu połączenia z użytkownikiem dispose() jest w FullScreenContentCallback.onAdDismissedFullScreenContent i FullScreenContentCallback.onAdFailedToShowFullScreenContent wywołań zwrotnych.

Znakomicie. Możesz już wyświetlać w swojej aplikacji reklamy z nagrodą.