開発者コンソール

VAST広告コンポーネント


VAST広告コンポーネント

 IV: コンポーネントを追加して機能性を高める

Fire App Builderでは、VAST広告テンプレート(Video Ad Serving Template)がサポートされています。VASTとは、さまざまなビデオ広告主をサポートする標準プロトコルです。Interactive Advertising Bureau(IAB)では、VASTを次のように説明しています。

IAB Digital Video Ad Serving Template(VAST)仕様は、デジタルビデオプレーヤーに広告を配信するためのユニバーサルXMLスキーマで、VAST形式の広告レスポンスを実行するときに期待されるビデオプレーヤーの動作を記述します。VAST 3.0では、デジタルビデオのインストリーム広告のマーケットプレイスを実現する重大な機能が追加されています。これにより、コストのかかる技術的な障壁が軽減されるため、広告主はその分のコストをビデオ広告に充てることができます。Digital Video Ad Serving Template(VAST)3.0(英語のみ)

たとえば、アプリでDoubleClick広告を表示しようとしている場合は、VAST広告コンポーネントを使用して実現できます。

VASTのサポート範囲

Fire App BuilderのVAST統合機能は、VASTの(膨大な)仕様のすべてに対応しているわけではありません。Fire App Builderでは、VASTの機能のサブセットだけがサポートされます。また、Fire App BuilderのVAST統合機能は、IABによる正式な認定は受けていません。

サポートされるVASTの機能

Fire App Builderは、VAST 3.0(英語のみ)とVMAP(英語のみ)の広告タグをサポートしています。具体的に、次の機能はすべてFire App Builderでサポートされています。

  • VAST 2.0および3.0スキーマのプリロール広告、ミッドロール広告、ポストロール広告の再生
  • リニア広告
  • VMAP広告タグの解決

VMAP(Video Multiple Ad Playlist)には、ほかの広告タグへの参照が含まれています。VMAP広告によって参照される広告タグは、VAST形式の場合もあれば、別の独自形式の場合もあります。Fire App Builderでサポートされるのは、VAST形式の解析だけです。別の形式をサポートする必要がある場合は、VASTコンポーネントを拡張することができます。

サポートされないVASTの機能

Fire App Builderでは、VASTの次の機能はサポートされません

  • スキップ可能なリニアクリエイティブ、コンパニオン広告、ノンリニア広告などのリニアでない広告
  • 広告内のすべてのインタラクション
  • 302リダイレクト

トラッキングイベント

VASTコンポーネントは、リニアビデオ広告の再生中に次のイベントをトリガーします。

  • インプレッション
  • エラー
  • 開始(25%、中間、75%、終了)
  • 広告ブレーク

ビデオ広告の再生中、ユーザーは、VASTベースの広告内でイベントの再生・一時停止・クリックを行うことができます。

次の表に、コンポーネントによるさまざまなイベントのサポート状況を示します。

トラッキングイベント サポート
creativeView なし
start あり
midpoint あり
firstQuartile あり
thirdQuartile あり
complete あり
breakstart あり
breakend あり
error あり
mute なし
unmute なし
pause なし
rewind なし
resume なし
fullscreen なし
expand なし
collapse なし
acceptInvitation なし
close なし

VAST広告のユーザーエクスペリエンス

プリロール広告が構成されている場合、ユーザーが [今すぐ観る] ボタンをクリックすると、VAST広告テンプレートによって短時間の広告が配信されます。

VAST広告テンプレートは、ユーザーが選択したメディアの再生が始まる前にビデオを表示します。このスクリーンショットは広告の代替画像です。VAST広告を構成すると、実際の広告に置き換えられます。

ビデオ広告が終了すると、ユーザーが選択したメディアの再生が始まります。

VAST広告の構成

  1. アプリにVAST広告コンポーネントを読み込みます。アプリにコンポーネントを読み込む方法の詳細については、コンポーネントを追加または削除するを参照してください。
  2. アプリにほかの広告コンポーネント(FreeWheelAdsComponent、PassThroughAdsComponent)が読み込まれている場合は削除します。詳細については、アプリ内のコンポーネントを追加または削除するを参照してください。

  3. VastAdsComponent > res > values > values.xml > values.xmlに移動します。ad_tagの文字列をコピーし、アプリのcustom.xmlファイル(res > values内)に貼り付けます。以下に例を示します。

    <string name="ad_tag">"https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&amp;iu=/124319096/external/single_ad_samples&amp;ciu_szs=300x250&amp;impl=s&amp;gdfp_req=1&amp;env=vp&amp;output=vast&amp;unviewed_position_start=1&amp;cust_params=deployment%3Ddevsite%26sample_ct%3Dlinear&amp;correlator="</string>
    

    サポートされている広告タグの例については、このGoogleプロジェクトのIMAサンプルタグ(英語のみ)を参照してください。

  4. ad_tag文字列の値を独自のVAST広告タグでカスタマイズします。

    VASTタグでは、次の文字をエンコードする必要があります。

    文字 エンコーディング
    " &quot;
    ' &apos;
    < &lt;
    > &gt;
    & &amp;
  5. 広告内のイベントの再生・一時停止・クリックをユーザーが実行できるようにするには、アプリのcustom.xmlファイル(res > values内)を開き、以下を追加します。

    <bool name="enable_key_events_on_ad_view">true</bool>
    <bool name="enable_play_state_overlay_on_ad_view">true</bool>
    

    これにより、広告レンダラーで再生/一時停止ボタンが有効になり、再生/一時停止/センターボタンが機能するようになります(デフォルトでは、この機能はオフになっています)。 イベントをウェブブラウザで開くには、次のセクションの ビデオクリックをMiniBrowserで開く方法を参照してください。

    アプリを実行すると、構成に従ってVAST広告が再生されます。

ビデオクリックをMiniBrowserで開く方法

Fire App Builderには、広告クリックを主としたユーザーの操作をサポートする、MiniBrowserというWebViewモジュールが用意されています。ユーザーがVAST広告内のリンクをクリックしたときに、MiniBrowserでリンク先のページを開くことができます(MiniBrowserは、ほかのモジュールで使用するように拡張することもできます)。

VAST広告に対するMiniBrowserサポートを追加するには、次の手順を実行します。

  1. 前のセクションのVAST広告の構成に記載されている手順に従います。最後の手順(#5)を完了して、広告内のイベントの再生・一時停止・クリックをユーザーが実行できるようにします。
  2. [Android] ビューで、Gradle Scriptsを展開し、build.gradle (Module: VastAdsComponent)ファイルを開きます。
  3. dependenciesオブジェクトで、以下に赤色で示すようにcompile project(':MiniBrowser')を追加します。

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile files('libs/mfXerces.jar')
        compile 'com.android.support:appcompat-v7:23.3.0'
    
        androidTestCompile('com.android.support.test:runner:0.4') {
            exclude group: 'com.android.support', module: 'support-annotations'
        }
        androidTestCompile('com.android.support.test:rules:0.4') {
            exclude group: 'com.android.support', module: 'support-annotations'
        }
        androidTestCompile 'junit:junit:4.12'
    
        compile project(':ModuleInterface')
        compile project(':AdsInterface')
        compile project(':DynamicParser')
        compile project(':Utils')
        compile project(':MiniBrowser')
    }
    
  4. もう一度Gradle Scriptsセクションを展開し、settings.gradle (Project: Settings)ファイルを開きます。
  5. 以下に赤色で示すように、MiniBrowserのエントリを追加します。

    include ':app', ':AdobeMobileLibrary',
            /* Frameworks */
            ':TVUIComponent',
            ':UAMP',
            /* Libraries */
            ':ContentModel',
            ':ContentBrowser',
            ':DynamicParser',
            ':DataLoader',
            ':Utils',
            ':Calligraphy',
            ':MiniBrowser',
            /* Interfaces */
            ':AuthInterface',
            ':AdsInterface',
            ':AnalyticsInterface',
            ':ModuleInterface',
            ':PurchaseInterface',
            /* Implementations */
            ':VastAdsComponent',
            ':AMZNMediaPlayerComponent',
            ':AdobePrimetimeFireTvSdkAuthComponent',
            ':OmnitureAnalyticsComponent',
            ':AmazonInAppPurchaseComponent'
    
    /* Frameworks */
    project(':TVUIComponent').projectDir = new File(rootProject.projectDir, '../TVUIComponent/lib')
    project(':UAMP').projectDir = new File(rootProject.projectDir, '../UAMP')
    
    /* Libraries */
    project(':ContentModel').projectDir = new File(rootProject.projectDir, '../ContentModel')
    project(':ContentBrowser').projectDir = new File(rootProject.projectDir, '../ContentBrowser')
    project(':DynamicParser').projectDir = new File(rootProject.projectDir, '../DynamicParser')
    project(':DataLoader').projectDir = new File(rootProject.projectDir, '../DataLoader')
    project(':Utils').projectDir = new File(rootProject.projectDir, '../Utils')
    project(':Calligraphy').projectDir = new File(rootProject.projectDir, '../TVUIComponent/Calligraphy')
    project(':MiniBrowser').projectDir = new File(rootProject.projectDir, '../MiniBrowser')
    
  6. アプリのcustom.xmlファイルで、resources内に次の要素を追加します。

    <string name="browser_class_name">com.amazon.android.minibrowser.WebViewHandlerActivity</string>
    <bool name="enable_key_events_on_ad_view">true</bool>
    <bool name="enable_play_state_overlay_on_ad_view">true</bool>
    <bool name="enable_browser_support_on_ad_view">true</bool>
    
  7. [Sync now] をクリックして、Gradleを再同期します。

これで、ウェブビューを起動するクリックイベントがあった場合に、イベントからMiniBrowserが起動されるようになりました。

VAST広告以外のコンポーネントでMiniBrowserを使用する方法

MiniBrowserは、主にVAST広告との対話を目的として作成されています。ただし、MiniBrowserをほかのコンポーネントで使用することもできます。そのためには、全体的には前のセクション(ビデオクリックをMiniBrowserで開く方法)と同じ手順に従いますが、VastAdsComponentsフォルダの代わりに、MiniBrowserを追加するコンポーネントのフォルダに変更を加えます。次に、com.amazon.android.MiniBrowser.WebViewHandlerActivityクラスを対象とし、必要なURIを指定して、startActivityにインテントを送信します。

MiniBrowserには個別のAmazonライセンス要件があります。これは、terms_of_use.htmlファイル(app > resources内)で確認できます。