Top Banner
GMOプライベートDMPで挑戦した アドテクビッグデータのシステム
66

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

Jul 16, 2015

Download

Technology

Michio Katano
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: GMOプライベートDMPの仕組み

GMOプライベートDMPで挑戦した

アドテク&ビッグデータのシステム

Page 2: 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

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

3

●目次

▪プライベートDMPとは?

▪ GMOプライベートDMP

▪ 1st Party Cookie Syncに挑戦

▪ Hadoopと発火の工夫

▪システム設計のノウハウ

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

4

プライベートDMPとは?

タグ発火と広告配信

DWHとの違い

リタゲ(DSP)

との違い

DMPの概要

用語集

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

5

先ず、アドテクについて用語を整理

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

6

アドテク用語

リスティング広告検索エンジンでの検索ワードに連動した広告。Google、Yahoo。

ディスプレイ広告サイト上の広告。テキスト、バナー、動画の広告など。

RTB (Real-Time

Bidding)

ディスプレイ広告におけるリアルタイム入札。→後述

DSP (Demand-Side

Platform)RTBの広告主側システム。→後述

SSP (Supply-Side

Platform)RTBの広告掲載側システム。→後述

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

7

アドテク用語

タグサイトに仕込むimgタグやjavascriptタグ。サーバーにリクエストが送られ、トラッキングや効果測定などで利用。

発火タグを呼び出し、サーバーにリクエストが送られること。

Cookie Syncドメインが異なるCookieのIDをリダイレクトさせて紐付けること。→後述

DMP (Data

Management

Platform)

様々なサイトの行動ログなどを蓄積し、広告配信などに活用するプラットフォームのこと。→後述

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

8

アドテク用語

オーディエンス サイト来訪者のこと。

セグメントオーディエンスの属性や趣味嗜好、行動特性で層を区分したもの。

ターゲティング特定のセグメントに狙いを絞って、広告を打つこと。

リターゲティング(リタゲ)

サイトに訪れた行動履歴などから、オーディエンス(セグメント)を絞って、広告を打つこと。→後述

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

9

RTB でのオークションの流れ

SSP / DSP

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

10

RTB - DSP / SSP

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

11

プライベートDMPとは?

タグ発火と広告配信

DWHとの違い

リタゲ(DSP)

との違い

DMPの概要

用語集

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

12

DMP = Data Management Platform

データをためて活用する「箱」

▪パブリックDMP

▪プライベートDMP

※2種類のDMPがある

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

13

パブリックDMPとプライベートDMP

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

14

パブリックDMP

インターネットユーザーをセグメント

化して、広告配信や調査に活用

提携する媒体からCookie IDを収集、

IDを統合して利用または販売

ボリュームが多い

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

15

プライベートDMP

サイトに来た人をセグメント化して、

広告・メール配信や顧客分析に活用

サイトの会員属性・購買履歴・オフラ

インデータなどを取り込んで利用

ボリュームが少ない

ロイヤリティ向上

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

16

DMP = Data Management Platform

データをためて活用する「箱」

▪ターゲティング/リタゲ広告

▪ CRM連携、メール配信、LPO

▪顧客分析

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

17

プライベートDMPとは?

タグ発火と広告配信

DWHとの違い

リタゲ(DSP)

との違い

DMPの概要

用語集

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

18

DSPのリタゲで十分では?

▪会員属性、購買履歴などの取り込み

▪行動ログの蓄積、任意の集計

▪詳細なセグメント作成

▪広告配信以外へのセグメント活用

DSPのリタゲができない・しないこと

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

19

プライベートDMPとは?

タグ発火と広告配信

DWHとの違い

リタゲ(DSP)

との違い

DMPの概要

用語集

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

20

DWH = Data WareHouse

直訳「データの倉庫」

DMP = Data Management Platform

直訳「データ管理基盤」

直訳したところの意味に、差はない

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

21

導入した企業は、意思決定にデータを

活用する点で恐らく区別してない

▪システムを歴史的に区分している印象

▪ DWH は BI とセットでよく語られる

▪プライベートDMP でも BI を行いたい

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

22

DWH

基幹システム(RDB)から、分析項目に

そって抽出、構造化して時系列に格納

プライベートDMP

システムは提供会社それぞれ。今のと

ころ、アドテク業界での用語

企業側で構築

第三者のサービス

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

23

プライベートDMPとは?

タグ発火と広告配信

DWHとの違い

リタゲ(DSP)

との違い

DMPの概要

用語集

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

24

DMPのセグメントにどうやって広告を

配信するのか?

基本的には、DSPのタグ(主にリタゲ用)

を呼び出す = タグ発火

※そこから先の広告配信はDSPが対応

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

25

DSPのタグを呼び出すのには

Piggy Back という方法を

用いるのが基本

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

26

DSPタグのPiggyBack

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

27

続いて、プライベートDMPに

おけるタグ発火までの流れ

(Piggy Back)

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

28

プライベートDMPとタグ発火(PiggyBack)

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

29

そして、GMOプライベートDMP

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

30

GMOプライベートDMP

特徴

競合

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

31

プライベートDMPの競合サービス

MOTHER

smarticA!DMP

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

32

GMOプライベートDMP

特徴

競合

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

33

▪画面操作で自由にセグメント作成できる

▪セグメント作成から発火まで速い

▪ページやCVごとに別々のタグがいらない

▪ 3rd Party Cookieは使用しない

▪セグメント比較レポート

ここまでのプライベートDMPの機能

GMOプライベートDMP 特徴

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

34

セグメント作成画面サンプル

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

35

購買条件サンプル

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

36

次から、もっと詳細な技術の

話に移ります

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

37

1st Party Cookie Syncに挑戦

1st Party Cookieアイデア

3rd Party Cookieタグの現状

広告主の複数のサイトに来訪

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

38

広告主の複数のサイトに来訪

3rd Party Cookie の DMPタグの場合

プライベートDMP X の Cookie X が同

じなので、同じユーザーとわかる。

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

39

しかし、世の中は

3rd Party Cookie を

簡単に許可しない流れ

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

40

1st Party Cookie Syncに挑戦

1st Party Cookieアイデア

3rd Party Cookieタグの現状

広告主の複数のサイトに来訪

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

41

実は、iPhone はデフォルトで

3rd Party Cookieが利用できない

▪ iPhone / Mac の Safari は 3rd Party

Cookieを受け付けない

▪主要ブラウザは 3rd Party Cookie 拒否の

設定がある

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

42

1st Party Cookie Syncに挑戦

1st Party Cookieアイデア

3rd Party Cookieタグの現状

広告主の複数のサイトに来訪

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

43

GMOプライベートDMPでは

3rd Party Cookie を使わず、

1st Party Cookie で

複数サイト対応に挑戦

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

44

複数サイトでの 1st Party Cookie Sync

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

45

Hadoopと発火の工夫

オンライン条件はリアルタイム

Impala + HBase

タグ処理高速化

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

46

▪タグ出力処理は画面描画処理と分離

▪ document.write を使用しているタグは、

iframe に書き出して画面描画処理に戻す

▪同一DSPは直列/別DSPは並列にタグ出力

タグ処理高速化 JavaScript

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

47

Hadoopと発火の工夫

オンライン条件はリアルタイム

Impala + HBase

タグ処理高速化

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

48

▪大量のタグ発火リクエストをさばきたい

▪蓄積されたビッグデータを集計・解析したい

▪別々のシステムを行き来したくない

NoSQL

GMOプライベートDMPのミドルウェア

MPP /SQL

NoSQL + MPP /SQL = ? CDH

HBase

Impala

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

49

CDH = Cloudera の Hadoop ディストリ

ビューション

▪ Impala は Cloudera が独自開発 C++

▪ CDH には Hadoop エコシステムがすべて

依存関係が解消されテストされた状態でま

とまっている

▪ YARN、HBase、Hiveなど

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

50

▪ Hive のテーブル定義を通して、Impalaクエリ

からHBase テーブルに読み書きできる

▪ HBase テーブルを先に作り、Hive は外部テー

ブルとして作るのがポイント

Impala + HBase

Hive から通常のテーブルとして作ると HBase のテーブル

もできて便利。だが、HBase のデータ項目が増えたとき

Hive 側だけで柔軟に対応できなくなる

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

51

create ‘gmo.hb_sample_master’,

{

NAME => 'configdata',

VERSIONS => 1,

TTL => -1,

}

HBase でテーブル作成

① Hive 側でのデータベース名を接頭辞に

②カラムファミリー名

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

52

CREATE EXTERNAL TABLE hbase_sample_master(

sample_id int

,created_datetime string

,modified_datetime string

,status_code int

)

STORED BY

‘org.apache.hadoop.hive.hbase.HBaseStorageHandler ’ WITH

SERDEPROPERTIES (“hbase.columns.mapping” = “:key,

configdata:created_datetime,

configdata:modified_datetime,

configdata:status_code") ;

Hive で外部テーブル作成

①外部オプション

②格納先を Hbase に指定

③ Hive でのカラム定義を

HBase とマッピング

④ Key = PK

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

53

Hadoopと発火の工夫

オンライン条件はリアルタイム

Impala + HBase

タグ処理高速化

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

54

プライベートDMPとタグ発火

セグメント作成後、対象オーディエンス

が次に来訪したときにタグ発火

(=広告配信)

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

55

⑥で再来訪したときにDSPタグ発火(=広告配信)

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

56

この場合の問題点

▪オーディエンスが次に来訪したとき、

セグメントの条件と大きくズレること

がある

•特に「直近○日に○回」来訪といった条件

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

57

●ケース①

▪「直近7日以内に来訪」セグメント

•セグメント作成時には条件に該当したが、次

の来訪が1か月後でも、タグ発火してしまう

●ケース②

▪「ある期間に2回来訪」セグメント

•条件に該当したオーディエンスが次に来訪し

て発火するときには3回来訪していることに

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

58

▪オンライン(=URL)条件で次の工夫

•「直近○日」来訪などの各種オンライン条件は

APサーバーでリアルタイム処理

•「ある期間に○回」といった来訪回数の条件は

セグメント作成時に1回減らして、次に来訪し

たときにAPサーバーで判断して発火

オンライン条件はリアルタイム

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

59

システム設計のノウハウ

TIPS

トランザクション制御

システム設計

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

60

システム全体

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

61

Hadoopクラスタ (CDH)

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

62

システム設計のノウハウ

TIPS

トランザクション制御

システム設計

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

63

トランザクション制御

try {

1. MariaDB を更新-> commit ①

2. HBase を更新-> commit ②

3. Rabbit MQ にエンキュー

} catch( e ) {

// エラーのときは、rollback または exit

}

▪ 3 フェイズコミット

• try catchで表現すると、

※RDB のトランザクションは、

commit してから HBase を更新す

るか(①)、HBase 更新を待って

から commit(②)の使い分け。

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

64

システム設計のノウハウ

TIPS

トランザクション制御

システム設計

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

65

▪ HDFS のパーミッション

•Hiveテーブルを利用する場合は、impala 以外の

Hadoopサービスのユーザーに注意(特にFlume)

▪クエリを cast 関数でバリデーション

• integer 型のパーティションキーにURLエンコード

した文字を間違って投入したらHiveメタ破壊

•cast 関数を使えば値の型がおかしくても守れる

TIPS

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

66

ご清聴ありがとうございました