淘寶客?CPS技術是怎麼實現的?

Java3y發表於2020-11-17

前言

微信搜【Java3y】關注這個有夢想的男人,點贊關注是對我最大的支援!

文字已收錄至我的GitHubhttps://github.com/ZhongFuCheng3y/3y,有300多篇原創文章,最近在連載面試和專案系列!

今天來給大家科普下「分傭」是大多數怎麼做的,這篇文章非常適合新手觀看,應該可以學到不少的“常識”。

前幾天可以發現三歪推了幾天的伺服器,一方面是的確便宜(75塊一年去哪裡找呢),一方面三歪會從中抽取點伺服器的佣金(賺點吃飯錢? 不香嗎)。

這也沒啥好隱瞞的,好的東西分享給大家,你買到了實惠的東西,我再從中收取部分的利益,達到了雙贏。

根據訂單成交額獲取一定的受益:從廣告專業的角度叫做CPS

回到現實生活中,比如你買了車,銷售會有提成吧?比如你買了房,銷售也會有提成吧?

如果想對廣告有個基本的瞭解,可以先看看我上一篇的廣告科普文,裡邊也提到了CPS的概念:廣告基礎入門

那我們要不來猜一下這個CPS(分傭/返現)的功能是怎麼實現的?如果猜錯了,大佬出來打我臉,那那那那....就算了唄。

不多BB,我們開始吧。

Cost Per Sale

我要在線上賣某件商品,賣出去後我得能拿到提成,這功能必然有一套完整的系統在背後支撐著。

但不管怎麼樣,我買東西也好,推廣賣東西也好,我肯定是這件商品所歸屬的平臺使用者

所以說,我肯定有我需要推廣雲伺服器的賬號。

畫外音:無論是買家還是推廣者,在平臺的眼裡我們都是使用者。可能推廣者就多了個標記位來標識這個使用者是推廣人,賣了伺服器需要給他返現。

成為了推廣者之後,那麼三歪就可以進行推廣了。所需要的東西實際不多,一個連結足以:

https://www.aliyun.com/1111/pintuan-share?ptCode=MTk2NjQwOTYyMDkyNzI4MXx8MTE0fDE%3D&userCode=pfn5xpli

連結由兩部分組成:

如果你開啟連結之後,可以發現的是:我購買伺服器只要「核心資訊:https://www.aliyun.com/1111/pintuan-share」就足夠了。

那引數有什麼用呢?關聯使用者

三歪在推廣賣伺服器,敖丙在推廣賣伺服器,你們也在推廣賣伺服器,那平臺是怎麼知道三歪賣了多少臺呢?那不可能三歪說賣了10臺,平臺就給三歪10臺的伺服器佣金吧?總得有個準確的計算方法的吧。

這裡靠的就是連結後帶的引數。從我“專業”的角度來看,連結後帶有兩個引數,分別是ptCodeuserCode。嗯,一看就是ptCode繫結了拼團的資訊,userCode判定的使用者的資訊(這裡的使用者,肯定是指三歪的啦)

再從我“專業”的角度來看引數值:MTk2NjQwOTYyMDkyNzI4MXx8MTE0fDE%3Dpfn5xpli 。嗯,看不懂,跳過。(能看懂就有鬼了,我又不是對應的開發)

OK,我們現在知道連結是帶了「私貨」的,那回到最重要的問題上:平臺是怎麼識別到這個使用者是從三歪那裡來的呢?連結是有引數,那具體是怎麼做的呢

Cookie

第一我們能想到的可能是Cookie,只要在使用者點選這個連結的時候,我們給這個使用者頒發Cookie,那該使用者對該域名的所有互動,都會帶上Cookie (包括下單)。

那麼,只要下單的時候,交易的同學把Cookie的資訊寫到訂單訊息報上,那廣告的同學就能通過訂單訊息報的內容追蹤到該下單使用者是從哪個推廣者所帶來的。

畫外音:較大的公司,交易和廣告是分開的。廣告需要監聽交易的訊息報來完成自己的業務邏輯

Trace

除了Cookie的方式來追蹤,還有什麼辦法嗎?有的,也可以使用鏈路追蹤的方式。

所謂的鏈路追蹤,從本質上來講,就是使用者點選連結的時候,把點選使用者以及連結的引數(推廣者)儲存起來。

要知道的是,你在平臺上的每一次點選都會被記錄下來(點選pv就是這麼來的)

點選的資料,一般會產生一個點選的訊息報topic,誰要點選的資料就誰去消費這個topic就好了。

每個業務(廣告、商品、演算法等等)都可以消費點選訊息報,得到的都是平臺所有的點選,然後會過濾掉不需要的點選。

比如CPS業務只會取連結帶有userCode的點選,然後對這些「想要」的點選做業務的規則。常見的就是判斷點選連結的使用者是否為「新使用者」

有好多同學可能在買伺服器的時候發現只有新使用者才會便宜,老使用者都不會有特別大的優惠。於是都會調侃說一句:老使用者不如狗。

道理也很簡單:如果你已經是老使用者了,那要不要續費,要不要繼續購買是從商品本身的價效比來考量的(該買的還是會買,不買就自然會流失)。而如果你是新使用者,可能你之前甚至沒聽過這個平臺,可以通過足夠多的優惠下單來讓你成為平臺的使用者(把新客留在平臺,可能會創造出更多的價值,這是平臺願意去付出的成本)

當然了,大多數平臺也會持續保證自己的競爭力來儘可能留住所有的使用者

從使用者聽過你的平臺,到使用者下載你的APP,再到使用者註冊APP,最後到使用者從APP購買商品,這是一個漏斗。從廣告的角度而言,每個環節都會對應一個市場價,現在以CPS的方式可以讓這個流程一整套直接走完,所以平臺會以大的優惠力度給予新人,希望能得到轉化,平臺得到新的血液。

所以廣告側會只會篩選出點選事件裡自己需要的部分,經過一系列的規則(可能是新使用者,可能是各種的校驗),然後會將資訊單獨儲存到某個地方(可以是HBase,可以是DB,也可以是快取,就看你怎麼考量了)。

一般來說,HBase或帶過期時間的儲存還是比較方便好用的,因為從業務上都會有一個關聯時間(有可能是30天,有可能是60天,也有可能是1天),儲存到HBase相對應的列簇,可以設定過期時間,就不用手動去刪除了。

等到使用者真正下單購買的時候,廣告側還是監聽交易的訊息報,只不過這一次是去儲存的地方找相應的記錄,只要找到了,就把這個訂單歸給推廣者。

QA

Q:有的同學就想問了:如果三歪你是推廣者,我也是推廣者,現在有個叫「敖丙」的進來都點了我們倆的連結,他最後購買了,那那這算是誰推廣的?

這具體看平臺的規則

有的平臺會以最後一次來判定這個訂單屬於哪個推廣者。比如說,敖丙先點了你的連結,沒買,然後點了我的連結,買了。最後敖丙下單的時候,發現我是最後一次點的,所以訂單算我的。

也有的平臺會有「保護期」的概念。比如說,敖丙點了我的連結,然後敖丙已經跟我關聯起來了,他再點你的連結,由於保護期範圍內生效,所以他不會跟你關聯。所以,敖丙在這段時間內下單,都是算我的。

補充

不同的平臺會有不同的規則,最後CPS的業務邏輯都會變得相對複雜。

上面我所講到的是一個最最最基本的CPS流程,主要由連結開始(CPS必須要帶關鍵的引數)。主要的實現,要麼就把關聯的資訊存到使用者(Cookie),要麼就是把關聯資訊在使用者點選的時候就儲存(關鍵位置追蹤)。

實際上需要考慮的問題也會更多,因為CPS 還是跟錢?相關的,期間不能出錯。

就比如說:”廣告側消費訂單訊息報的時候,突然掛了,怎麼辦?“

是不是需要做at least one + 冪等 來讓訂單的資料不會丟以及不會重複....

想不想了解更多?來個點贊和關注轉發唄,後面會繼續分享的喲

涵蓋Java後端所有知識點的開源專案,已有10K+ star!內含1000+頁原創電子書!!!

PDF文件的內容均為手打,有任何的不懂都可以直接來問我

相關文章