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公式ページに従って準備しました。

[shell]
$ sudo gem install cocoapods
$ pod setup
[/shell]

  • サンプル動画プレーヤーアプリ
    今回はSwiftを使用するので、でSample Player / Swiftをダウンロードします。
    Google Ads IMA SDK iOS Samples v3.1

SDKをXcode projectに追加する

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

[shell]$ pod init[/shell]

podsディレクトリ内のPodfileが

[text]target ‘SampleVideoPlayer’ do
end[/text]

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

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

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

[shell]$ pod install[/shell]

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

  関連記事

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

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

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

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

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

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

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

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

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

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

アドテク問題(広告表示編)

アドテクエンジニア向けの問題を考えました。 お題は「広告表示」です。 以下お題に沿った「アドタグ」を作成し、広告を表示してみてください。 全部で9問あるので、興味のある人はやってみてください。 難易度は、ちょうどいいくらいです。 全部できた人は、採用担当までご連絡ください。 Q1.バナー広告を表示し …

解説、VMAP!

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

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

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

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

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

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

こんにちは、田畑です。   前回のエントリから早一か月、どのように書こうかなぁと考えているうちに時間が経ってしまいました。前回はそもそも自分の部署が何をしているのかといったところを書いたので、今回は実際に情報収集の場として利用している各種カンファレンスの様子について書いてみました。 &nb …