Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

Webアプリケーションエンジニアが自動広告とads.txtについて調べたメモ

最近仕事でads.txtをいじる機会がありました.折角なのでちゃんと調べるかと思い調べたところそこそこの分量になったのでブログに公開することにします.

調べたメモなので誤解や間違った記述があるかもしれません.違っていたらご指摘いただけると幸いです.



自動広告…………の前に純広告

いったん純広告について理解しよう.純と付くと純喫茶とかが連想されるけど,インターネットで一般的な自動広告と対比したレトロニムみたいなものだと思ってもらえればよい.要するに普通の広告のことだ.

そもそも広告というビジネスには,売り手と買い手が存在する.広告の枠を売りたいパーソンと広告の内容を見てもらいたいパーソンである.

従来であれば,これらは各自がバラバラに内容・期間・対価について契約していた. 例えばJRの電車には広告があるが,これはJRの広告部門(子会社)と,宣伝したい会社とが契約して出ているはずで,勝手に出ているわけではない.

こういう枠ごとに契約を交わす広告の流通(?)形態を特に純広告と呼ぶようになっている.自動広告が多くなっているインターネットでも,ページごとに契約を行うということがあり,それを指す場合に純広告という言葉が使われる.

よく使う用語,概念

  • 広告枠
    • 一度は目にしたことがあるあの四角い枠.
    • 広告主にとってはおカネを払って買いたいものである.
    • Webページの管理人にとってはおカネを稼いでほしいものである.
  • Advertiser
    • 広告を出したい人.「広告主」は同義語.
    • 広告枠という商品を求めている人なので,Demand sideと呼ばれることがある.
  • Publisher
    • 広告枠を売りたい人.「媒体」は同義語.
    • 広告枠という商品を供給している人なので,Supply Sideと呼ばれることがある.
  • 広告在庫
    • Advertiserは無限に広告を出したいわけではなく,ある程度の「効果」を見込めればそれでよい
    • 広告がどれだけ見られたか(インプレッション)を単位として,「20000回見られたらよい」といった考え方をする
    • その「20000回」はAdvertiserが抱えている「在庫」だと考えることができる
    • Advertiserはなるだけ在庫を捌いてしまいたい
  • クリエイティブ
    • 実際に配信される広告の画像のこと
    • なんで形容詞が名詞として通用してるのかは古来よりの謎である

自動広告

前述の自動広告では,AdvertiserとPublisherが個別にマッチングを行い,契約を行う必要があったので,手間であった.

そのうち,銀行が人々からおカネを集めて運用して利息を返すビジネスを始めたように,広告枠というものも一種の商品として流通するようになった. 後述する様々な仕組みで広告枠の運用を自動化し,直接AdvertiserとPublisherとが契約を交わすことのない形態を,自動広告と呼び,「なんかAdvertiserが任せてるうちに謎の仕組みにより広告が掲載されて,Publisherにおカネが支払われる」仕組みになった.現在のWeb広告の主流である.

アドネットワーク

複数の広告枠を集めたもの,もしくはそれを運用する業者をアドネットワークと呼ぶ.複数の広告枠という商品を束ねた商品だと考えるとよい.イメージとしては投資信託に近いかも?

アドネットワーク自体が1つの商品のようなものなので,アドネットワークも複数存在している.

Publisherは,アドネットワークと契約することで,枠が売れ残るという状況を避けることができ,安定して収入を得られる,というメリットを享受できるようになった.

Advertiserは,アドネットワークと契約することで,うまく枠を入手できずに想定していた量の広告を出稿できない(広告在庫を余らせてしまう)ことを防げる,というメリットを享受できるようになった.

ところが,Advertiserは直接枠を指定できないので,粗悪な枠をつかまされる(例えばエロサイトに自治体の広告を出してしまう)といったことが発生したり,粗悪でないにしても質の悪い(コンバージョンしにくい)枠を買ってしまう(例えば男性向け製品の広告のために女性向けサイトの枠を買ってきてしまう),というデメリットが生じることは避けられなかった.アドネットワークはそんなに賢くないので,Advertiserにとって柔軟な広告出稿を行うことができなかった.

イメージとしては,「とにかく20000回見てもらえれば良いですから,どっかに掲載してください」といってJRと契約する,みたいな感じ*1.JRは手持ちの電車の適当な位置に広告を置いてくれるけど,当然JRにしか広告は載らない.

アドエクスチェンジ

エクスチェンジ == 取引所.Tokyo Stock Exchangeは東京証券取引所だし,New York Stock Exchangeはニューヨーク証券取引所だ.電力やゴルフ会員権の取引所だってあるんだぞ.

取引所(とりひきじょ)は、一般に商品や証券の需要と供給を一定の場所に集約することにより取引成立の機会を多くし、一物一価の価格形成が行われるようにする物的施設である。 取引所 - Wikipedia

というわけでアドエクスチェンジとは,広告枠を取引してうまいこと取引がたくさん成立するようにし,広告枠に適正な価格が付くようになる仕組みである.

具体的には,アドエクスチェンジには複数のアドネットワークが加盟しており,アドエクスチェンジに参加しているPublisherのWebページでインプレッションが発生すると,その1インプレッション分の枠をめぐってオークションが行われ,勝ったAdvertiserがその広告枠を買って出稿する,という流れで枠の売買が行われる.ついに広告枠をめぐる市場が発生したのである.アドエクスチェンジというのは実際のサービスである場合もあれば,そういうシステムの仕組みを指す言葉でもあるので,必ずしも「アドエクスチェンジという単一のサービス」が存在しているわけではなく,別々のサービスがそれぞれアドエクスチェンジとよばれる仕組みの一翼を担っている,という場合もある.

ここで,広告枠の取引単位は「インプレッション」に統一されており,インプレッションにおカネを払う,という形態になる.クリックにおカネを払ったりする場合もあったが,アドエクスチェンジではインプレッションにおカネを支払う形式に統一され,柔軟な取引が可能になっている.

AdvertiserとPublisherは,広告枠が市場原理で価格決定されることにより,より適正な価格で取引ができる,というメリットを享受できるようになった.

さらにAdvertiserは,単一のアドネットワークよりもはるかに広い範囲の広告枠を買うことができる,というメリットを享受できるようになった.

しかしながら,Advertiserの「こういう人が見るであろう枠に出稿したい」とか,Publisherの「なるだけ枠の価格を上げたい」という欲求はまだ満たされないままである.

DSP/SSP

このへんからは大分曖昧になってくる.というのも明確に「こういうのがDSPです・これはDSPではないです」みたいな定義はなくて,現状そういう分類ができる,という程度の話でしかないため.まあやっていきましょう.

証券取引所は東京にも大阪にもニューヨークにもロンドンにもある.アドエクスチェンジも同じである.

こうした状況で,Advertiserはなるだけ効果のある枠を買いたいし,Publisherはなるだけ枠に稼いできてほしい.そのためのプラットフォームがそれぞれの側に誕生することとなった.

SSP

Publisherの利益を最大化するために出現した基盤がSSP(Supply Side Platform)である.SSPの責務は,なるだけ高く,Publisherが持つ枠を売り捌くことである.もちろん,いろんなSSP事業者がいる.

SSPはインプレッションが発生すると,連携する複数のDSP(後述)に入札依頼を発し,そのうち最も高値(高値といってもこれはそれぞれの市場価格である)をつけたDSPを採用し(ここで責務は果たされて)広告のクリエイティブをDSPから受け取り,配信する.

やった!Publisherは一番高い価格で枠を売り捌くことができたぞ!

あれ?アドエクスチェンジは?と思ったそこのあなた!実際はSSPはアドエクスチェンジに近い存在であり,アドエクスチェンジが進化してSSPになったと考えても良さそう.(このへんの説明,実は誰も分かってないのではないか?) アドエクスチェンジという仕組みがSSP/DSPという枠組みに再編された,ということもできそう.

DSP

Advertiserの利益を最大化するために出現した基盤がDSP(Demand Side Platform)である.DSPの責務は,なるだけ安く,事前の指示やクリック状況などに従ってより効果が高いと判断された広告枠を購入することである. Advertiserは「20代後半,独身男性,ITに強い,ネコが好き」といった条件をDSPに設定して広告枠を入札させる.するとDSPは適切な枠を見付けてきて購入してくるというわけ.他にも分析などの様々な機能がある.もちろん,いろんなDSP事業者がいる.

各DSPはSSPから入札依頼を待ち,一度入札依頼が届くと,DSPの中でまたオークションを行い,条件にマッチするようなクリエイティブの中から,最も高値のクリエイティブを選択する.

Ad fraud

長かった!!!ついにads.txtの話ができそうだ.理解度テストをしましょう.

  • 自動広告は高度な自動入札によって自動配信され,インプレッション単位でおカネが動いている
  • もはや純広告のように,出稿場所などを都度交渉することは稀である
  • すなわち,Advertiserにとって,広告が「本当に」どこかにいるPublisherの枠に出ているのかを確信するのは困難になったということを意味する

ここまではわかるかな?じゃあ今からワルの帽子を被って考えてください.実在しなかったり持ってもいない広告枠を出品してどっかのカモAdvertiserに買ってもらい,広告を出したふりをしてしらばっくれれば広告料を獲れるのでは???わかりますか? こういう架空のインプレッションを計上しておカネをゲットするのをAd fraud(広告詐欺)と呼ぶ.詐欺広告とは違うからね.広告出したって言ってるけど全然出してないやん!という詐欺のこと.

他人のドメインを名乗るAd fraud

Ad fraudにもいろいろあるのだけれど,そのうちの1つが「他人のドメインを名乗って広告費を騙し取る」というもの.いったいどういうこと?

まず広告配信の流れを見ていこう.

  1. ネットサ~フィンしてきたユーザが枠のインプレッションを発生させて今まさに広告が配信されようとする
  2. ページに埋まってたSSPの広告コードが起動する.「ここのページでインプレッション発生してるのですが誰か買いませんか?こういうユーザが閲覧していて,僕のSSPアカウントはここです」というデータがSSPを通じて各DSPに予告される
  3. DSP側ではそのユーザに見合った,なおかつ入札を勝ち抜けそうな高値のクリエイティブを選出し,SSPに入札する
  4. SSPは最も高値で枠に入札したDSPを選出し,「あなたの勝ちなのでその値段で売ります,クリエイティブください」と言う
  5. DSPはクリエイティブを送信しつつ,クリエイティブの配信カウントを+1する
  6. WindymeltのブラウザにゲーミングPCの広告が表示される
  7. 定期的に,配信カウント数に応じて,AdvertiserはDSPそしてSSPアカウントを通じてPublisherに広告費用を支払う

ちょっと待て!なんとここには重大な疑念があるぞ!本当にそいつその枠持ってんのか?

枠を表示するシステム(ドメインの持ち主・Webサイト)と広告枠を売ってくるシステム(SSP)と広告枠を買って画像をくれるシステム(DSP)とは切り離されているので,GoogleのCEOではないのだけれど,Googleの枠でインプレッション発生中!!!カネは俺にくれ!!!という偽リクエストを送ることで,偽物の枠を売ることができてしまうのだ.DSPが受け取るのは「インプレッション発生中!!」という情報だけで,サイトとSSPとの関係性など知る術もないので,信じるしかない.信じてたら50%くらい偽物だった,みたいな事件もある.

  • SSPアカウントの所有権と枠の所有権との両方があって初めて正しい広告枠が成り立つ
    • 所有権を持たないSSPアカウントを名乗った場合: 知らない人のために広告が配信され,もらえるはずの広告費はどこかへ行く
    • 所有権を持たない枠を名乗った場合: 持ってもいない枠にインプレッションを偽造!しかも不正に広告費をゲットだ!

これじゃ困る!!!!!おしまいだ!!!!!

ads.txt

あなたそのSSPアカウントで本当にその枠持ってるんですか?ということを確認するためにはどうしたら良いだろう?つまるところ,WebページとSSPアカウントとを紐付けることができれば良いのだが…………

というわけでads.txtの登場.ちなみにadsは広告のadじゃなくてAuthorized Digital Sellersの略なので覚えとくとモテるかもしれません.

ads.txtは以下の要領で働く.

  • ads.txtをそのサイトに配置できるということはそのサイトの(=そのサイトの枠の)所有権を持っているということにほかならない
  • ads.txtにそのサイトが利用しているSSPのアカウントIDを記載しておくと,「確かにこのSSPアカウントはこのサイトを所有しているらしい」ということが分かるようになる
  • DSPはあらかじめads.txtをクロールしておき,SSPとサイトとの関係を把握しておく
    • SSPから「この枠に入札しませんか」と言われたときに本当に枠を持ってるSSPアカウントからの誘いだと確信できるようになる

やった!このSSPアカウントを使っています,という情報をWebサイトの所有権とともに保証することができた!

SPFレコード

所有権を証明できる場所でポリシーを宣言するみたいな仕組み,他にも見たことあるような気がする…………と思ってたけどこれSPFレコードだな.

  • SPFレコードをそのDNSゾーンに配置できるということはそのドメインの所有権を持っているということにほかならない
  • SPFレコードに「こういうSMTPサーバ使わせてもらってます」という情報を記載しておくと,「確かにこのドメインが送信するメールはこのSMTPサーバから届いても問題無さそう」ということが分かるようになる
  • メールを中継するSMTPサーバは,SPFレコードを確認してメールの送り主を検証する
    • 「このドメインのメールがこのサーバから来るはずないだろ」というふうに不正なメールを遮断できる

似たような仕組みってあるもんですね.

*1:当然ながらこれは例えです.JRがそんな事してるかは知らないです

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?