こんにちは、nukkyです。
今回はタイトルの通り、アプリでよくある動画広告を最後まで見たらポイント付与とか機能解放とかアレするやつをAPPLOVINで実装して見たいと思います。
Xcode 9.x
iOS 11 Simulator
Swift 4.0
今回はAPPLOVINを使用するのでアカウントを取得してください。
公式ではCocoaPodsをつかっているので、
プロジェクトのPodfileに以下を追加してください。
pod 'AppLovinSDK'
追加したらターミナルから以下のコマンドを実行してください。
pod install --repo-update
ただ、CocoaPods使いたくないとか(私です)の為にマニュアル追加のためのフレームワークも用意されているので、CocoaPods使いたくない人も安心してください。
まずはAPPLOVINのSDKキーをプロジェクトに登録してください。
登録方法はinfo.plistに「AppLovinSdkKey」をKeyとして追加しTypeを「String」、ValueにSDKキーを入れてください。
SDKキーはAPPLOVINの管理画面のAccountタブのKeysにあります。
次に、XcodeのBuildSettingsから「Other Linker Flags」を検索し「-ObjC」を追加してください。
AppDelegateでSDKを初期化します。
まずはSDKをimportします。
import AppLovinSDK
didFinishLaunchingWithOptionsでSDKの初期化を行います。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // AppLovin initialize ALSdk.initializeSdk() return true }
動画広告の再生管理用のクラスを作成します、
広告の読み込みと動画の再生管理用に「ALAdLoadDelegate」、「ALAdVideoPlaybackDelegate」を継承します。
import UIKit import AppLovinSDK class AdViewController: UIViewController, ALAdLoadDelegate, ALAdVideoPlaybackDelegate {
「ALAdLoadDelegate」、「ALAdVideoPlaybackDelegate」のDelegateメソッドを追加します。
func adService(_ adService: ALAdService, didLoad ad: ALAd) { // 広告の読み込み完了 } func adService(_ adService: ALAdService, didFailToLoadAdWithError code: Int32) { // 広告の読み込みエラー } func videoPlaybackBegan(in ad: ALAd) { // 動画広告再生前に呼ばれる } func videoPlaybackEnded(in ad: ALAd, atPlaybackPercent percentPlayed: NSNumber, fullyWatched wasFullyWatched: Bool) { // 動画広告終了時に呼ばれる }
viewDidLoadで広告の読み込みと動画再生のDelegateを設定します。
override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. ALSdk.shared()?.adService.loadNextAd(ALAdSize.sizeInterstitial(), andNotify: self) ALInterstitialAd.shared().adVideoPlaybackDelegate = self }
広告の読み込みが終わったら再生するようにDelegateメソッドの中身を変更します。
func adService(_ adService: ALAdService, didLoad ad: ALAd) { ALInterstitialAd.shared().showOver(UIApplication.shared.keyWindow!, andRender: ad) }
動画終了のDelegateメソッドに動画広告を最後まで見たかチェックするようにします
func videoPlaybackEnded(in ad: ALAd, atPlaybackPercent percentPlayed: NSNumber, fullyWatched wasFullyWatched: Bool) { // 動画を最後まで見たかチェック if wasFullyWatched { // ここであれこれする } }
APPLOVINでは広告の種類とかテスト用の設定とかアプリごとに管理する機能があります。
使い方については公式が動画にて紹介しているので一度確認して見てください
リンク
APPLOVINで動画広告実装して見ましたがいかがだったでしょうか。
登録から導入まで割と簡単なので検討中の方のお力になれれば幸いです。