RewardVideo For iOS - unigeniee/Geniee-iOS-SDK GitHub Wiki

iOS動画リワードの実装

動画リワード広告とは、アプリ内で使用可能なアイテムやポイントをユーザーに付与する代わりに、約15秒〜30秒程度の動画広告を表示する広告フォーマットです。 GenieeSDKでは、メディエーション機能により各アドネットワークの動画リワード広告を表示します。

実装準備

ネイティブ広告の実装準備は、下記スタートガイドから行ってください。 Geniee SDK をプロジェクトにインストールする必要があります。 スタートガイド

  • 各アドネットワーク用SDK,アダプター 動画リワードでは配信で使用するアドネットワーク毎のSDKの設定とアダプターの設定が必要です。 以下よりアドネットワークのリンクから導入方法を参照して下さい。
アドネットワーク              検証済みバージョン    
maio 1.4.0
AppLovin 5.1.1
Unity Ads 2.3.0
AdColony 3.3.5
CAReward 2.3.1
Tapjoy 12.0.0
Vungle 6.2.0
Nend 5.0.2
AMoAd playable1.0.0

サンプルプロジェクト

Objective-C

https://github.com/geniee-ssp/Geniee-iOS-SDK/tree/master/sample/use_cocoapods/objectivec

Swift

https://github.com/geniee-ssp/Geniee-iOS-SDK/tree/master/sample/use_cocoapods/swift

クラスとプロトコル

iOS動画リワード配信には以下のクラスを使用します。 GNSRequest.h GNSRewardVideoAd.h GNSRewardVideoAdDelegate.h

実装

ヘッダーファイルをimportし、Delegateを追加する

例:ViewController.h

#import <GNAdSDK/GNSRewardVideoAd.h>
#import <GNAdSDK/GNSRequest.h>
#import <GNAdSDK/GNSAdReward.h>
#import <GNAdSDK/GNSRewardVideoAdDelegate.h>
@interface ViewController <GNSRewardVideoAdDelegate>

Delegateメソッドを実装する

  • この実装はオプションです。 Reward VideoAd SDKに、Delegateを設定します。 下記コールバックをハンドリングしたい場合にコールバックをうける ViewController内のdelgateを実装して下さい。 *viewDidLoadに記述するとiOSのライフサイクル特性上,画面遷移後にviewDidLoadが実行されないため、delegateがセットされない場合があります。

例:Viewcontroller.m (viewWillAppear内に記述推奨)


viewWillAppeare(){
    [GNSRewardVideoAd sharedInstance].delegate = self;
}

SDKから通知を受け取るには、GNSRewardVideoAdDelegateのメソッドを実装します。

例:Viewcontroller.m


/// デリゲートでリワード動画広告のロード失敗を定義します。
- (void)rewardVideoAd:(GNSRewardVideoAd *)rewardVideoAd
    didFailToLoadWithError:(NSError *)error {
}

/// デリゲートでリワード動画広告のロードを定義します。
- (void)rewardVideoAdDidReceiveAd:(GNSRewardVideoAd *)rewardVideoAd {
}

/// デリゲートでリワード動画広告の再生開始を定義します。 (void)rewardVideoAdDidStartPlaying:(GNSRewardVideoAd *)rewardVideoAd {
}

/// デリゲートでリワード動画広告が閉じられることを定義します。
- (void)rewardVideoAdDidClose:(GNSRewardVideoAd *)rewardVideoAd {
}

/// デリゲートでリワード動画広告のユーザーに対する報酬付与を定義します。
- (void)rewardVideoAd:(GNSRewardVideoAd *)rewardVideoAd
    didRewardUserWithReward:(GNSAdReward *)reward {
}

動画リワード広告のロードリクエスト

ロードリクエストにZoneID(App ID)を設定して動画広告ロードリクエストします。

Note:

ロードリクエストには数秒以上かかる場合がありますので、アプリケーションのライフサイクルの早い段階で動画リワード広告をloadRequestします。

1つの動画広告が表示された後に別の動画広告を表示する場合は、もう一度loadRequestを実行する必要があります。

GNSRequest *request = [GNSRequest request];    
   [[GNSRewardVideoAd sharedInstance] loadRequest:request
                                       withZoneID:@"YOUR_SSP_ZONE_ID"];

動画リワード広告表示

動画広告が準備完了であることを確認し、動画広告を表示します。


if ([[GNSRewardVideoAd sharedInstance] canShow]) {
   [[GNSRewardVideoAd sharedInstance] show:self];
}

ユーザーに報酬を付与

動画広告で収益を最大化するには、動画広告視聴者に報酬を与えることが重要です。 GNSAdRewardには以下の項目が含まれます。

  • reward.type:SSPの通貨タイプ設定
  • reward.amount:SSPの通貨額設定

動画広告視聴者に報酬を与えるには、didRewardUserWithRewardコールバックメソッドを使用します。


- (void)rewardVideoAd:(GNSRewardVideoAd *)rewardVideoAd
didRewardUserWithReward:(GNSAdReward *)reward
{
   NSLog(@"ViewController: Reward received type=%@, amount=%lf"
    ,reward.type
    ,[reward.amount doubleValue]);
}

ATS設定

Xcodeプロジェクトの Info.plistファイルに以下を追加してください:

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsLocalNetworking</key>
  <true/>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
</dict>
⚠️ **GitHub.com Fallback** ⚠️