前回の第1回目で VAST が動作する仕組みを大まかに説明しました。
今回から VAST4.2 の各要素を見ていきます。
TL;DR
- ラップ(3pas入稿)するか否かで、
<Wrapper>
か<InLine>
を使い分ける- ラップする場合でも各種計測タグなどは利用できる
- VAST4では
<AdServingId>
という広告リクエストごとに一意のIDが必須になる - VAST4では
<UniversalAdID>
というシステム間で一意のクリエイティブを示すIDが必須になる
VAST xmlの構成要素
アウトラインの説明を優先するため、AdPodやメザニンファイル等の指定方法は次回以降、個別に説明します。
また、要素の数が多すぎるので、必須のものをメインにして説明します。
どの要素を使って広告を組み立てるかはPlayerに委ねられるのため、基本的にはID等を除き
<AdTitle>○○商品の施策 9月</AdTitle>
のような内部情報ではなく、
<AdTitle>商品名</AdTitle>
のようなユーザーが見ても違和感ないような情報を使ったほうがいいと思います。
VASTタグ
<?xml version="1.0" encoding="UTF-8"?>
<VAST version='4.2' xmlns:xs='<http://www.w3.org/2001/XMLSchema>' xmlns='<http://www.iab.com/VAST>'>
<Ad id='1'>
<InLine>
<!-- InLineタグ -->
</InLine>
</Ad>
</VAST>
<VAST>
がrootになり、その配下に <Ad>
か <Error>
のどちらかを指定します。
Ad内にはさらに <Wrapper>
もしくは <InLine>
を指定することができます。
-
<Error>
- noad(返す広告がなし)を表す
-
<Ad>
-
<Wrapper>
- VASTは自身のVASTから他のVASTを参照することができます(前回参照)。ラップする場合、このタグでVASTのURLを指定する
- ラップする場合でもImp計測や各種ビーコンの測定はできるため、
<Impression>
や<Creatives>
は利用できる
- ラップする場合でもImp計測や各種ビーコンの測定はできるため、
- VASTは自身のVASTから他のVASTを参照することができます(前回参照)。ラップする場合、このタグでVASTのURLを指定する
-
<InLine>
- 実際に配信するクリエイティブ情報を載せる
-
id
: 識別子 -
sequence
: Ad Pod。重要な機能なのでまた説明します。 -
adType
: video or audio or hybrid。省略した場合はvideo。
-
InLine / Wrapper タグ内
<InLine>
<AdSystem version="1.0">AD_SYSTEM</AdSystem>
<Error><![CDATA[https://example.com/error]]></Error>
<Impression id="Impression-ID"><![CDATA[https://example.com/track/impression]]></Impression>
<Pricing model="cpm" currency="USD">
<![CDATA[ 25.00 ]]>
</Pricing>
<AdServingId>AD_SYSTEM-00000000-0000-0000-0000-000000000000</AdServingId>
<AdTitle>AD_TITLE</AdTitle>
<Creatives>
<!-- Creativesタグ -->
</Creatives>
</InLine>
<Wrapper>
<AdSystem version="1.0">AD_SYSTEM</AdSystem>
<Error><![CDATA[http://example.com/error]]></Error>
<Impression id="Impression-ID"><![CDATA[http://example.com/track/impression]]></Impression>
<Creatives>
<!-- Creativesタグ -->
</Creatives>
<VASTAdTagURI>
<![CDATA[http://example.com/vast_inline.xml]]>
</VASTAdTagURI>
</Wrapper>
-
<AdSystem>
- 配信システム名
- 必須
- InLine or Wrapperで利用化
-
<AdTitle>
- 広告タイトル
- メディアによってはこの名前が表示される場合がある
- 余白が足りない場合は
<Description>
(オプション)を使う
- 必須
- InLineでのみ利用化
- 広告タイトル
-
<AdServingId>
- 広告ライフサイクルのID
- 1つのImpから各種トラッキングやクリック等を、複数システムをまたいで一意に識別できるID
-
<InLine>
で一意である必要があるため、AdPod等で複数<InLine>
がある場合は別々のAdServingIdを付与する必要がある - GUIDもしくはAdSystem+GUIDなどの、十分にユニーク、もしくはタイムスタンプと組み合わせてユニークな値が推奨
-
[ADSERVINGID]
マクロで展開可能
- InLineのみ利用化で必須
- 広告ライフサイクルのID
-
<Impression>
- Impビーコン
- Imp通知用URIを指定
- InLine or Wrapperで利用化
- Impビーコン
-
<Category>
- 広告のカテゴリ
- カテゴリIDまたはラベルを指定
-
authority
でカテゴリリストを渡す必要あり
- パブリッシャーが要求しない限りはオプション
- InLineでのみ利用化
- 広告のカテゴリ
-
<Pricing>
- RTBの価格を指定できるらしい
- OpenRTB等の一般的なRTBの仕組みでは既に価格設定のプロトコルがあるため、何に使うかはよく分からない
- オプション
- InLine or Wrapperで利用化
- RTBの価格を指定できるらしい
-
<ViewableImpression>
- PlayerがViewableと判断した段階で発火するビーコン
-
<Viewable>
- 視聴可能を満たした場合に発火
-
<NotViewable>
- 視聴可能に満たなかった場合に発火
-
<ViewUndetermined>
- 視聴可能か判断できなかった場合に発火
-
- オプション
- InLine or Wrapperで利用化
- PlayerがViewableと判断した段階で発火するビーコン
Creativesタグ内
<Creatives>
<Creative id="1" sequence="1" adId="1">
<UniversalAdId idRegistry="example.com">11111111<UniversalAdId>
<!-- Linearタグ -->
<!-- Companionタグ -->
</Creative>
</Creatives>
-
<Creatives>
- クリエイティブそのものを示す、
<Creative>
をまとめる要素 - InLineの場合は1つ必須、Wrapperの場合は 0 or 1
-
<Creative>
- 複数存在できる
-
id
- クリエイティブを提供する 広告システム を識別するためのID
-
adId
- クリエイティブ を識別するための広告システムで一意のID。後述のUniversalAdIdが導入され、システムをまたいだ一意のIDが特定できるようになったので、今後不要かもしれない
-
sequence
- 広告を再生する順番
- Ad sequenceとCreative sequenceが非常に紛らわしいが、この Creative sequence はPodではなく、単純に1クリエイティブとして複数コンテンツを再生する
-
<UniversalAdID>
- システム間で一意のクリエイティブ識別子
- 一意のクリエイティブを示す文字列
- 必須
-
idRegistry
- カタログ化されているサイトのURL
- idRegistryのサービスドメインとIDでシステム間で一意になる理解
- e.g.
<UniversalAdId idRegistry="ad-id.org">CNPA0484000H<UniversalAdId>
<UniversalAdId idRegistry="clearcast.co.uk">AAA/BBBB123/030<UniversalAdId>
- システム間で一意のクリエイティブ識別子
- クリエイティブそのものを示す、
あとがき
今回はVAST全体の構成と、Creativesタグまでを説明しました。
Creative内には 前々回 話した Linear、NonLinear(廃止)、Companionと複数のパターンがあるため、次回に分割して説明します。
Supershipではプロダクト開発やサービス開発に関わる人を絶賛募集しております。
Supership 採用サイト