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

広告配信の データ基盤をつくる

mytk0u0
October 17, 2024
510

広告配信の データ基盤をつくる

pixivに広告を掲載できる運用型広告配信プラットフォーム「pixiv Ads」では、毎月200億件以上のログデータが記録され、加工され、活用されています。ここでは、このデータ基盤の全体像と、今のかたちに変化するまでの開発や意思決定の過程についてお話します。また、広告ログ特有の扱いの難しさや、それにどう立ち向かったかについても触れていきます。

mytk0u0

October 17, 2024
Tweet

Transcript

  1. • 社員やクライアントが広告配信実績を確認するため ◦ 消化金額・Imp・クリック・CV・etc… ◦ 消化金額の誤差は許容されない • 広告配信ロジックに活用するため ◦ 例:

    日別予算を1日かけて均等なペースで消化する仕組み • 広告配信状況をモニタリングするため 広告配信にはデータ基盤が必須
  2. 負荷や費用を抑えるための配信ログの設定 • タイムスタンプによるパーティショニング • クリック (clicked) ・CV (converted) の フラグによるクラスタリング

    • サンプリング用ハッシュ値によるクラスタリング 配信ログによるレポーティング abs(mod(farm_fingerprint(event_id), 100))
  3. - Looker上では「WHERE clicked OR converted OR ハッ シュ値 = 0」する

    (料金1/10程度、実際は割合可変) - Impのようなほとんどの指標は、1/100サンプリングで集 計した値を100倍して計算 - Click, CVは誤差が許されず、件数も少ないため、全件取 得するようにして誤差をなくす 配信ログによるレポーティング
  4. 集計処理クエリ (LookMLで遮蔽される) 配信ログによるレポーティング select 100 * countif(suid_cluster_key = 0) as

    count_imp, countif(clicked) as count_click, countif(converted) as count_cv from `配信ログ` where (clicked or converted or suid_cluster_key = 0)