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

  関連記事

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 / …

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

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

gtm
【タグマネジメント】GoogleTagManagerでイベントリスナーを使う

タグマネジメントとは タグマネジメントとは、広告効果測定ツールや、サイト解析ツールなどで利用している『HTMLタグ』の管理を行うことをいいます。 タグマネジメントツールでは、Webサイトの全ページに各タグマネジメントツールが発行する1つのタグを設置するだけで、あらゆるHTMLタグを管理画面上で登録す …