動画リワード広告: パブリッシャー向けスタートガイド

リワード広告は、メディエーション用に選択しているサードパーティ ネットワークからのみ利用可能です。

事前準備

サンプルをダウンロードする

サンプルアプリをダウンロードして、メディエーションが行われるリワード広告の動作をご確認ください。 動画リワード広告用に設定されているメディエーション アダプタ、広告ネットワーク固有の設定、広告 ID を含める必要があります。

プロジェクトにメディエーションを追加する

スタートガイドの「SDK を Xcode プロジェクトに追加する」の手順に沿って、Google Mobile Ads SDK をプロジェクトに読み込みます。

ネットワーク アダプタと SDK を追加する

これで、動画リワード広告の配信元として使用するすべての広告ネットワークの SDK とアダプタをダウンロードしてプロジェクトに追加する準備ができました。

ダウンロードしたネットワークのアダプタと SDK を Xcode に追加するには、プロジェクトを右クリックして [Add Files to Project] を選択します。

現時点では使用していなくても今後使用する可能性のあるネットワークは、そのアダプタと SDK を統合しておくことをおすすめします。 あらかじめ統合しておくと、AdMob アカウントで設定を変更するだけでそのネットワークの広告を配信できます(アプリのコードに変更を加える手間が省けます)。 ただし、SDK を追加した分だけアプリのバイナリサイズが増えるので、その点も考慮に入れてください。

ネットワークの設定を含める

選択したネットワークに必要なフレームワーク、コンパイラ フラグ、リンカフラグをすべて含める必要があります。 メディエーション対象にする広告ネットワークに必要な追加の設定をドキュメントで調べてください。

動画リワード広告をリクエストする

GADRewardBasedVideoAd はシングルトン設計を持ちます。次の例は、広告を読み込むためのリクエストが共有インスタンスに対して行われていることを示しています。

[[GADRewardBasedVideoAd sharedInstance] loadRequest:[GADRequest request]
                                       withAdUnitID:@"ca-app-pub-1234567890123456/1234567890"];

動画をプリロードできるように、loadRequest: をできるだけ早く(アプリのデリゲートの application:didFinishLaunchingWithOptions: メソッドなどで)呼び出すことを強くおすすめします。

イベント通知を設定する

イベント通知を設定するには、以下に太字で示した行を loadRequest: 呼び出しの前に挿入します。

[GADRewardBasedVideoAd sharedInstance].delegate = self;
[[GADRewardBasedVideoAd sharedInstance] loadRequest:[GADRequest request]
                                       withAdUnitID:@"ca-app-pub-1234567890123456/1234567890"];

GADRewardBasedVideoAdDelegate により、動画リワード広告のライフサイクル イベントが通知されます。 このデリゲートを設定してから広告を読み込む必要があります。 このデリゲートで最も重要なイベントは rewardBasedVideoAd:didRewardUserWithReward: で、これは、ユーザーが動画の視聴に対して報酬を受け取る必要があるときに呼び出されます。 このデリゲートで他のメソッドを実装することもできます。

GADRewardBasedVideoAdDelegate: で利用可能な各イベントをログに記録するサンプルを、次に示します。

- (void)rewardBasedVideoAd:(GADRewardBasedVideoAd *)rewardBasedVideoAd
    didRewardUserWithReward:(GADAdReward *)reward {
  NSString *rewardMessage =
      [NSString stringWithFormat:@"Reward received with currency %@ , amount %lf",
          reward.type,
          [reward.amount doubleValue]];
  NSLog(rewardMessage);
}

- (void)rewardBasedVideoAdDidReceiveAd:(GADRewardBasedVideoAd *)rewardBasedVideoAd {
  NSLog(@"Reward based video ad is received.");
}

- (void)rewardBasedVideoAdDidOpen:(GADRewardBasedVideoAd *)rewardBasedVideoAd {
  NSLog(@"Opened reward based video ad.");
}

- (void)rewardBasedVideoAdDidStartPlaying:(GADRewardBasedVideoAd *)rewardBasedVideoAd {
  NSLog(@"Reward based video ad started playing.");
}

- (void)rewardBasedVideoAdDidClose:(GADRewardBasedVideoAd *)rewardBasedVideoAd {
  NSLog(@"Reward based video ad is closed.");
}

- (void)rewardBasedVideoAdWillLeaveApplication:(GADRewardBasedVideoAd *)rewardBasedVideoAd {
  NSLog(@"Reward based video ad will leave application.");
}

- (void)rewardBasedVideoAd:(GADRewardBasedVideoAd *)rewardBasedVideoAd
    didFailToLoadWithError:(NSError *)error {
  NSLog(@"Reward based video ad failed to load.");
}

追加のパラメータ

広告ネットワークでは、Google Mobile Ads SDK で提供されるターゲット設定パラメータ以外の、追加のターゲット設定パラメータや入力をサポートしている場合があります。そのような広告ネットワークでは、GADAdNetworkExtras プロトコルを実装するクラスを提供している場合があります。 広告リクエストを作成するときは、GADAdNetworkExtras サブクラスのインスタンスを各広告ネットワークに渡すことができます。

広告ネットワークにより、muteAudio パラメータをサポートしているクラスが作成されているとします。 この例として、そのクラス GADMMyAdNetworkExtras を呼び出しましょう。 このオブジェクトは次のように作成してリクエストに追加できます。

GADRequest *request = [GADRequest request];
GADMMyAdNetworkExtras *myAdNetworkExtras = [[GADMMyAdNetworkExtras alloc] init];
myAdNetworkExtras.muteAudio = YES;
[request registerAdNetworkExtras:myAdNetworkExtras];

上記のコード スニペットでは、例として GADMMyAdNetworkExtras クラスが使用されています。バンドルで想定されているネットワークに対応するアダプタ クラスに置き換えます。

アダプタで追加のパラメータがサポートされている場合は、広告ネットワークのドキュメントを参照して、そのネットワークに追加のパラメータを渡す方法を確認してください。

動画リワード広告を表示する

動画リワード広告を表示する前に、読み込みが完了していることを確認することをおすすめします。 isReady メソッドにより、動画リワード広告リクエストが正常に行われたかどうかが示されます。

if ([[GADRewardBasedVideoAd sharedInstance] isReady]) {
  [[GADRewardBasedVideoAd sharedInstance] presentFromRootViewController:self];
}

Unity との統合

動画リワード広告メディエーションを Unity プロジェクトに組み込む手順については、動画リワード広告メディエーションをご覧ください。

フィードバックを送信...