SlideShare a Scribd company logo
GMOプライベートDMPで挑戦した 
アドテク&ビッグデータのシステム
2 
●自己紹介片野道雄 
▪ GMOインターネット株式会社 
▪ 次世代システム研究室 
• チーフアーキテクト 
▪ 元はデータベースエンジニア 
• Oracle RAC, MySQL, PostgreSQL (with Slony-I), XtraDB (on 
Fusion-io), MySQL Cluster, MariaDB Galera Cluster 
• CDH (Hive, HBase, Impala) 
• 検証でCassandraとMongoDB
3 
●目次 
▪ プライベートDMPとは? 
▪ GMOプライベートDMP 
▪ 1st Party Cookie Syncに挑戦 
▪ Hadoopと発火の工夫 
▪ システム設計のノウハウ
4 
プライベートDMPとは? 
DWHとの違い 
タグ発火と 
広告配信 
用語集 
DMPの概要 
リタゲ(DSP) 
との違い
5 
先ず、アドテクについて用語を整理
6 
アドテク用語 
リスティング広告検索エンジンでの検索ワードに連動した広告。 
Google、Yahoo。 
ディスプレイ広告サイト上の広告。テキスト、バナー、動画の 
広告など。 
RTB (Real-Time 
Bidding) 
ディスプレイ広告におけるリアルタイム入札。 
→後述 
DSP (Demand-Side 
Platform) 
RTBの広告主側システム。→後述 
SSP (Supply-Side 
Platform) 
RTBの広告掲載側システム。→後述
7 
アドテク用語 
タグ 
サイトに仕込むimgタグやjavascriptタグ。 
サーバーにリクエストが送られ、トラッキン 
グや効果測定などで利用。 
発火タグを呼び出し、サーバーにリクエストが送 
られること。 
Cookie Sync 
ドメインが異なるCookieのIDをリダイレクト 
させて紐付けること。→後述 
DMP (Data 
Management 
Platform) 
様々なサイトの行動ログなどを蓄積し、広告 
配信などに活用するプラットフォームのこと。 
→後述
8 
アドテク用語 
オーディエンスサイト来訪者のこと。 
セグメントオーディエンスの属性や趣味嗜好、行動特性 
で層を区分したもの。 
ターゲティング特定のセグメントに狙いを絞って、広告を打 
つこと。 
リターゲティング 
(リタゲ) 
サイトに訪れた行動履歴などから、オーディ 
エンス(セグメント)を絞って、広告を打つこと。 
→後述
9 
RTB でのオークションの流れ 
SSP / DSP
10 
RTB - DSP / SSP
11 
プライベートDMPとは? 
DWHとの違い 
タグ発火と 
広告配信 
用語集 
DMPの概要 
リタゲ(DSP) 
との違い
12 
DMP = Data Management Platform 
データをためて活用する「箱」 
▪ パブリックDMP 
▪ プライベートDMP 
※2種類のDMPがある
13 
パブリックDMPとプライベートDMP
14 
パブリックDMP 
ボリュームが多い 
インターネットユーザーをセグメント 
化して、広告配信や調査に活用 
提携する媒体からCookie IDを収集、 
IDを統合して利用または販売
15 
プライベートDMP 
ボリュームが少ない 
サイトに来た人をセグメント化して、 
広告・メール配信や顧客分析に活用 
ロイヤリティ向上 
サイトの会員属性・購買履歴・オフラ 
インデータなどを取り込んで利用
16 
DMP = Data Management Platform 
データをためて活用する「箱」 
▪ ターゲティング/リタゲ広告 
▪ CRM連携、メール配信、LPO 
▪ 顧客分析
17 
プライベートDMPとは? 
DWHとの違い 
タグ発火と 
広告配信 
用語集 
DMPの概要 
リタゲ(DSP) 
との違い
18 
DSPのリタゲで十分では? 
DSPのリタゲができない・しないこと 
▪ 会員属性、購買履歴などの取り込み 
▪ 行動ログの蓄積、任意の集計 
▪ 詳細なセグメント作成 
▪ 広告配信以外へのセグメント活用
19 
プライベートDMPとは? 
DWHとの違い 
タグ発火と 
広告配信 
用語集 
DMPの概要 
リタゲ(DSP) 
との違い
20 
DWH = Data WareHouse 
直訳「データの倉庫」 
直訳したところの意味に、差はない 
DMP = Data Management Platform 
直訳「データ管理基盤」
21 
導入した企業は、意思決定にデータを 
活用する点で恐らく区別してない 
▪ システムを歴史的に区分している印象 
▪ DWH はBI とセットでよく語られる 
▪ プライベートDMP でもBI を行いたい
22 
DWH 
企業側で構築 
基幹システム(RDB)から、分析項目に 
そって抽出、構造化して時系列に格納 
プライベートDMP 
第三者のサービス 
システムは提供会社それぞれ。今のと 
ころ、アドテク業界での用語
23 
プライベートDMPとは? 
DWHとの違い 
タグ発火と 
広告配信 
用語集 
DMPの概要 
リタゲ(DSP) 
との違い
24 
DMPのセグメントにどうやって広告を 
配信するのか? 
基本的には、DSPのタグ(主にリタゲ用) 
を呼び出す= タグ発火 
※そこから先の広告配信はDSPが対応
25 
DSPのタグを呼び出すのには 
Piggy Back という方法を 
用いるのが基本
26 
DSPタグのPiggyBack
27 
続いて、プライベートDMPに 
おけるタグ発火までの流れ 
(Piggy Back)
28 
プライベートDMPとタグ発火(PiggyBack)
29 
そして、GMOプライベートDMP
30 
GMOプライベートDMP 
競合 
特徴
31 
プライベートDMPの競合サービス 
MOTHER 
smarticA!DMP
32 
GMOプライベートDMP 
競合 
特徴
33 
GMOプライベートDMP 特徴 
ここまでのプライベートDMPの機能 
▪ 画面操作で自由にセグメント作成できる 
▪ セグメント作成から発火まで速い 
▪ ページやCVごとに別々のタグがいらない 
▪ 3rd Party Cookieは使用しない 
▪ セグメント比較レポート
34 
セグメント作成画面サンプル
35 
購買条件サンプル
36 
次から、もっと詳細な技術の 
話に移ります
37 
1st Party Cookie Syncに挑戦 
広告主の複数の 
サイトに来訪 
3rd Party Cookie 
タグの現状 
1st Party Cookie 
アイデア
38 
広告主の複数のサイトに来訪 
3rd Party Cookie のDMPタグの場合 
プライベートDMP X のCookie X が同 
じなので、同じユーザーとわかる。
39 
しかし、世の中は 
3rd Party Cookie を 
簡単に許可しない流れ
40 
1st Party Cookie Syncに挑戦 
広告主の複数の 
サイトに来訪 
3rd Party Cookie 
タグの現状 
1st Party Cookie 
アイデア
41 
実は、iPhone はデフォルトで 
3rd Party Cookieが利用できない 
▪ iPhone / Mac のSafari は3rd Party 
Cookieを受け付けない 
▪ 主要ブラウザは3rd Party Cookie 拒否の 
設定がある
42 
1st Party Cookie Syncに挑戦 
広告主の複数の 
サイトに来訪 
3rd Party Cookie 
タグの現状 
1st Party Cookie 
アイデア
43 
GMOプライベートDMPでは 
3rd Party Cookie を使わず、 
1st Party Cookie で 
複数サイト対応に挑戦
44 
複数サイトでの1st Party Cookie Sync
45 
Hadoopと発火の工夫 
タグ処理高速化 
Impala + HBase 
オンライン条件 
はリアルタイム
46 
タグ処理高速化JavaScript 
▪ タグ出力処理は画面描画処理と分離 
▪ document.write を使用しているタグは、 
iframe に書き出して画面描画処理に戻す 
▪ 同一DSPは直列/別DSPは並列にタグ出力
47 
Hadoopと発火の工夫 
タグ処理高速化 
Impala + HBase 
オンライン条件 
はリアルタイム
48 
GMOプライベートDMPのミドルウェア 
▪ 大量のタグ発火リクエストをさばきたい 
NoSQL 
HBase 
▪ 蓄積されたビッグデータを集計・解析したい 
MPP /SQL 
Impala 
▪ 別々のシステムを行き来したくない 
NoSQL + MPP /SQL = ? CDH
49 
CDH = Cloudera のHadoop ディストリ 
ビューション 
▪ Impala はCloudera が独自開発C++ 
▪ CDH にはHadoop エコシステムがすべて 
依存関係が解消されテストされた状態でま 
とまっている 
▪ YARN、HBase、Hiveなど
▪ Hive のテーブル定義を通して、Impalaクエリ 
からHBase テーブルに読み書きできる 
▪ HBase テーブルを先に作り、Hive は外部テー 
ブルとして作るのがポイント 
50 
Impala + HBase 
Hive から通常のテーブルとして作るとHBase のテーブル 
もできて便利。だが、HBase のデータ項目が増えたとき 
Hive 側だけで柔軟に対応できなくなる
51 
HBase でテーブル作成 
① Hive 側でのデータベース名を接頭辞に 
create ‘gmo.hb_sample_master’, 
{ 
NAME => 'configdata', 
VERSIONS => 1, 
TTL => -1, 
} 
② カラムファミリー名
52 
Hive で外部テーブル作成 
① 外部オプション 
CREATE EXTERNAL TABLE hbase_sample_master( 
sample_id int 
,created_datetime string 
,modified_datetime string 
,status_code int 
) 
STORED BY 
② 格納先をHbase に指定 
‘org.apache.hadoop.hive.hbase.HBaseStorageHandler’ WITH 
SERDEPROPERTIES (“hbase.columns.mapping” = “:key, 
configdata:created_datetime, 
configdata:modified_datetime, 
configdata:status_code") ; 
④ Key = PK 
③ Hive でのカラム定義を 
HBase とマッピング
53 
Hadoopと発火の工夫 
タグ処理高速化 
Impala + HBase 
オンライン条件 
はリアルタイム
54 
プライベートDMPとタグ発火 
セグメント作成後、対象オーディエンス 
が次に来訪したときにタグ発火 
(=広告配信)
⑥で再来訪したときにDSPタグ発火(=広告配信) 
55
56 
この場合の問題点 
▪ オーディエンスが次に来訪したとき、 
セグメントの条件と大きくズレること 
がある 
• 特に「直近○日に○回」来訪といった条件
57 
●ケース① 
▪ 「直近7日以内に来訪」セグメント 
• セグメント作成時には条件に該当したが、次 
の来訪が1か月後でも、タグ発火してしまう 
●ケース② 
▪ 「ある期間に2回来訪」セグメント 
• 条件に該当したオーディエンスが次に来訪し 
て発火するときには3回来訪していることに
58 
オンライン条件はリアルタイム 
▪ オンライン(=URL)条件で次の工夫 
• 「直近○日」来訪などの各種オンライン条件は 
APサーバーでリアルタイム処理 
• 「ある期間に○回」といった来訪回数の条件は 
セグメント作成時に1回減らして、次に来訪し 
たときにAPサーバーで判断して発火
59 
システム設計のノウハウ 
システム設計 
トランザクショ 
ン制御 
TIPS
60 
システム全体
61 
Hadoopクラスタ(CDH)
62 
システム設計のノウハウ 
システム設計 
トランザクショ 
ン制御 
TIPS
63 
トランザクション制御 
▪ 3 フェイズコミット 
• try catchで表現すると、 
try { 
1. MariaDB を更新 
-> commit ① 
2. HBase を更新 
-> commit ② 
※RDB のトランザクションは、 
commit してからHBase を更新す 
るか(①)、HBase 更新を待って 
からcommit(②)の使い分け。 
3. Rabbit MQ にエンキュー 
} catch( e ) { 
// エラーのときは、rollback またはexit 
}
64 
システム設計のノウハウ 
システム設計 
トランザクショ 
ン制御 
TIPS
65 
TIPS 
▪ HDFS のパーミッション 
• Hiveテーブルを利用する場合は、impala 以外の 
Hadoopサービスのユーザーに注意(特にFlume) 
▪ クエリをcast 関数でバリデーション 
• integer 型のパーティションキーにURLエンコード 
した文字を間違って投入したらHiveメタ破壊 
• cast 関数を使えば値の型がおかしくても守れる
66 
ご清聴ありがとうございました

More Related Content

PDF
Unity2018/2019における最適化事情
PDF
【Unity】より良い表現のためのライティング戦略
PDF
Datadog による Container の監視について
PDF
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
PDF
Rust と Wasmの現実
PDF
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
PDF
Unityで始めるバージョン管理 Git LFS 入門編
Unity2018/2019における最適化事情
【Unity】より良い表現のためのライティング戦略
Datadog による Container の監視について
文脈を操る美しきZenjectプロジェクトからの眺め 〜Contextの扱い方と活用方法〜
Rust と Wasmの現実
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
Unityで始めるバージョン管理 Git LFS 入門編

What's hot (20)

PPTX
ゲーム開発とデザインパターン
PPTX
未来のプログラミング技術をUnityで -UniRx-
PDF
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
PDF
オンラインゲームの仕組みと工夫
PDF
マイクロサービスバックエンドAPIのためのRESTとgRPC
PPTX
地理分散DBについて
PDF
テスト文字列に「うんこ」と入れるな
PDF
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
PDF
型安全性入門
PDF
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
PDF
マイクロサービスに至る歴史とこれから - XP祭り2021
PPTX
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
PPTX
root権限無しでKubernetesを動かす
PDF
多機能ボイチャを簡単に導入する方法
PDF
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
PDF
デブサミ2013【15-C-6】5msの中身を公開!~ネット広告配信と支える職人達~
PDF
30分でわかる広告エンジンの作り方
PDF
はじめてのPRD
PDF
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
PDF
Twitterのsnowflakeについて
ゲーム開発とデザインパターン
未来のプログラミング技術をUnityで -UniRx-
LogbackからLog4j 2への移行によるアプリケーションのスループット改善 ( JJUG CCC 2021 Fall )
オンラインゲームの仕組みと工夫
マイクロサービスバックエンドAPIのためのRESTとgRPC
地理分散DBについて
テスト文字列に「うんこ」と入れるな
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
型安全性入門
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
マイクロサービスに至る歴史とこれから - XP祭り2021
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
root権限無しでKubernetesを動かす
多機能ボイチャを簡単に導入する方法
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
デブサミ2013【15-C-6】5msの中身を公開!~ネット広告配信と支える職人達~
30分でわかる広告エンジンの作り方
はじめてのPRD
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
Twitterのsnowflakeについて
Ad

Viewers also liked (20)

PDF
媒体側から見たネット広告の取引形態の多様化
PPTX
アドテクな話
PDF
モバイルサイト配信と広告の課題
PDF
ScalaでDSP作ってみた
PPTX
ネット広告のシステム関連の話
PDF
[db tech showcase OSS 2017] A22: NoSQL:誰のための、何のためのデータベース?その将来は?by Aerospike, ...
PDF
DSP基礎講座(フリークアウト 佐藤裕介氏)|マナビトオンライン
PDF
AdTech Scala Meetup 7 spray-can
PDF
Ad tech 勉強会 20140115
PDF
Adtech2013 audiencemerger
PDF
株式会社サイバーエージェント アドテクスタジオの技術と開発
KEY
広告の最適化
PDF
JAWS-2013-LT 10000req/secを50msecで返すサーバーインフラをAWSで作る
KEY
平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用
PDF
DSP「ScaleOut」の成長と負荷対策
PPTX
All about Programmatic buying(RTB), DSP,SSP, DMP & DCT - A complete digital ...
PPTX
Sano tokyowebmining 201625_v04
PDF
ElasticSearch勉強会 第6回
PDF
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by ...
PDF
DMP勉強会
媒体側から見たネット広告の取引形態の多様化
アドテクな話
モバイルサイト配信と広告の課題
ScalaでDSP作ってみた
ネット広告のシステム関連の話
[db tech showcase OSS 2017] A22: NoSQL:誰のための、何のためのデータベース?その将来は?by Aerospike, ...
DSP基礎講座(フリークアウト 佐藤裕介氏)|マナビトオンライン
AdTech Scala Meetup 7 spray-can
Ad tech 勉強会 20140115
Adtech2013 audiencemerger
株式会社サイバーエージェント アドテクスタジオの技術と開発
広告の最適化
JAWS-2013-LT 10000req/secを50msecで返すサーバーインフラをAWSで作る
平均レスポンスタイム50msをPerlで捌く中規模サービスの実装/運用
DSP「ScaleOut」の成長と負荷対策
All about Programmatic buying(RTB), DSP,SSP, DMP & DCT - A complete digital ...
Sano tokyowebmining 201625_v04
ElasticSearch勉強会 第6回
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by ...
DMP勉強会
Ad

Similar to GMOプライベートDMPの仕組み (20)

PPTX
HBase×Impalaで作るアドテク 「GMOプライベートDMP」@HBaseMeetupTokyo2015Summer
PPTX
Qlik Talend Cloudしっかり学ぶ勉強会 #8 - Amazon S3 との接続.pptx
PPTX
Summary dmp&rtb
PDF
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
PDF
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
PDF
CDH5最新情報 #cwt2013
PDF
トレジャーデータのバッチクエリとアドホッククエリを理解する
PPTX
The truth about SQL and Data Warehousing on Hadoop
PDF
Developers.IO 2019 Effective Datalake
PPTX
ビッグデータ活用支援フォーラム
PDF
【IMJ】「Adobe Media Manager」を活用したプライベートDMP構築
PDF
[Aws]database migration seminar_20191008
PDF
Azure データサービスデザイン検討 (2015/10)
PDF
ソリューションセッション#3 ビッグデータの3つのVと4つのプロセスを支えるAWS活用法
PDF
TokyoWebminig カジュアルなHadoop
PDF
Amazon Elastic MapReduceやSparkを中心とした社内の分析環境事例とTips
PPTX
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
PPTX
Impala + Kudu を用いたデータウェアハウス構築の勘所 (仮)
PDF
マッチングアプリの作り方
PDF
BIG DATA サービス と ツール
HBase×Impalaで作るアドテク 「GMOプライベートDMP」@HBaseMeetupTokyo2015Summer
Qlik Talend Cloudしっかり学ぶ勉強会 #8 - Amazon S3 との接続.pptx
Summary dmp&rtb
[db tech showcase Tokyo 2014] D33: Prestoで実現するインタラクティブクエリ by トレジャーデータ株式会社 斉藤太郎
Prestoで実現するインタラクティブクエリ - dbtech showcase 2014 Tokyo
CDH5最新情報 #cwt2013
トレジャーデータのバッチクエリとアドホッククエリを理解する
The truth about SQL and Data Warehousing on Hadoop
Developers.IO 2019 Effective Datalake
ビッグデータ活用支援フォーラム
【IMJ】「Adobe Media Manager」を活用したプライベートDMP構築
[Aws]database migration seminar_20191008
Azure データサービスデザイン検討 (2015/10)
ソリューションセッション#3 ビッグデータの3つのVと4つのプロセスを支えるAWS活用法
TokyoWebminig カジュアルなHadoop
Amazon Elastic MapReduceやSparkを中心とした社内の分析環境事例とTips
G-Tech2015 Hadoop/Sparkを中核としたビッグデータ基盤_20151006
Impala + Kudu を用いたデータウェアハウス構築の勘所 (仮)
マッチングアプリの作り方
BIG DATA サービス と ツール

GMOプライベートDMPの仕組み