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

  関連記事

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

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

Safari10(iOS10)のインライン動画再生についてまとめてみた

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

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

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

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

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

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

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

ネイティブ広告と記事広告の違いってなに?!

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

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

プライバシーが保護されていると期待できなくなってしまった国とは? 『オトナの常識、消費者プライバシー保護(前編)』はこちらから            

ES5とES6でアドタグを作ってみた

はじめに アドテク問題(広告表示編)のQ7を元にネイティブ広告を表示するアドタグをES5とES6で作ってみました。 処理の流れ 大きな処理の流れは以下の通り 広告要素取得処理 サーバからタイトル/説明文/画像URLの取得を行う フォーマット処理 取得した要素を表示するページに最適化した形にフォーマッ …

「初めての動画広告~①VAST編~」

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

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

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