Upgrade to Pro — share decks privately, control downloads, hide ads and more …

マイクロアドのアドテクを支える技術

tosametal
October 05, 2019

 マイクロアドのアドテクを支える技術

以下イベントの発表資料
https://camphor.connpass.com/event/146724/

tosametal

October 05, 2019
Tweet

More Decks by tosametal

Other Decks in Programming

Transcript

  1. #microad_CAMPHOR アジェンダ • 基本の説明 • RTB ◦ 概要 ◦ オーディエンス

    ◦ 広告配信制御 ◦ 広告配信計測 • マイクロアドにおけるRTBの実現 ◦ データパイプライン ◦ DSPの広告選択 2
  2. #microad_CAMPHOR 基本用語 広告主: 広告を出すことで製品の認知度を上げたりブランドの形成を行いたい 媒体主: 運営しているメディアに広告を掲載して利益を得たい インプレッション: 広告の表示のこと クリック: 広告のクリックのこと

    コンバージョン: 広告により成果を達成すること LP: Landing Pageのこと 4 サイトを表示すると広告のインプレッションが発生 →ユーザはその広告をクリック →LPに遷移 →LPから会員登録を行いコンバージョン
  3. #microad_CAMPHOR RTBとは • Real Time Biddingの略 • 広告枠が表示されるたびにオークションが行われ 最も高い値段をつけられた広告が表示される 8

    リーマンショックで金融系のエンジニアが広告業界に 流れ込み、株取引の仕組みをインターネット広告に取 り入れたと言われている
  4. #microad_CAMPHOR SSPとDSP RTBで誰がオークションを行うのか? SSP(Supply Side Platform): メディアの収益を最大化するプラットフォーム DSP(Demand Side Platform):

    広告配信を最適化するプラットフォーム 9 SSP DSP 出来るだけ収益を 高くしたい 出来るだけ安く効 果的に配信したい メディア 広 告
  5. 11 SSP DSP1 DSP2 DSP3 サイトA 転職広告 10円 50円 30円

    車広告 家広告 広告枠 STEP2 DSPはそれぞれ入札する広告とその金額を決定する RTBの処理フローのイメージ
  6. 12 SSP DSP1 DSP2 DSP3 サイトA 転職広告 10円 50円 30円

    車広告 家広告 車広告 STEP3 DSPはSSPにレスポンスを返す SSPはその中から最も高い値段の付いた広告を選択し、 表示する RTBの処理フローのイメージ
  7. #microad_CAMPHOR OpenRTB 13 SSP DSP1 DSP2 DSP3 - RTBにおける標準的な仕様 -

    SSP⇄DSPのプロトコル - オブジェクトの定義
  8. #microad_CAMPHOR Cookie Sync 17 SSP Sync Table SSPとDSPという異なるシステム間でユーザを識別するために行わ れる RTBとは別のタイミングでクッキーシンクが行われている

    シンクされたIDをRTB時に使ってターゲティングなどに利用 DSP SSP DSP AAA XXX BBB YYY CCC ZZZ 広告主のサイト SSPでID=CCCのユーザ パラメータにIDを乗せ DSPにリダイレクト DSPでID=ZZZのユーザ
  9. #microad_CAMPHOR Cookieの扱い ITP(Intelligent Tracking Prevention) Safariでクロスサイトトラッキングを制限。3rd party cookieは1日で削除。 SameSite ChromeにおけるCookieの扱いを改善し、サイトがどのようにCookieを使用して

    いるかの透明性を高める。 GDPR(General Data Protection Regulation) IPアドレスやCookieなどのオンライン上での識別子も個人情報として扱う。 18
  10. #microad_CAMPHOR ターゲティング 位置情報ターゲティング デモグラフィックターゲティング リターゲティング etc... 21 広告主のサイト DSPの サーバ

    ユーザのアクセス履歴を蓄積 配信時に参照 リターゲティングの例 広告主のサイトを訪れたユーザを対象に広告配信
  11. 27 SSP DSP1 DSP2 DSP3 サイトA 転職広告 10円 50円 30円

    車広告 家広告 車広告 DSP2の Impression 計測サーバ impビーコンからのリクエスト DSPが落札額を知るために SSPでマクロの置換を行う
  12. 29 メディア メディア 広告 Viewable Impression 計測サーバ 初期表示時 広告は全体の20% だけ表示

    スクロールされ 全体の50%以上が1 秒以上表示された時 計測サーバにリクエ スト 下にスクロール 閾値が50%の場合
  13. #microad_CAMPHOR Product Impression計測 ダイナミック広告においては商品ごとの計測も可能 30 AD1 AD2 AD3 AD4 AD5

    AD6 右のボタン をクリック 最初に表示される広告 ボタンクリック後に表示される広告
  14. 37 log log log App App App データパイプライン全体像 ストリーム バッチ

    信頼性と性能のトレードオフ at least once ユニークIDによる重複排除
  15. 40 log log log App App App データパイプライン全体像 kafkaからhadoopもリアルタイムで データを処理

    hadoopに蓄積されたログに対して digdagを用いてETL処理を行う raw orc リアルタイムに転送され たデータはrawテーブル バッチでrawからorcに変 換する際に重複排除
  16. #microad_CAMPHOR ワークフロー管理 ワークフロー管理に求められる機能 • スケジュール実行 • タスク同士の依存を制御 • 実行履歴の保持 マイクロアドではDigdagを使用

    - ワークフローをコードで管理 - UIから再実行が可能 https://speakerdeck.com/tosametal/digdagdeetlchu-li-wosuru 41 digdagのワークフロー定義ファイル例
  17. #microad_CAMPHOR DSPの広告選択 44 SSP DSP サイト 50円 車広告 車広告 ここで何をしているの

    ? (1)リクエストが有効か判定...不正なフォーマット、不正なサイト、不正なユーザ (2)配信可能な広告を選択...広告の設定やSSPのリクエスト内容に応じた広告を入札候補にする (3)広告の値付け...候補となった広告全てに金額をつける (4)入札広告の選択...値段のついた広告のなかから最も高いものを選択
  18. 45 デシリアライズ RTB リクエスト RTB レスポンス 不正リクエスト除 外 •Bot •不正Site/App

    など シリアライズ 最高値の広告を 選択 RequestAdapter GateKeeper Targeting ResponseAdapter Selector Filter 1回のRTBリクエストごとに以下の処理を行う 条件に一致しない 広告を除外 配信条件に合致 する広告を選択