本環節由測試人員完成,需要完成的任務如下:

  • 對事件和屬性的完整性及數據型別進行校驗
  • 對用戶關聯情況進行校驗
  • 驗證 App 與 H5 打通(做了打通的情況下)

1. 事件和屬性完整性校驗

進入神策分析頁面,點擊左下角【元事件管理】,查看元事件和屬性欄位,請注意此時事件和屬性顯示名仍是英文,後續需要統一調整為對應的中文名。檢查項如下:

1.1. 檢查事件及名字是否與《數據採集方案》一致。

事件是否有遺失或新增。如有新增事件可能是開發人員測試產生的,需要開發確認相關的埋點程式碼已經清除。如有遺失則可能是漏埋了或者埋點了但是未傳輸過數據。

1.2. 點選事件名,檢查其包含的屬性是否完整,名字和型別是否正確。

屬性是否有遺失或新增。這塊遺失的情況比較常見,可能是漏埋了。

屬性值型別是否與事件設計一致。如不一致,請開發在程式碼裡修正變量型別,然後聯繫技術支援同學修改變量型別,修正後的數據才可正常入庫。或者另取一個屬性名,數據即可直接入庫。



2. 對用戶關聯情況進行校驗

在開始本小節的校驗之前,請提前閱讀 第 2 步:如何準確的標識用戶 並確定理解了用戶關聯的概念和方案。

該環節需要結合神策分析中“自定義查詢”的功能來操作,校驗的目的有 3 點:

  1. 檢查 first_id 取值是否存在異常,是否有將 second_id 寫入 first_id 的錯誤操作;
  2. 檢查 second_id 取值是否異常,是否有正常關聯的用戶存在;
  3. 檢查用戶 ID 關聯過程是否正常。

2.1. 檢查 first_id 取值

查詢 users 表,檢查查詢結果中 first_id 是否為裝置 ID,以及是否存在異常情況。以下是各端 SDK 預設取的裝置 ID ,可根據 ID 格式大致判斷 first_id 取值是否正常。

查詢 sql: select * from users limit 1000
SQL
SDK 類型ID 樣式
Android 端01c23e12e10a7810(AndroidID 為 16 位 ,字母+數字组成)
iOS 端447BAE19-7117-4D1B-81E2-7B46AA7998A4(IDFA / IDFV / UUID 為32位,8-4-4-4-12)
H5 端15ffdb0a3f898-02045d1cb7be78-31126a5d-250125-15ffdb0a3fa40a
小程序oWDMZ0WHqfsjIz7A9B2XNQOWmN3E(28 位,字母+數字组成)

上面查詢結果中可能存在的常見情況有:

  • first_id = second_id,這種情況可能是正常的,如果開發人員在同一台裝置上登入過多個帳號,則除了首個登入的帳號會進行正常關聯外,其餘帳號均會發生自關聯,即出現 first_id = second_id = 帳號 ID 的情況。
  • first_id 的實際取值不是裝置 ID,而是帳號 ID,而 second_id 取值為空,這種情況代表著 second_id 誤寫入了 first_id,可透過下方SQL 進一步檢查。

查詢 sql:SELECT u1.first_id, u1.second_id, u2.first_id, u2.second_id FROM users u1 JOIN users u2 ON u1.first_id = u2.second_id WHERE u1.second_id IS NULL;
SQL

如果以上查詢有回傳結果,原因可能但不限於如下情況:

  • $SignUp 事件傳送失敗,導致沒有關聯成功;
  • 後端在傳 distinct_id 時沒有設置 is_login_id 的參數值為 true;
  • 呼 login 時誤呼叫了 identify,將登入 ID 替換了匿名 ID。

2.2. 檢查 second_id 取值

查詢 users 表,觀察 second_id 取值是否是預設的 user_id 或其他用戶唯一標識。注意,在測試環境中 second_id 大部分為空的情況可能是正常的,開發人員可能僅對少量測試帳號進行了 ID 關聯的嘗試。

檢查是否有正常關聯的情況存在,即 first_id 取值為裝置 ID,second_id 取值為 user_id。

2.3. 檢查用戶 ID 關聯過程是否正常

在 users 表的查詢結果中,選取一個正常關聯的情況的 id(users 表的 id 欄位)在events 表中查詢行為記錄。

查詢 sql:select * from events where user_id = "選取的id不用加引號" order by time
SQL

查詢結果中主要觀察的點,首次觸發 $SignUp 事件前後,events 表中的數據記錄的 $distinct_id 欄位前後取值會由裝置 ID 替換為 user_id。存在這個情況便表示存在有正常關聯的過程。如果您採取的是多對一的關聯方案,請聯繫對應的分析師協助這部分內容的校驗。

3. 驗證 App 與 H5 打通

做了 App 與 H5 打通 的情況下,才需要進行本環節的驗證。

如果是開發人員,進入神策分析頁面,點擊左下側【埋點】—>【導入實時查看】—>【Debug 數據】 事件名選擇 “$pageview” 點擊【開始刷新】實時查看具體事件及屬性是否正確。在手機上,打開 App 進入到 H5 頁面。看 “$pageview” 事件的屬性,如果有 “$wifi” “$network_type” 、“$app_version” 、“$carrier”等欄位,說明 App 和 H5 打通成功。(或者開啟 SDK 除錯日誌後,在開發工具的控制台,透過輸出的事件日誌訊息來核對)

也可以在事件分析中,找到 Web瀏覽頁面 事件,查看事件屬性中是否帶有 裝置ID、應用版本、是否 WIFI、網路類型、營運商。