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サーバから一定時間応答が得られなかった場合に発生します。