VAMP SDK

Video Ad Mediation Platform Software Development Kit

v5 SDK移行ガイド

v4からv5へのSDK移行ガイド


このページでは、iOS向けVAMP SDKのv5バージョンへの移行について説明します。
v5正式リリース v5.1.0 は2024年2月にリリースされました。

SDKバージョンv4からv5への移行

最小サポートOS

サポートする最小のiOSバージョンは 12 になります。

Xcodeの最小バージョン

サポートされるXcodeの最小バージョンは 15.1 となります。

広告のロードおよび表示に関わる新しいAPI

v5から新しいAPIを使用して広告のロードおよび表示をすることができます。

+ (void) loadWithPlacementID:(NSString *)placementID request:(VAMPRequest *)request delegate:(nullable id<VAMPRewardedAdLoadDelegate>)delegate;

+ (nullable VAMPRewardedAd *) rewardedAdOfPlacementID:(NSString *)placementID;

- (void) showFromViewController:(UIViewController *)viewController delegate:(nullable id<VAMPRewardedAdShowDelegate>)delegate;

広告のロード

VAMPRewardedAd.load(withPlacementID:request:delegate:)メソッドを使用して広告のロードを実行します。
placementIDは発行されたVAMPの広告枠IDを指定します。

let placementID = “Your Placement ID”

let request = VAMPRequest()
VAMPRewardedAd.load(withPlacementID: placementID, request: request, delegate: loadDelegate)

delegateに後述するVAMPRewardedAdLoadDelegateプロトコルを実装したオブジェクトを渡すことで、ロードに関するイベントを受け取ることができます。
特にイベントを受け取る必要がないときはnilを渡します。

広告の表示

広告のロードが完了している場合、 show(from:delegate:) メソッドを使用して広告の表示ができます。

if let rewardedAd = VAMPRewardedAd.of(placementID: placementID) {
    rewardedAd.show(from: viewController, delegate: showDelegate)
}

VAMPRewardedAd.of(placementID:) メソッドで VAMPRewardedAd オブジェクトを取得します。
このメソッドは広告のロードが完了している場合、 VAMPRewardedAd オブジェクトを返し、
まだロードされていない場合は nil を返します。
delegateに後述する VAMPRewardedAdShowDelegate プロトコルを実装したオブジェクトを渡します。

VAMPRewardedAdLoadDelegateプロトコルを実装する

必要に応じて VAMPRewardedAdLoadDelegate メソッドを実装します。
このプロトコルのメソッドはすべて optional です。

extension ViewController: VAMPRewardedAdLoadDelegate {
    /// 広告表示が可能になると通知されます。
    ///
    /// - Parameter placementID: 広告枠ID
    func rewardedAdDidReceive(withPlacementID placementID: String) {
    }

    /// 広告の取得に失敗すると通知されます。
    ///
    /// 例) 広告取得時のタイムアウトや、全てのアドネットワークの在庫がない場合など。
    ///
    /// - Parameters:
    ///   - placementID: 広告枠ID
    ///   - error: `VAMPError` オブジェクト
    func rewardedAdDidFailToLoad(withPlacementID placementID: String, error: VAMPError) {
    }

    /// RTBはロードが完了してから1時間経過すると、広告表示ができても無効扱いとなり、収益が発生しません。
    ///
    /// この通知を受け取ったらロードからやり直してください。
    ///
    /// - Parameter placementID: 広告枠ID
    func rewardedAdDidExpire(withPlacementID placementID: String) {
    }
}

VAMPRewardedAdShowDelegateプロトコルを実装する

VAMPRewardedAdShowDelegateメソッドを実装します。
このプロトコルのメソッドは、rewardedAdDidComplete(_:)メソッド以外は optional です。
インセンティブ付与のコードをrewardedAdDidComplete(_:)メソッドに実装します。

extension ViewController: VAMPRewardedAdShowDelegate {
    /// 広告の表示に失敗すると通知されます。
    ///
    /// 例) 視聴完了する前にユーザがキャンセルするなど。
    ///
    /// - Parameters:
    ///   - rewardedAd: `VAMPRewardedAd` オブジェクト
    ///   - error: `VAMPError` オブジェクト
    func rewardedAd(_ rewardedAd: VAMPRewardedAd, didFailToShowWithError error: VAMPError) {
    }

    /// インセンティブ付与が可能になると通知されます。
    ///
    /// ※ユーザが途中で再生をスキップしたり、動画視聴をキャンセルすると発生しません。
    /// ※アドネットワークによって発生タイミングが異なります。
    ///
    /// - Parameter rewardedAd: `VAMPRewardedAd` オブジェクト
    func rewardedAdDidComplete(_ rewardedAd: VAMPRewardedAd) {
        // TODO: インセンティブ付与
    }

    /// 広告の表示が開始されると通知されます。
    ///
    /// - Parameter rewardedAd: `VAMPRewardedAd` オブジェクト
    func rewardedAdDidOpen(_ rewardedAd: VAMPRewardedAd) {
    }

    /// 広告が閉じられると通知されます。
    /// ユーザキャンセルなどの場合も通知されるため、インセンティブ付与は `VAMPRewardedAdShowDelegate#rewardedAdDidComplete:`
    /// で判定してください。
    ///
    /// - Parameters:
    ///   - rewardedAd: `VAMPRewardedAd` オブジェクト
    ///   - adClicked: 広告がクリックされたかどうか
    func rewardedAd(_ rewardedAd: VAMPRewardedAd, didCloseWithClickedFlag adClicked: Bool) {
    }
}

VAMPUserFeatureクラスおよびVAMPGender列挙型を削除しました

VAMPUserFeatureクラスを削除しました(代替はありません)。
VAMPGender列挙型を削除しました(代替はありません)。

VAMPRewardedAdDelegateプロトコルの一部のメソッドを非推奨にしました

VAMPRewardedAdDelegateプロトコルの以下のメソッドを非推奨にしました。

- (void) rewardedAdDidBeginPlayback:(VAMPRewardedAd *)rewardedAd;

代わりに - (void) rewardedAdDidOpen:(VAMPRewardedAd *)rewardedAd; メソッドを使用してください。

VAMPクラスの一部のメソッドを非推奨にしました

VAMPクラスの以下のメソッドを非推奨にしました(代替はありません)。

 + (void) setMetaAudienceNetworkBidding:(BOOL)useBidding testMode:(BOOL)testMode;

 + (BOOL) useMetaAudienceNetworkBidding;

 + (BOOL) isMetaAudienceNetworkBiddingTestMode;

VAMPVideoConfigurationクラスを非推奨にしました

VAMPVideoConfigurationクラスを非推奨にしました(代替はありません)。

エラーコードにVAMPErrorCodeRequestTimeoutを追加しました

VAMPErrorCodeRequestTimeoutは広告のロードをリクエストした後、
AdGenerationサーバから一定時間応答が得られなかった場合に発生します。