主頁 > 後端開發 > 什么是 DMP?

什么是 DMP?

2020-09-20 11:44:00 後端開發

目錄

DMP (Data Management Platform)

一、專案介紹

二、技術方案


DMP (Data Management Platform)

資料管理平臺,負責資料管理:收集用戶資料;為用戶資料打上標簽;為DSP 提供資料服務

  • 業務介紹
  • 技術實作

對于業務介紹,比較困難的是理解廣告交易程序中各個參與者是干什么的

對于技術實作,大致就是如下兩個步驟:

  1. 報表
  2. 標簽化

報表顯而易見,就是查看資料的組成,查看資料的圖形直觀特征

標簽化是整個專案的目的,最終其實就是要根據標簽篩選用戶,但是對于標簽化還是有很多東西要做的,如下:

  • 商圈庫
  • 打標簽
  • 統一用戶識別
  • 標簽合并 & 衰減
  • 歷史合并

一、專案介紹

  1. 背景介紹
  2. DMP 的作用和實作方式
  3. 技術方案

廣告業務背景

互聯網廣告發展至今,產生了很多非常復雜的概念,其中環環交錯,不容易理清,主要目的就是盡可能的理清楚整體上的流程,各個環節的作用,

Step 1: 廣告主,廣告商,媒體

  • 廣告主:簡單來說就是要發廣告的機構和個人,比如:微信公眾號也有的廣告主
  • 廣告商:廣告商是中介,對接廣告主和媒體,廣告主告訴廣告商我要發廣告,廣告商找到媒體進行談判
  • 媒體: 比如說微博,騰訊,美團這樣的應用和網站,就是媒體,它們具有廣告展示的位置,用戶在使用這些服務的同時會看到各樣的廣告
  • 受眾: 普通的用戶,在享受免費的服務的同時,被努的接受廣告;但是受眾是有不同型別的,可以由標簽來表示,比如說白領,女生,28-30歲等

Step 2: 小媒體和廣告網路

剛才的結構中有一個非常明顯的問題

  • 小媒體有很多

不只有微博騰訊這些媒體,還有很多其它的垂直小媒體,比如說一些軟體網站,一些小型的App,甚至前陣子比較流行的游戲消滅病毒等,都是小型的媒體

  • 廣告主傾向于讓更多人看到廣告

廣告主就傾向于讓更多人看到廣告,而且也為了避免麻煩,所以會找一些大型的媒體來談合作

但是往往一些小媒體因為更加垂直,其用戶可能更加精準,購買意愿也非常好

  • 小媒體的議價能力非常有限

雖然小媒體有小媒體的好處,但是小媒體太過零散,如果只是一個小媒體的話,很難去洽談出一個比較好的合作,所以小媒體也是要賺錢的,這個領域其實是一個很大的盤子,一定會有人為小媒體提供服務,這種產品,我們稱之為 AdNetwork,廣告網路

AdNetwork【廣告網路】 提供如下的服務

  • 為廣告主提供統一的界面
  • 聯絡多家媒體,行成為統一的定價從而銷售

Step 3: AdExchange

雖然有 AdNetword 的引入,但是很快又會有新的問題

  • AdNetwork 不止一家

就如同有很多小媒體,廣告主不知道如何選擇一樣,AdNetwork 是一種商業模式,也會有很多玩家,廣告主依然面臨這種選擇困難

  • 小媒體們會選擇不同的AdNetwork

每個AdNetwork 之間,定價策略可能不同,旗下的小媒體也可能不同,其實最終廣告主是要選擇一個靠譜的網站來進行廣告展示的,那么這里就存在一些資訊不對稱,如何選擇靠譜的 AdNetwork 從而選擇靠譜的媒體呢

  • AdNetwork 之間可能存在拆借現象

某一個 AdNetwork 可能會有一個比較好的資源,但是一直沒賣出去,而另外一個AdNetwork 可能恰好需要用到這個資源,所以 AdNetwork 之間可能會有一些拆借顯現,這就讓這個時長愈加混亂

  • 媒體可能對 AdNetwork 的定價策略頗有微詞

AdNetWork 背后有很多媒體,但是整個定價策略是由 AdNetwork 來制定的,雖然 AdNetwork 往往是非常精密的計算模型,但是媒體依然可能會感覺自己沒有賺到錢

所以滋生了別外一種業務,叫做AdExchange,廣告交易平臺,從而試圖去從上層再統一一下

所以,AdExchange 雖然看起來和 AdNetwork 非常類似,但是本質上是不同的,其有以下特點

  • AdExchange 不僅會聯系 AdNetwork,也會聯系一下小媒體
  • 甚至有時候 AdNetwork 也會找 AdExchange 發布廣告需求
  • AdExchange 會提供實時的交易定價,彌補了 AdNetwork 獨立定價的弊端

Step 4: RTB 實時競價

并不是針對 AdExchange 的缺陷引入新的話題,而是針對 AdExchange 中的一個定價特點進行詳細的說明

AdExchange 和 AdNetwork 最大的不同可能要數 AdExchange 的定價方式了,AdExchange 的定價方式是一種事實的定價方式,其實非常類似于股票的撮合交易

整個程序的步驟大致如下:

1、媒體發起廣告請求給 RTB 系統,請求廣告進行展示

2、廣告主根據自己需求決定是否競價,以及自己的出價

3、會有多個廣告主同時出價,價高者得

這樣,RTB 就能盡可能的讓廣告的展示價格更透明更公平,AdExchange 得到自己回應的傭金,媒體得到最大化的廣告費,看起來皆大歡喜,但是真的是這樣嗎?


Step 5: 廣告主如何競價?

一切看起來都很好,如果你站在媒體的角度的話,但是如果你站在廣告主的角度上來看,廣告主可能會有兩種抱怨:

  • 廣告主并不是專業從業者

廣告主可能會覺得,你跟我鬧呢,我知道不知道怎么出價你心里清楚?

確實,作為金主,不能太過為難他們,每次交易都上廣告主出價,無異于逼迫廣告主轉投他家

  • 廣告主的訴求是投放廣告給恰好有需求的人,而不是看起來好像很酷的媒體

我們討論到現在,所以的假設都是基于廣告主知道自己該找什么樣的媒體投放什么樣的廣告,這種假設明顯是不成立的,如果考慮廣告主的訴求,其非常簡單,在同等價格內,廣告效果要好,所以廣告主更關心的事情是你是否讓合適的人看到了這些廣告,

所以,DSP應運而生,DSP全稱叫做需求方平臺,主要負責和 AdExchange 互動,輔助廣告主進行實時競價,

  • DSP 幫助廣告主進行 RTB 中的出價
  • DSP 不僅只是出價,DSP 幫助廣告主全面的進行廣告服務,例如廣告主只需要告訴 DSP 自己對什么型別的受眾感興趣,DSP會幫助廣告主進行受眾篩選,

Step 6: DMP

DSP 最重要的特性是,能夠幫助廣告主刷選客戶,換句話說,DSP 出現之前廣告主針對媒體上的廣告位進行廣告投放,DSP 出現之后,廣告主針對自己想要的目標受眾投放廣告,這幾乎是一個質效率提升,

廣告主現在可以針對一些受眾的標簽來進行廣告投放了,比如說,一個廣告主是賣化妝品的,他要投放廣告給有如下三個標簽的用戶們:20歲上下,女性,時尚人士,現在就可以針對這三個標簽來告訴DSP 如何帥選用戶了

但是,DSP 如何進行用戶識別呢?DSP如何誰是 20歲上下,女性,時尚人士?DSP 可以自己做,也可以依賴于第三方,這個標簽化的資料管理專案,就叫做DMP,全稱叫做 Data Management Platform ,即資料管理平臺,

DMP 所負責的內容非常重要的有兩點

  • 收集用戶資料

常見的收集方式主要有兩種:

  1. 通過自身的服務和程式進行收集,例如微博和騰訊有巨大的用戶量,他們自己就可以針對自己的用戶進行分析
  2. 通過合作而來的一些資料,這部分在合規范圍內,一般大型的網站或者APP會通過一些不會泄漏用戶隱私的ID 來標識用戶,給第三方 DMP 合作使用
  3. 通過一些不正當的手段獲得,例如說在某網站上傳偽裝成圖片的腳本,從而獲取本網站的用戶 Cookie,這部分涉及一些黑產,不再詳細說明,315 晚會也曾經報道過
  • 為用戶打上標簽

DSP 主要通過標簽帥選用戶,所以 DMP 要通過一些大資料的工具來將用戶資料打上標簽,這部分其實挺難,有可能要涉及一些機器學習的演算法,或者圖計算,

  1. AdExchange 發起競價
  2. DSP 回應競價
  3. DSP -> DMP 詢問這個競價的媒體是否是我需要的
  4. DMP 回傳媒體和展示的資訊,告訴 DSP 是否應該出價
  5. DSP 根據DMP 的指引,選擇出價或者不出

二、技術方案

從目的上看,DMP 系統可能會有如下的事情要做

  • 通過可視化和筆記工具進行資料分析和測驗,一般會使用Zeppelin 等工具進行測驗和資料探索

路線一:

  1. 收集資料
  2. ETL
  3. 落地 Kudu
  4. Spark 讀取 Kudu ODS 進行標簽化
  5. 落地 Kudu
  6. 放入Es 對外提供 API

路線二:

  1. 收集資料
  2. ETL
  3. 落地 Kudu
  4. 生成報表
  5. 分析師就可以使用 Impala 等查詢資料進行決策服務


文章最后,給大家推薦一些受歡迎的技術博客鏈接

  1. JAVA相關的深度技術博客鏈接
  2. Flink 相關技術博客鏈接
  3. Spark 核心技術鏈接
  4. 設計模式 —— 深度技術博客鏈接
  5. 機器學習 —— 深度技術博客鏈接
  6. Hadoop相關技術博客鏈接
  7. 超全干貨--Flink思維導圖,花了3周左右撰寫、校對
  8. 深入JAVA 的JVM核心原理解決線上各種故障【附案例】
  9. 請談談你對volatile的理解?--最近小李子與面試官的一場“硬核較量”
  10. 聊聊RPC通信,經常被問到的一道面試題,原始碼+筆記,包懂
  11. 深入聊聊Java 垃圾回識訓制【附原理圖及調優方法】

歡迎掃描下方的二維碼或 搜索 公眾號“大資料高級架構師”,我們會有更多、且及時的資料推送給您,歡迎多多交流!

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/88551.html

標籤:java

上一篇:填坑Ⅱ | 簡單的資料結構

下一篇:原理詳解與標準解法——藍橋杯_2016年省賽B組 第七題 剪郵票(暴力+迷宮變形)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more