カテゴリー: iOS

[Swift]動画広告を最後まで見たら何かするアレをAPPLOVINでやってみた

はじめに

こんにちは、nukkyです。

今回はタイトルの通り、アプリでよくある動画広告を最後まで見たらポイント付与とか機能解放とかアレするやつをAPPLOVINで実装して見たいと思います。

前提条件

Xcode 9.x
iOS 11 Simulator
Swift 4.0

準備

今回はAPPLOVINを使用するのでアカウントを取得してください。

https://www.applovin.com/jp/

公式ではCocoaPodsをつかっているので、
プロジェクトのPodfileに以下を追加してください。

pod 'AppLovinSDK'

追加したらターミナルから以下のコマンドを実行してください。

pod install --repo-update

ただ、CocoaPods使いたくないとか(私です)の為にマニュアル追加のためのフレームワークも用意されているので、CocoaPods使いたくない人も安心してください。

 

実装

Xcodeの設定

まずは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で動画広告実装して見ましたがいかがだったでしょうか。
登録から導入まで割と簡単なので検討中の方のお力になれれば幸いです。

nukky

シェア
執筆者:
nukky
タグ: Swift

最近の投稿

フロントエンドで動画デコレーション&レンダリング

はじめに 今回は、以下のように…

3週間 前

Goのクエリビルダー goqu を使ってみる

はじめに 最近携わっているとあ…

1か月 前

【Xcode15】プライバシーマニフェスト対応に備えて

はじめに こんにちは、suzu…

2か月 前

FSMを使った状態管理をGoで実装する

はじめに 一般的なアプリケーシ…

3か月 前