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エンジニア採用情報

  関連記事

playlist
解説、VMAP!

どうも動画といえば僕です。Rhiannonです。 前回、前々回と動画ファイル自体についての記事を書きましたが、今回はVMAPについて解説しようと思います。 VMAPって聞いた事あるけど仕様書が英語だし読むの大変だと思っていた方の理解の一助になれば幸いです。   VMAPとはなんぞや? VM …

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

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

surveillance
オトナの常識、消費者プライバシー保護(前編)

どうも、広告技術研究室のダーハラです。    何やってる人? 広告技術研究室の業務は多岐に渡るのですが、僕の仕事は海外のアドテクノロジーの動向や関連する技術環境の変化を調べて、経営陣や開発部隊にフィードバックするといったことを主な業務としています。 とてもやり甲斐のある仕事なのですが、仕事 …

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

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

hashed_potato
【DMP】IDのハッシュってなに

アドテクに関わる方であれば、よく耳にするであろう「ハッシュ」をシンプルに説明してみようと思います。 とはいえ「ハッシュ」は広いので、ここでは「IDのハッシュ」に焦点を当てます。 「ハッシュ/hash(動詞)」はそもそも「細切れにする」というような意味を持ちます。(名詞だと「細切れのもの」) ハッシュ …

IMG_4673
Ad Tech Conference~海外アドテク系カンファレンスに行ってきた②~

はい、テクノロジー戦略部の田畑です。 アドテク系イベントに行ってきた②ということで、前回書ききれなかったところを書きます。   ~前回のおさらい~ 1.11月にNYのアドテク系イベント3つに行ってみた。 2.Fraud、Viewability、Programatic Directがキーワー …

6914441342_605f947885
Treasure Dataの新機能(Data Tank)をAudienceOneのレポート機能で利用した話

Data Tankとは? Treasure Dataの新機能でTreasure Dataのプラットフォーム上に構築されたデータマートです。 Tableau等のBIツールとの接続を想定されており、AWSでいうところのRedshift的なものだと考えるとわかりやすいかと。 Data TankはPostg …

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

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

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

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

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

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