Interstitial mit Prämie (Beta)

Interstitial mit Prämie ist ein Anzeigenformate mit Incentives, bei denen Sie Prämien für automatisch an natürlichen App-Übergängen. Im Gegensatz zu Anzeigen mit Prämie müssen aktiviert werden, damit Sie ein Interstitial mit Prämie sehen können.

Vorbereitung

  • Google Mobile Ads SDK 7.60.0 oder höher
  • Arbeiten Sie den Startleitfaden durch.

Implementierung

Im Folgenden sind die wichtigsten Schritte zum Einbinden von Interstitial-Anzeigen mit Prämie aufgeführt:

  • Anzeige laden
  • [Optional] SSV-Callbacks validieren
  • Für Rückrufe registrieren
  • Anzeige einblenden und Prämienereignis bearbeiten

Anzeige laden

Das Laden einer Anzeige erfolgt mithilfe der statischen loadWithAdUnitID:request:completionHandler:-Methode für Klasse GADRewardedInterstitialAd. Für die Lademethode ist Ihre Anzeigenblock-ID erforderlich, GAMRequest-Objekt und ein Abschluss-Handler der aufgerufen wird, wenn das Laden der Anzeige erfolgreich ist oder fehlschlägt. Das geladene Das Objekt GADRewardedInterstitialAd wird in der Vervollständigung als Parameter bereitgestellt. -Handler. Im folgenden Beispiel sehen Sie, wie ein GADRewardedInterstitialAd geladen wird: Ihre ViewController-Klasse.

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController {

  private var rewardedInterstitialAd: GADRewardedInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()

    do {
      rewardedInterstitialAd = try await GADRewardedInterstitialAd.load(
        withAdUnitID: "/21775744923/example/rewarded-interstitial", request: GAMRequest())
    } catch {
      print("Failed to load rewarded interstitial ad with error: \(error.localizedDescription)")
    }
  }
}

Objective-C

#import "ViewController.h"

@interface ViewController ()
@property(nonatomic, strong) GADRewardedInterstitialAd* rewardedInterstitialAd;
@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];

  [GADRewardedInterstitialAd
      loadWithAdUnitID:@"<var label='the ad unit ID'>/21775744923/example/rewarded-interstitial</var>"
                request:[GAMRequest request]
      completionHandler:^(
          GADRewardedInterstitialAd* _Nullable rewardedInterstitialAd,
          NSError* _Nullable error) {
        if (!error) {
          self.rewardedInterstitialAd = rewardedInterstitialAd;
        }
      }
  ];
}

[Optional] Callbacks für die serverseitige Überprüfung validieren

Apps, die zusätzliche Daten serverseitig Verifizierung Callbacks die Methode Datenfunktion von Anzeigen mit Prämie. Beliebiger Stringwert, der in einer Anzeige mit Prämie festgelegt ist wird an den custom_data-Abfrageparameter des SSV-Callbacks übergeben. Falls nein festgelegt ist, kann der Wert des Suchparameters custom_data nicht im SSV-Callback vorhanden sind.

Im folgenden Codebeispiel wird gezeigt, wie benutzerdefinierte Daten für eine Anzeige mit Prämie festgelegt werden. Interstitial-Anzeigenobjekt vor der Anzeigenanfrage.

Swift

do {
  rewardedInterstitialAd = try await GADRewardedInterstitialAd.load(
    withAdUnitID: "/21775744923/example/rewarded-interstitial", request: GAMRequest())
  let options = GADServerSideVerificationOptions()
  options.customRewardString = "SAMPLE_CUSTOM_DATA_STRING"
  rewardedInterstitialAd.serverSideVerificationOptions = options
} catch {
  print("Rewarded ad failed to load with error: \(error.localizedDescription)")
}

Objective-C

[GADRewardedInterstitialAd
    loadWithAdUnitID:@"/21775744923/example/rewarded-interstitial"
              request:GAMRequest
    completionHandler:^(GADRewardedInterstitialAd *ad, NSError *error) {
      if (error) {
        // Handle Error
        return;
      }
      self.rewardedInterstitialAd = ad;
      GADServerSideVerificationOptions *options =
          [[GADServerSideVerificationOptions alloc] init];
      options.customRewardString = @"SAMPLE_CUSTOM_DATA_STRING";
      ad.serverSideVerificationOptions = options;
    }];

Für Rückrufe registrieren

Um Benachrichtigungen über Präsentationsereignisse zu erhalten, müssen Sie das Protokoll GADFullScreenContentDelegate und weisen Sie es dem fullScreenContentDelegate-Eigenschaft der zurückgegebenen Anzeige an. Die Das GADFullScreenContentDelegate-Protokoll verarbeitet Rückrufe, wenn die Anzeige erfolgreich oder nicht erfolgreich präsentiert und wenn sie geschlossen wird. Die folgenden Code veranschaulicht, wie das Protokoll implementiert und der Anzeige zugewiesen wird:

Swift

import GoogleMobileAds
import UIKit

class ViewController: UIViewController, GADFullScreenContentDelegate {

  private var rewardedInterstitialAd: GADRewardedInterstitialAd?

  override func viewDidLoad() {
    super.viewDidLoad()

    do {
      rewardedInterstitialAd = try await GADRewardedInterstitialAd.load(
        withAdUnitID: "/21775744923/example/rewarded-interstitial", request: GAMRequest())
      self.rewardedInterstitialAd?.fullScreenContentDelegate = self
    } catch {
      print("Failed to load rewarded interstitial ad with error: \(error.localizedDescription)")
    }
  }

  /// Tells the delegate that the ad failed to present full screen content.
  func ad(_ ad: GADFullScreenPresentingAd, didFailToPresentFullScreenContentWithError error: Error) {
    print("Ad did fail to present full screen content.")
  }

  /// Tells the delegate that the ad will present full screen content.
  func adWillPresentFullScreenContent(_ ad: GADFullScreenPresentingAd) {
    print("Ad will present full screen content.")
  }

  /// Tells the delegate that the ad dismissed full screen content.
  func adDidDismissFullScreenContent(_ ad: GADFullScreenPresentingAd) {
    print("Ad did dismiss full screen content.")
  }
}

Objective-C

@interface ViewController () <GADFullScreenContentDelegate>
@property(nonatomic, strong) GADRewardedInterstitialAd *rewardedInterstitialAd;
@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  // Do any additional setup after loading the view.

  [GADRewardedInterstitialAd
      loadWithAdUnitID:@"/21775744923/example/rewarded-interstitial"
                request:[GAMRequest request]
      completionHandler:^(
          GADRewardedInterstitialAd *_Nullable rewardedInterstitialAd,
          NSError *_Nullable error) {
        if (!error) {
          self.rewardedInterstitialAd = rewardedInterstitialAd;
          self.rewardedInterstitialAd.fullScreenContentDelegate = self;
        }
      }];
}

/// Tells the delegate that the ad failed to present full screen content.
- (void)ad:(nonnull id<GADFullScreenPresentingAd>)ad
didFailToPresentFullScreenContentWithError:(nonnull NSError *)error {
    NSLog(@"Ad did fail to present full screen content.");
}

/// Tells the delegate that the ad will present full screen content.
- (void)adWillPresentFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {

    NSLog(@"Ad will present full screen content.");
}

/// Tells the delegate that the ad dismissed full screen content.
- (void)adDidDismissFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
  NSLog(@"Ad did dismiss full screen content.");
}

Anzeige einblenden und Prämienereignis bearbeiten

Bei der Präsentation Ihrer Anzeige müssen Sie ein GADUserDidEarnRewardHandler-Objekt angeben für den Umgang mit der Prämie.

Der folgende Code stellt die beste Methode zum Anzeigen von Interstitial-Anzeige.

Swift

func show() {
  guard let rewardedInterstitialAd = rewardedInterstitialAd else {
    return print("Ad wasn't ready.")
  }

  // The UIViewController parameter is an optional.
  rewardedInterstitialAd.present(fromRootViewController: nil) {
    let reward = rewardedInterstitialAd.adReward
    print("Reward received with currency \(reward.amount), amount \(reward.amount.doubleValue)")
    // TODO: Reward the user.
  }
}

Objective-C

- (void)show {
  // The UIViewController parameter is nullable.
  [_rewardedInterstitialAd presentFromRootViewController:nil
                                userDidEarnRewardHandler:^{

                                  GADAdReward *reward =
                                      self.rewardedInterstitialAd.adReward;
                                  // TODO: Reward the user.
                                }];
}

Nächste Schritte

Weitere Informationen zum Datenschutz für Nutzer