深度揭秘用戶數據埋點采集技術 | 您的行蹤已暴露

1 評論 16073 瀏覽 93 收藏 39 分鐘

筆者對基本的用戶數據埋點采集原理進行一些講解,讓大家了解我們在互聯網上,到底會暴露哪些數據,這些數據會對我們產生怎樣的影響。

我們先來看兩個小故事:

No.1?神秘的銀行貸款額度

前段時間,我經常收到招商銀行信貸部的電話,本來我都是直接掛掉的,但是有一天打了好幾次,我終于忍不了了,接起來問:“能不能不要再給我打了?說了不需要不需要!“

對方的回答卻讓我有些驚訝,甚至有被羞辱的感覺::“真的不需要嗎?真的不需要嗎?“。

我再次強調:“真的不需要!“

然后對方說:“我這里看到你最近在招行 APP 里瀏覽了e招貸頁面,猜想您可能有資金方面的需要,我們現在有xxx優惠,最高給您開到xx萬,都是隨借隨還的…… “

我:“……”

No.2?數據統計差異的迷思

有一次,一個活動做完之后,運營同學拿著兩張數據報表來問我:“為什么我們的數據跟外部的數據有這么大的差異呢?”。

我反問:“你確定兩邊的數據統計口徑一致嗎?”

運營同學答:“一致呀,都是用戶訪問量呀!”

我:“我的意思是,你的訪問量是按照什么計算的?怎樣才算是一個訪問呢?即使統計口徑一致,埋點和上報方法也有區別… blabla”

說完這些我猛然發現,這不是“人話“啊,怎么樣才能把這些轉換成誰都能聽懂的“人話“呢?我陷入了沉思。

那么,通過這兩個小故事,我們得到了哪些信息呢?

首先,我們在互聯網上的一切動作,都可能有人在觀察、記錄、分析、預測。其次,大部分人并不知道,我們在上網時的信息和行為是如何暴露的,即使知道概念,也未必清楚細節。因為細節是魔鬼,而且說出來也很難被理解。

因此,筆者認為有必要對基本的用戶數據埋點采集原理進行一些講解,讓大家了解我們在互聯網上,到底會暴露哪些數據,這些數據會對我們產生怎樣的影響。

萬萬沒想到!上網會暴露這么多信息?10000 字深度揭秘用戶數據埋點采集技術

圖片來自 @姬小光

目錄:

1. 網站或應用能采集哪些用戶行為信息

1.1 硬件能力

1.2 軟件能力

1.3 數據權限

1.4 用戶輸入

2. 目前主流的數據埋點技術

2.1 手動埋點

2.2 半自動

2.3 全自動埋點

3. 目前主流的數據上報技術

3.1 客戶端主動上報

3.2 服務端獲取信息

4. 基本的識別分析方法

4.1 設備唯一性

4.2 用戶唯一性

4.3 用戶行為分析

5. 主流的統計平臺及工具

5.1 數據分析平臺

5.2 行業分析報告

5.3 自建數據平臺的利弊

1. 網站或應用能采集哪些用戶行為

若要了解我們會暴露哪些數據,首先要知道我們的“敵人”有哪些能力。我將其分為四部分來講,其中數據權限也算是軟件能力的一種,差別在于需要用戶的授權才能拿到。許多硬件能力也都是要用戶授權使用的,只是有時候授權的提示過于復雜,容易混淆視聽,不小心授權了你完全不理解的東西。

1.1?硬件能力

硬件能力包括設備能做的一切事情,這里的設備,可以是個人電腦、服務器、智能手機,以及其他智能設備等。那么,以個人電腦為例,它可以聯網、辦公、打游戲等等。用戶的所有行為,都可能被記錄,并通過網絡發送到遠程的某臺服務器進行分析,這個大家是知道的。

如果是智能設備,能做的就更多了。比如攝像頭、麥克風、陀螺儀、GPS、NFC 、藍牙、WiFi 等等,都是硬件提供的能力。有了硬件基礎,軟件才能通過驅動程序獲取這些硬件提供的信息,進入下一步的處理邏輯。

常見的智能設備有:手機、筆記本、iPad、ATM、自動售貨機、快遞柜、智能家居、智能水杯、智能手環,智能汽車等等。那么你可以思考一下,這些設備平時都具有哪些能力,可能采集你的什么信息?

1.2?軟件能力

硬件基礎為軟件提供了基礎能力,比如計算能力、存儲空間、聯網能力等等。智能設備中的軟件也可以操作攝像頭、麥克風等,甚至是在用戶不知情的情況下開啟,比如:前段時間某 APP 偷偷打開用戶攝像頭暴露的事件。

我們也會在影視作品中看到用戶電腦或手機被黑客攻擊之后,攝像頭被偷偷打開,記錄了用戶的隱私影響,并以此要挾用戶的事件。再如美劇《CSI 網絡犯罪調查》中,黑客通過黑進用戶的網絡攝像頭,長期觀察用戶日常生活習慣,終于找到機會在父母不知情的情況下,偷走了攝像頭中的寶寶。這些,都是軟件能力的體現。

黑客離我們的生活還比較遙遠,普通用戶最常接觸到的就是前面提到的智能設備為軟件提供的這些能力了。除了這些之外,用戶在操作軟件時的行為,大部分也是可以被識別記錄的,比如:觸摸、滑動、點擊、搖一搖、橫豎屏、截屏等。只要軟件能有反應,就說明有程序接口可以響應,就可以被記錄。

還有 PC 上最常見的鼠標點擊,可以全局記錄鼠標的任何點擊,哪怕只是你手指抽筋在空白處隨便點了幾下。把這些點擊數據匯總起來,疊加到界面上,就成了點擊熱力圖:

萬萬沒想到!上網會暴露這么多信息?10000 字深度揭秘用戶數據埋點采集技術

圖片來自百度統計

除了鼠標點擊之外,你晃鼠標,屏幕上的箭頭就動,那么如果有需要的話,你的整個鼠標軌跡都是可以被記錄的。有些人的手是隨心而動,可能某個瞬間想看哪里,鼠標箭頭就跟了過去,然后思考一下又放棄了。

那么根據整個鼠標軌跡,你發現用戶明明對這部分內容產生了興趣,但是停留幾秒,又移走了,那么就可以分析一下,是不是這部分內容設計得不夠吸引人,諸如此類。

1.3?數據權限

正常的情況下,對于攝像頭、麥克風、GPS 等涉及隱私的能力,系統會詢問我們是否允許獲取這個能力。然而,極端情況下的黑客攻擊,我們是無法阻止的。此外,很多人在授權這些能力的時候,其實并不清楚會帶來怎樣的后果。就像是你不知道勾選了“同意xxx用戶使用協議”意味著什么一樣。

舉個例子,手機相冊的授權請求,往往都是要求讀寫權限,比如各種 P 圖 APP。寫權限好理解,就是它可以存照片到我的手機里;那么讀權限呢?有沒有可能在你不知情的情況下掃描所有照片,分析你的生活習慣呢?

即使沒有,你只是單純地上傳了一張自拍,這意味著什么?

  1. 設備信息、用戶信息、可能還有其他信息,與你這張臉綁定了,大概率照片中的人就是設備主人;
  2. 除了臉之外,照片中可能有其他重要信息。比如背景中標志建筑,門牌號,店鋪名,這暴露了你的身份和位置;
  3. 照片的元信息中可能存儲了拍攝時間、地點等重要信息;
  4. 更夸張一點,你的瞳孔倒影、墨鏡反光、或者其他細微之處的影像,也可能暴露重要信息。

大家可能聽過“社會工程學”(Social Engineering,又被翻譯為:社交工程學),就是通過這些蛛絲馬跡,再加上一些非技術手段,來獲取某個人的隱私信息的。而授權這些數據權限,可能就是個開始。

再比如:有的人可能接到過催債短信,但短信里的人并不熟悉,只是有點印象。這其實是以往辦事需要,存儲了某人的手機號,而這個人恰好使用了某些網貸 APP,并且逾期沒有還款。然后網貸公司就會批量地向這個人的通訊錄好友發送短信,而你恰好就在其中。

1.4?用戶輸入

有些時候,我們的數據泄露并不是被動的,而是我們主動把數據交給了別人,然后我們的數據又被濫用導致。比如:買房之后很長一段時間,都會收到各種中介的騷擾。甚至不需要買房,只是手機注冊了某個房產 APP,然后你的手機號就會在房產圈一遍一遍倒賣,甚至可以持續好幾年。

再比如:淘寶上有個經典的騙局,就是一分錢搶購。用戶下單之后,賣家就可以拿到用戶的姓名、手機、收貨地址了。這樣騙到幾百上千個信息后,活動下線。那么就拿到了一份非常有價值的信息,然后再以每條幾毛到幾元的價格出售即可盈利。

類似的,大部分快遞物流的紙質單據上,都有明確的姓名手機和住址,這在以前可能不是什么問題,但是互聯網時代就不一樣了,快遞員用心記錄下來,都可以拿這個數據賣錢。什么?手寫太麻煩?有 OCR 拍照識別啊~

要求上傳身份證的,就更要小心了,要知道很多辦事流程只要身份證掃描件或復印件即可。那么一旦你的電子版身份證流出,就可能出現新聞里說的,莫名其妙多了 N 張信用卡,甚至身份被頂替的事件。

二、目前主流的數據埋點上報技術

前面講述了一些基本的能力,和典型的用戶行為記錄,那么設備記錄這些數據之后,如何上報給服務端呢?也就是說,你的數據是怎么被別人“拿走”的呢?

下面,我們就來看看目前主流的數據埋點及上報技術有哪些。

我們可以按照自動化程度,將埋點方法分為三類,即手動埋點、半自動埋點、全自動埋點。所有的埋點方式,都要包含基礎代碼。在 APP 中,一般稱為 SDK(Software Development Kit),在網頁中也可以有 SDK,或者就是一段通用的統計代碼片段。除此之外的自動化程度,才是它們之間的差異所在,下面逐個進行講解。

2.1?手動埋點

手動埋點也叫代碼埋點,那么是誰手動呢?

當然是開發哥了。根據需求的不同,開發哥在某個 APP、小程序、網頁中進行埋點。其基本原理,就是為界面中的某個元素(按鈕、圖片、視頻等)綁定一個事件,即前文提到的觸摸、點擊等事件。然后再用戶執行這些動作的時候,就可以通過程序捕捉到,并記錄下來,上報給服務器。

下面是(你能看懂的)偽代碼示意:

<button onclick=“send_data_to_server (‘按鈕被點擊‘) ”>按鈕</button>

如果把執行的動作寫到每個元素中,顯然是不科學的,我們可以把上報的邏輯抽離出來,而只是為這個元素分配一個標記:

<button data-tag=“12345”>按鈕</button>

然后在程序的公共邏輯中監聽特定的事件,并將對應元素的動作上報:

if(event.type==‘click’){send_data_to_server(’觸發事件的元素的tag’);}

當按鈕被點擊時,公共的上報程序將按鈕的 tag 上報給服務器,服務器就可以根據這個預先埋好的 tag 來識別這個元素。

手動埋點方式是最原始,也是定制程度最高的,可以根據需求完全定制。缺點就是開發周期長,需求變更時不夠靈活。

2.2?半自動埋點

許多埋點工作其實是重復勞動,并且有共同的特征可以抽離,那么必然可以工具化或自動化。但這個過程既要保證系統的便利性,又要保留一定的擴展性,于是就有了所謂半自動的埋點。

顧名思義,這種方式有實現了某種程度的自動化,不完全需要編碼。但是需要人工干預,比如設置參數、修改配置等。那么原理其實也很簡單,我們只需要把識別和定義元素的 tag 部分,抽離成可以配置的信息即可:

<button data-tag=“{{ 可以配置的部分 }}”>按鈕</button>

那么具體如何配置,這個配置如何應用到代碼中,就是程序員小哥的工作了。目前有些數據統計平臺提供了可視化的埋點技術,其實就是在這一層前面加了可視化的界面,讓操作人員可以更方便地選到這些元素,然后系統再把這些配置整合到程序中即可。

2.3?全自動埋點

全自動埋點,也叫無埋點,無痕埋點。從名字上來看,就是完全自動化,什么都不需要做。然而事實并非如此,前面提過,所謂全自動埋點,也是要在應用中要包含基礎代碼的。差別在于,這種方式只需要包含基礎代碼,不需要額外的開發。

其原理,就是將用戶的一切可捕獲的行為上報,然后由產品人員自己決定關注哪些數據。或者是由產品運營人員自己定義事件,決定要監測哪些元素或用戶行為,然后保存配置即可。這樣,其實就回到了 2.2 的半自動可視化埋點狀態了。

萬萬沒想到!上網會暴露這么多信息?10000 字深度揭秘用戶數據埋點采集技術

圖片來自 GrowingIO 首頁

據說可視化埋點是可以解放程序員的。當然,這只是理想狀態,不然程序員就都失業了。涉及到業務屬性的數據,如訂單號、金額、商品數據等需要調接口的埋點,可視化埋點就無法支持了。此外,由于各個端的代碼結構各不相同,也未必都能可視化獲取所有元素,這也是可視化埋點的局限性。

總而言之,可視化埋點只是個輔助能力,重點就在于可視化。能夠滿足一部分需求,解放部分生產力。但是稍微復雜一些的埋點,還是需要編碼來完成。

三、目前主流的數據上報技術

前面闡述了客戶端的埋點技術,下面再來介紹一下主流的上報技術。

3.1?客戶端主動上報

無論是 APP 還是瀏覽器,我們都可以統一稱作客戶端。大多數情況下,客戶端是通過 HTTP 請求,將數據上報給服務器的。APP 或桌面軟件使用相應的程序語言發送請求,而網頁一般使用 Javascript 腳本語言發送請求。

這個過程可能發生在用戶剛剛進入界面時,也可能發生在用戶離開界面之前,或者用戶執行某個動作時上報,或者在用戶無感知的情況下間歇性上報。

萬萬沒想到!上網會暴露這么多信息?10000 字深度揭秘用戶數據埋點采集技術

圖片來自 @姬小光

具體的上報時機選擇各有利弊,需要在統計的實時性、服務器壓力、數據的準確性之間進行權衡。比如:如果把數據攢一部分再上報,雖然效率提高了,服務器壓力也小了,但是丟數據的風險就提高了。

這里可以解釋有些時候數據為什么會不準確,因為客戶端上報是要通過網絡發送請求的,請求過程可能會丟失數據,稱作丟包。再比如極端情況下,客戶端剛想發送數據到服務器,但是網絡突然斷掉了,這時候如果聯網時沒有重試機制,或者不再聯網,那這部分數據必然是統計不到了。

如果是網頁端的 Javascript 腳本上報,還會存在比如頁面的其他業務邏輯出錯導致腳本不再執行,或者頁面關閉前 onbeforeunload 事件未執行等等??傊?,要接受一定程度的上報誤差,只要誤差在可容忍的范圍內即可。

3.2?服務端獲取信息

在網頁中,用戶首次看到的一切,都是從服務器返回的(APP 不同,因為部分界面和邏輯已經安裝在了用戶的設備上,展示這部分界面不需要網絡請求)。那么服務器在應答你的客戶端請求的時候,也能拿到一些基本信息,比如你的瀏覽器類型、版本號、屏幕分辨率、IP 地址等等。

這些也可以作為基本的分析數據,比如業務中的網頁到底要兼容哪些設備,就可以先參照一下這些統計數據,看看是否要放棄兼容那些占比非常小的瀏覽器或設備。

這些數據有部分是可以通過頁面中的腳本語言獲取,再“異步”上報給服務器的。所謂“異步”,即并非在你訪問網頁的瞬間執行,而是有延后,異步執行的邏輯。除了服務器能獲得的這些基本信息外,其他信息都要通過上文闡述的埋點技術獲取,并異步發送給服務器記錄了。

四、基本的識別分析方法

這里講的識別分析方法,還沒有到數據分析層面,只是對于上報的零散數據有一個基本的認識。

4.1?設備唯一性

前面講過,設備的基本信息是可以獲取的,但是也可能被偽造。那么到底怎樣才算是一個真實的設備呢?

常用的辦法,就是為每一個設備分配一個唯一的 ID,至于這個 ID 叫什么就無所謂了。比如友盟的設備唯一 ID 叫做 UMID,其定義為:新增用戶以 UMID 作為唯一設備識別,UMID 是基于友盟+自己的設備 ID 生產算法,在 APP 的生命周期保持穩定性和唯一性。而 TalkingData 的設備唯一 ID 為 TDID,TDID 是基于 SDK 獲取的設備信息以及常量參數并結合 TD 的加密方案生成一臺設備的標識,以便持久化來保持設備的唯一性。

從上面一段話我們可以發現,各家都是擁有自己獨特的生成算法的。為什么這樣呢?答案就是,普通的算法太容易被偽造,只能絞盡腦汁想出不易被破解的算法,才能真正識別出真實的唯一設備。

至于具體的算法,基本都是依賴設備的 MAC 地址,以及其他輔助信息生成的,具體不展開。

4.2?用戶唯一性

同理,用戶如果不加足夠的驗證條件,也是很容易被偽造的。因此,就要有針對用戶的唯一性判斷。

我們可以為用戶也分配一個唯一 ID,可以叫 uid,uuid,unionId 什么都可以。那么,這個唯一當然是理想狀態,根據具體實現不同,我們能做到應用內唯一,業務內唯一,跨業務唯一,全網內唯一等等。

網站數據統計中常說的 UV(Unique Visitor)獨立訪客,就是指這個唯一用戶的訪問計數。而 PV (Page View)訪問量,就是用戶每次打開某個頁面的計數。

那么,要想定義 UV,首先要看你定義的用戶,是在什么范圍內的唯一用戶,即對你來說,滿足哪些條件才能稱為一個用戶。這個條件可以是唯一的手機號,唯一的微信 unionId,唯一的設備 ID,你自己的系統生成的唯一 ID 等等。關于如何識別唯一用戶,后面我會單獨寫文章介紹,本文先說到這里。

4.3?用戶行為分析

用戶行為分析這個概念很大,這里簡單介紹幾個概念和原理,方便大家理解基本的用戶行為分析是怎樣實現的。

4.3.1 鼠標軌跡

前面介紹過鼠標事件的記錄原理,那么鼠標軌跡記錄也很簡單了,只要檢測到鼠標移動,就把當前的位置記下來,再擇機發送給服務端即可。

鼠標軌跡的意義,在于看出用戶的糾結與彷徨,思考過程中手部下意識的移動,和真的挪過去又放棄點擊,都可以在一定程度上,根據鼠標位置和間隔及停留時間推測出來。

我們都知道用戶的瀏覽順序是有統計規律的,所以一般網頁的核心信息架構都設計成 F 形。但是用戶端沒有眼動儀,要想追蹤用戶的瀏覽過程是不可能的,除非你黑掉用戶的攝像頭。此時,鼠標軌跡的意義就是幫助分析用戶的思考過程,屬于用戶研究的范疇。

鼠標軌跡再結合停留時間,就成了一副抽象派的藝術作品,用來做藝術創作也是不錯的:

萬萬沒想到!上網會暴露這么多信息?10000 字深度揭秘用戶數據埋點采集技術

圖片來源于網絡

4.3.2 關鍵路徑

有些時候,我們不僅希望知道用戶在某個頁面是怎么操作的,還希望知道用戶在整個網站或應用中的操作流程是怎樣的,具體從哪個界面跳到了哪個界面,最后在哪里轉化,在哪里離開的。然后再根據這些數據優化網站或應用的的關鍵路徑,提高轉化率。

上文提到過單個 tag 的上報原理,那么若想記錄路徑,就需要記錄多個節點或操作。這些操作可能是在一個網站或應用中,也可能跨越了不同的網站和應用。無論哪種形式,都要保證這個數據可以一直傳遞下去,才有可能記錄路徑。比如,如果是不同網站之間的傳遞,可能就需要通過在網址后面附加參數來實現:

萬萬沒想到!上網會暴露這么多信息?10000 字深度揭秘用戶數據埋點采集技術

圖片來自 @姬小光

具體流程如下:

萬萬沒想到!上網會暴露這么多信息?10000 字深度揭秘用戶數據埋點采集技術

圖片來自 @姬小光

訪問頁面 1 時參數為:

?rel_id=page_1

離開頁面 1 訪問頁面 2 時的參數變為:

?rel_id=page_1,page_2

離開頁面 2 訪問頁面 3 時的參數變為:

?rel_id=page_1,page_2,page_3

如果幾個頁面不是同個系統,你只能掌控落地頁,即 PAGE_3,那么鏈接上帶的參數也足夠說明用戶的訪問路徑了。如果路徑中的頁面你都能掌控,那么也可以根據設備唯一 ID 或者 用戶唯一 ID 加上訪問的時間順序來確定用戶操作路徑,即服務器拿到的訪問記錄為:

用戶訪問了 ?rel_id=page_1用戶訪問了 ?rel_id=page_2用戶訪問了 ?rel_id=page_3

這種情況下頁面 123 中都需要埋入上報代碼,每個頁面只上報自己的 URL 即可。上報邏輯應盡可能多地上報原始數據,比如可以附加當前頁面的停留時間等,方便日后進行更復雜的數據分析。

4.3.3 轉化率

路徑分析的目的就是要提高轉化率,那么程序邏輯上如何定義轉化率呢?我們先來看看轉化率的定義:

在網站分析中,轉化率一般的定義是,實現設定目標的次數,與訪問次數的比值。

萬萬沒想到!上網會暴露這么多信息?10000 字深度揭秘用戶數據埋點采集技術

可見,定義的關鍵在于分母,即達成目標的次數。我們的目標可以是下單、購買、或者到達某個頁面。如果是到達頁面,那么每一步的頁面跳轉都有一個轉化率,剩下的就是蹦失率,或者叫跳出率了。要想提高轉化率,不僅要在落地頁(Landing Page)上下功夫,關鍵路徑的優化也很重要。

因此,在關鍵路徑數據的基礎上,單獨分析某個頁面的到達次數,可以計算轉化率?;蛘?,如果想通過下單或支付來計算轉化率的話,一個簡單的辦法就是,看用戶是否到達了“下單成功”或者“支付成功”頁面,并且前面有合理的依賴路徑。當然,最準確的方式還是以實際的訂單數據和支付數據為準。

五、主流的統計平臺及工具

目前互聯網上已有眾多成熟的數據統計平臺及工具,各家都有自己獨特的特點和優勢。也有許多公司會考慮自建平臺,但不知是否可行,本章將淺析其利弊。

5.1?數據分析平臺

目前主流的 APP 或網站統計平臺有:GrowingIO、神策數據、MTA、百度統計、谷歌分析、諸葛IO、友盟等等。具體大家可以去官網了解,這里不做介紹。

5.2?行業分析報告

還有許多行業分析報告的平臺,底層也是通過大數據+AI 分析出更高維度的結論,供大家查看。比如艾瑞咨詢的數據報告,相信做互聯網的同學們都有自己的百寶箱,這里也不贅述。

5.3?自建數據平臺的利弊

最后說說自建數據平臺的利弊。首先,業務數據是敏感數據,接入第三方就要放寬心把數據交給其他平臺。而自建平臺就沒有這個煩惱。其次,第三方平臺雖然提供了很多強大的功能,但無法實現定制化的統計分析。容易陷入進退兩難的境地。而自建平臺靈活性就高很多,但是對人員和資源的要求相對較高。

最后,無論是使用第三方平臺還是自建平臺,都是停留在工具層面,若想真正得出有價值的結論,需要資深的數據分析人員來分析這些數據。就算是 AI 也要有科學的分析模型做指導,才能按照正確的路線學習進化下去。

綜上,我認為如果是起步階段的公司,建議直接使用成熟的平臺,基本可以滿足需求。如果是成熟的大公司,建議自建和外部同時使用,一方面可以滿足定制化需求,一方面可以借鑒外部工具的優點,取長補短,綜合參考。

總結

最后,結合前面的知識,我們再回到文初的兩個小故事。

No.1?神秘的銀行貸款額度

故事一中,招商銀行之所以打電話給我,定是在“e招貸”頁面進行了埋點上報,并標記為關鍵操作。如果某用戶瀏覽過這個頁面,就將其打標為“缺錢,亟需用錢”等。在營銷管理系統中,再將這批用戶篩選出來,由營銷人員挨個打電話推銷產品。

No.2?數據統計差異的迷思

故事二中,數據的差異是怎么產生的?

首先,兩家平臺對用戶訪問的定義可能不同。本例中百度是統計的用戶打開頁面算一個訪問,而我們自建平臺則是定義為有一個設備唯一 ID 進來,算一個訪問,這里就產生了差異。

此外,如果是點擊按鈕后打開一個新頁面,那么這里有兩個動作,一個是點擊,一個是進入新頁面,這里的統計口徑也可能有差異。

最后,前面 3.1 小節提到了上報時機的權衡,就是因為上報時候可能會丟數據。比如用戶的網絡忽然斷掉,還有網絡傳輸過程的丟包,這也會導致一定的差異。所以,遇到這種情況,只要確定邏輯上沒有硬傷,并且統計口徑一致,是允許一定程度的不一致的。

Q & A?網友提問

問:為什么百度谷歌的搜索結果點擊之后都會跳轉一次?

答:因為搜索引擎沒法主動在我們的頁面嵌入統計代碼,所以通過跳轉帶參數的方式(4.3.2),在中間頁進行數據埋點上報操作。

問:為什么所有的邀請鏈接上面都有一串亂碼?

答:邀請機制重點在于記錄邀請關系,那么當你把鏈接分享給別人,別人再打開的時候,系統如何知道是你分享的呢?這就是鏈接上的亂碼參數的作用。為什么是亂碼?這是因為系統希望知道是誰邀請的,但是不希望其他人可以自己破解并篡改參數。比如活動 ID 如果是數字,就可以隨便修改,訪問其他可能不想讓你看到的活動。領券 ID 如果是自增數字,就可以遍歷數字領取所有能耐領的券。

問:為什么不同系統統計出來的 PV,UV 會不同?

答:根據前文所述,可能有五種原因:

  1. 埋點邏輯不同;
  2. 上報機制不同;
  3. 統計口徑不同;
  4. 程序錯誤;
  5. 人為錯誤。

首先要明確雙方的統計口徑,比如是否都以服務端日志統計到的頁面打開次數為準,還是以頁面腳本上報的打開次數為準。再看上報邏輯,有沒有可能錯誤率不同,或上報的數據不一致。然后再排查系統邏輯是否有問題,或是否有改動。最后,再看是否在統計時發生了人為的錯誤導致最后統計結果出錯。

問:為什么外投廣告的展示次數我們統計不到?

答:根據前文所述,若想能埋點上報,首先要嵌入基礎的代碼。而外投的廣告都是在其他平臺,一般情況下無法在外部頁面嵌入代碼,比如:朋友圈廣告的展示。

問:如何統計外投廣告的真實數據,防止被忽悠?

答:如果外投位置可以配合埋入代碼,或者展示的時候可以請求我們自己的資源(圖片、視頻),或者主動調用我們的接口,那么可以作為輔助參考數據。但這個也可能造假,所以最好是修改統計口徑,比如以實際到達我們自己的落地頁為計費規則,或者是 CPS 方式,記錄引流,然后以我們實際的成交量為準計費。

問:我們的手機是怎么被判定為異常設備的?

答:我們知道有些設備會被微信或百度等判定為異常設備,而拒絕使用其賬號。先不管這個設備到底做了什么,我們只說些基本的檢測規則。如果是微信本身,那么最基本的,賬號發的請求中設備信息是否完整,是否真實設備,設備是否經常登錄過多賬號,設備是否經常換 IP,設備是否有位置變化等等,都是考慮因素。

還可能根據關聯賬號體系的行為共同檢測,比如關聯的 QQ 號是否有異常??傊?,一家公司自己的 APP 矩陣,是可以把數據共享,綜合起來判定一臺設備的行為的。比如百度系,頭條系等等。

問:為什么隨便一個網站上都能推薦我在淘寶搜索過的商品?

答:網站接入了淘寶的廣告,即這個網站嵌入了淘寶的代碼,那么如果你之前在淘寶瀏覽過某些品類,就會被記錄下來,在這些網站中再次推薦給你相關的商品。同樣,搜索的相關推薦也一樣,你在百度搜了些東西,然后看很多網站就都有這些字樣,甚至有時可能有點尷尬。

問:我們的數據還有安全可言嗎?

答:這個靈魂拷問,可以這樣理解:首先,你在網上的一切數據,都只是存在遠程的另一些電腦里。比如銀行流水算隱私了吧?

即使一般的銀行職員沒權限看,銀行的 DBA (數據庫管理員)總不能閉眼睛操作吧?安全是相對的,互聯網公司一般會將用戶隱私數據加密存儲,普通員工肯定是看不到的,只有擁有相應權限的人員才能看到,所以總體上可以說是安全的。除非極端情況,比如黑客攻擊,內部管控問題等。

好了,以上就是關于“用戶數據埋點采集技術”的全部,我們再補充下大綱,你學會了嗎?如果有任何問題,可以隨時留言交流。

附A?全文綱要

萬萬沒想到!上網會暴露這么多信息?10000 字深度揭秘用戶數據埋點采集技術

圖片來自 @姬小光

 

作者:姬小光,微信公眾號“姬小光(ID:hi-laser)”

本文由 @姬小光 原創發布于人人都是產品經理。未經許可,禁止轉載。

題圖來自Unsplash,基于CC0協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 很清晰

    回復