Google IMA SDK で動画アプリに広告を入れてみた〜iOS編〜

     - アドテクノロジー , , , ,  


新卒のjotakaです。

スマホアプリに動画広告を出すためのSDKを導入してみたいと思います。
ここでのSDKはアプリへ簡単に機能追加するためのframeworkやlibraryと言う方がわかりやすいかもしれません。

アプリ開発者が動画広告用のSDKを使用するメリットとして、例えば動画広告の仕様であるVASTのことを詳しく知らなくとも、動画広告を掲載するアプリを開発できることなどがあげられます。

今回使用したSDKはGoogleのIMA (Interactive Media Ads) SDKです。
Google IMA SDKはアドサーバへ動画広告のリクエストおよびレスポンスの処理、広告再生のサポート、トラッキング処理等を可能にしてくれます。

松崎君がAndroid版をテストしているので、自分はiOS SDKのテストをしてみました。

Get Startedを参考に進めていきます。
このチュートリアルではサンプル動画プレーヤーアプリに対し、IMA SDKを導入し、プリロール動画広告を再生する。ということをしています。

そもそも私はXcodeやSwiftはもちろん、ソフトウェア開発も未経験なので、同様の方を想定し、手順を追って説明していきます。

事前準備

IMA iOS SDKをアプリに組み込むにあたって次のものを準備しました。

    • Xcode 6
      バージョン6.3.2がインストールされていました。
    • CocoaPods
      CocoaPodsはXcodeプロジェクトのライブラリ依存関係を管理するツールです。
      CocoaPods公式ページに従って準備しました。
$ sudo gem install cocoapods
$ pod setup
  • サンプル動画プレーヤーアプリ
    今回はSwiftを使用するので、でSample Player / Swiftをダウンロードします。
    Google Ads IMA SDK iOS Samples v3.1

SDKをXcode projectに追加する

SampleVideoPlayer.xcodeprojを含むディレクトリでpodsディレクトリを作成します。

$ pod init

podsディレクトリ内のPodfileが

target 'SampleVideoPlayer' do
end

となっているので、次のように書き換えて保存します。

target 'SampleVideoPlayer' do
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
pod 'GoogleAds-IMA-iOS-SDK', '~> 3.0.beta.14'
end

プロジェクトにインストールします。

$ pod install

これでPodsディレクトリの中にGoogleAds-IMA-iOS-SDKディレクトリができていました。
.xcworkspaceファイルをXcodeで開くと、SampleVideoPlayerとPods、2つのプロジェクトができています。

ViewController.swiftを書き換える

IMA SDKをインポートするために、XcodeのSampleVideoPlayer内にあるViewController.swiftを、Full sourceのコードに書き換えて上書き保存します。
https://developers.google.com/interactive-media-ads/docs/sdks/ios/quickstart?hl=ja#source

追加・書き換え内容の詳細はリンク先のガイド内でステップを踏んで説明されています。
流れとしては次のようになっていました。

    • IMA SDK frameworkの追加

アプリ側でimport frameworkを記述し、frameworkが使用できるようにします。

    • Content Playhead Trackerの定義

適切なタイミングで広告を流したりトラッキング情報をアドサーバに送るには、動画プレーヤーの再生状態を知る必要があります。
例えばpost-roll広告を出すためには、視聴完了をSDKに通知する必要があります。
そのためにContentPlayheadというクラスを使用しています。

    • 広告リクエスト

アドサーバURLを記述し、リクエストメソッドを実行します。この時点では広告の再生は行われません。VAST形式で返ってくるレスポンスを処理して、広告情報を保持するのが主な実行内容だと考えられます。

    • Ads Managerの作成

広告リクエストに成功したら、広告再生・表示の管理を行うIMAAdsManagerのインスタンスを作成します。

    • 広告の表示

任意のイベントタイミングで広告を再生開始します。また広告再生中は動画本編を停止しなければなりませんし、逆に広告が終わったら本編が再生再開されなければなりません。こうした指示もここで書いていきます。

iOSシミュレータでテストする

ここまでのSDK追加実装が完了ところで、XcodeのiOSシミュレータを実行し、SampleVideoPlayerアプリを開いてみましょう。
iOS Simulator Screen Shot 2015.06.11 8.10.41
再生ボタンを押すとプリロール動画広告が始まります。スキップ可能になるまでの5秒カウントダウンが表示されました。5秒経つと「Skip Ad」に変化します。

iOS Simulator Screen Shot 2015.06.11 8.10.46

IMA SDKの追加によって、アプリの動画プレーヤーに動画広告を出すことができました。
少しだけXcodeとSwiftのことが分かった気がしました。


DACエンジニア採用情報

  関連記事

Apple-Releases-Safari-10-Developer-Beta-3-for-OS-X-Yosemite-and-El-Capitan
Safari10(iOS10)のインライン動画再生についてまとめてみた

はじめに Safari10からvideoタグを用いたインライン動画再生ができるようになったので、挙動を調べてみました。 Safari 10.0 検証環境 項目 詳細 開発環境 Xcode8.0 検証端末 iPhone7 Simulator ブラウザ iOS Safari / UIWebView / …

iab-vast-logo
「初めての動画広告~①VAST編~」

2015年新卒入社の池田です。 「TVで動画コンテンツをみる時代」から「ネットで動画コンテンツをみる」時代になった今日このごろです。 「私もいっちょまえに動画広告を扱ってみたい・・・!!」と生意気にも思うようになりまして。 しかし、つい2か月前までド文系大学生だった池田は果たして動画広告を扱えるよう …

no image
【動画広告】VASTって何?

こんにちは、FlexOne推進部の近江です。 私は新卒入社2年目でアドサーバーや動画ソリューション(OVP)のサポート、開発を担当しています。 今回は動画広告のプロトコル「VAST」について書かせて頂きます。   ここ数年動画のくるくる詐欺がありましたが、昨年はHulu、ユーチューバー、見 …

cookie
【DMP】クッキー連携ってなに

  アドテクに関わる方であれば、必ず耳にするであろう「クッキー連携」をシンプルに説明してみようと思います。 クッキー連携は cookie sync(クッキーシンク、cookie synchronization の略)と呼ばれることも多いです。 Googleは cookie matching …

big-brother2
オトナの常識、消費者プライバシー保護(後編)

プライバシーが保護されていると期待できなくなってしまった国とは? 『オトナの常識、消費者プライバシー保護(前編)』はこちらから             正解はアメリカです。 スノーデン事件といえば、ご存じの方もいらっしゃるかと思います。 & …

20140930220910
AudieneOneでアドブロック利用者を抽出する訪問者セグメントを作ろう

はじめに iOS 9のコンテンツブロッカーによって盛り上がったアドブロック論争。アドブロック自体はPCブラウザ用プラグインで昔からできていたことなのですが、さらに普及していくのかもしれません。 アドブロックの仕組みが普及するのはインターネット業界全体の損失につながりかねない話ではあるのですが、その一 …

new-york-city-828776_1280
ネイティブ広告と記事広告の違いってなに?!

こんにちは、プラットフォーム・ワンの新卒1年目Yukaです!! ここ数年よく耳にし、さまざまな媒体で目にするネイティブ広告。 しかし、今までの記事広告といったいなにが違うのー?!?!?! ということで調べてみました。 ネイティブ広告(Native Ads) デザイン、内容、フォーマットが、媒体社が編 …

SCA_and_Discovery_after_return_to_flight,_2005
【DMP】ピギーバックってなに

アドテクに関わる方であれば、よく耳にするであろう「ピギーバック」をシンプルに説明してみようと思います。 「piggyback/ピギーバック」は 「おんぶ」「背負う」に当たる言葉です。 アドテクでピギーバックというと、タグのピギーバックのことを指すことが多いように思います。 タグは、サイトに導入する小 …

no image
SafeFrameでリッチ広告をセキュアに実現

アドサーバ(広告配信サーバ)は、通常iframeで広告のクリエイティブを配信している。(JS配信とかに対応しているアドサーバもある) 通常のセキュリティだとiframeの中身(srcで実際に表示されている側)がiframeを操作する事はできない。つまりexpandなどのリッチ広告、特に表示領域を変更 …

Chrome
アドブロッカーに対抗してアドチェッカーを作ってみた

iOS9のSafariでコンテンツブロック機能が登場し、サイト上の広告を非表示にするアドブロックの存在が世に広まりました。 これを機にCrystalを始めとする数々のアドブロッカーアプリが登場しています。 PCブラウザでもAdblock Plusを始め、ブラウザの拡張機能で広告を非表示にして表示速度 …