メインコンテンツまでスキップ

v5 SDK移行ガイド

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


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

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

最小サポートOS

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

Xcodeの最小バージョン

サポートされるXcodeの最小バージョンは 16.2 となります。(2025-02-04 VAMP v5.3.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サーバから一定時間応答が得られなかった場合に発生します。