SDK 整合 (Web)
- 在使用前,請先閱讀數據模型
- SDK 更新日誌,可參考 Release Notes
1. 整合神策分析 SDK
將產生的程式碼放入 html 的 head 裡面,需要放在稍微靠前點的位置。
將以下程式碼放入 html 的 head 裡面,需要放在稍微靠前點的位置。 您在使用 sensors.track() 時,只要確保寫在上面引用的程式碼的下面就可以,不需要等 window.onload 後再執行。
<script>
(function(para) {
var p = para.sdk_url, n = para.name, w = window, d = document, s = 'script',x = null,y = null;
if(typeof(w['sensorsDataAnalytic201505']) !== 'undefined') {
return false;
}
w['sensorsDataAnalytic201505'] = n;
w[n] = w[n] || function(a) {return function() {(w[n]._q = w[n]._q || []).push([a, arguments]);}};
var ifs = ['track','quick','register','registerPage','registerOnce','clearAllRegister','trackSignup', 'trackAbtest', 'setProfile','setOnceProfile','appendProfile', 'incrementProfile', 'deleteProfile', 'unsetProfile','identify','login','logout','trackLink'];
for (var i = 0; i < ifs.length; i++) {
w[n][ifs[i]] = w[n].call(null, ifs[i]);
}
if (!w[n]._t) {
x = d.createElement(s), y = d.getElementsByTagName(s)[0];
x.async = 1;
x.src = p;
x.setAttribute('charset','UTF-8');
w[n].para = para;
y.parentNode.insertBefore(x, y);
}
})({
sdk_url: '在 github 下載新版本的 sensorsdata.min.js ',
name: 'sensors',
server_url:'數據接收網址',
heatmap: {
//是否開啟點擊圖,default 表示開啟,自動採集 $WebClick 事件,可以設定 'not_collect' 表示關閉。
clickmap:'default',
//是否開啟處達注意力圖,not_collect 表示關閉,不會自動採集 $WebStay 事件,可以設定 'default' 表示開啟。
scroll_notice_map:'not_collect'
}
});
sensors.quick('autoTrack');
</script>
如果您需要把引入程式碼和 SDK 文件整合在一个文件中,然後在頁面head藉由script src 的方式引入。你可以把引入程式碼改成如下方式,並放在下載下来的 sensorsdata.min.js 文件前面。
<script charset='UTF-8' src="https://cdn.jsdelivr.net/npm/sa-sdk-javascript@1.15.1/sensorsdata.min.js"></script>
<script>
var sensors = window['sensorsDataAnalytic201505'];
sensors.init({
sdk_url: 'https://cdn.jsdelivr.net/npm/sa-sdk-javascript@1.15.1/sensorsdata.min.js',
heatmap_url: 'https://cdn.jsdelivr.net/npm/sa-sdk-javascript@1.15.1/heatmap.min.js',
name: 'sensors',
server_url: 'http://test-syg.datasink.sensorsdata.cn/sa?token=27f1e21b78daf376&project=xxxxxx'
});
sensors.quick('autoTrack');
</script>
從 npm 取得 sdk , npm install sa-sdk-javascript
var sensors = require('sa-sdk-javascript');
sensors.init({
server_url: '數據接收網址',
heatmap: {
//是否開啟點擊圖,default 表示開啟,自動採集 $WebClick 事件,可以設定 'not_collect' 表示關閉。
clickmap:'default',
//是否開啟處達注意力圖,not_collect 表示關閉,不會自動採集 $WebStay 事件,可以設定 'default' 表示開啟。
scroll_notice_map:'not_collect'
}
});
sensors.quick('autoTrack'); //用於採集 $pageview 事件。
從GitHub 取得 sensorsdata.amd.min.js ,假設該文件放到與 require.js 同一個目錄中
requirejs(["./sensorsdata.amd.min"], function(sensors) {
sensors.init({
server_url: '數據接收網址',
heatmap:{
clickmap: 'default',
scroll_notice_map: 'not_collect'
}
});
sensors.quick('autoTrack');
});
- 不要將頁面渲染的程式碼放在 window.onload 中。當神策伺服器異常時,Web JS SDK 傳送的圖片數據請求無法即時回應,會導致 window.onload 無法生效。如果一定要使用 window.onload 的話,建議將 send_type 參數設為jo4 'ajax',使用 ajax 傳送數據。
不要在線上 file 協定網址的頁面中使用 Web JS SDK,因為無法寫 cookie 記錄用戶,觸發大量新增的匿名用戶數據和 profile_set_once 事件。
不要在 iframe 內嵌的跨網域 H5 頁面內使用 Web JS SDK,因為部分瀏覽器對於第三方 cookie 的限制策略會導致 SDK 無法讀寫 cookie,進而導致會觸發大量新增的匿名用戶數據和 profile_set_once 事件。
ie9 瀏覽器使用 SDK 時,如果設定了 send_type: true 且頁面網址的協定與 server_url 協定不一致時,會導致數據無法發送。另外,所有設定項上的請求協定與頁面網址的協定要求保持一致。
2. SDK 基本設定
2.1. 設定專案數據接收網址
自動產生匯入程式碼時,會自動設定前專案接收網址。其他方式引入 SDK 時,需要手動將 server_url 參數設定為相應專案的數據接收網址。
2.2. 開啟全埋點
初始化 SDK 時,heatmap 參數和 quick() 介面可以設定 SDK 全埋點。全埋點的更多設定,可參考全埋點 (Web) 。
2.3. 設定事件公共屬性
對於所有事件都需要增加的屬性,可在初始化 SDK 後,呼叫 registerPage() 將屬性註冊為公共屬性:
<script>
// 初始化 SDK
// 註冊公共屬性
sensors.registerPage({
current_url: location.href,
referrer: document.referrer
});
</script>
2.4. 用戶登入
當用戶註冊成功或者登入成功時,需要呼叫 login() 方法傳入登入 ID:
sensors.login("登入 ID")
對於自動登入的用戶,SDK 初始化後,需要立即取得登入 ID 並呼叫 login() 方法。
2.5. 程式碼埋點追蹤事件
SDK 初始後,即可以透過 track() 方法追蹤用戶行為事件,並增加自定義屬性:
sensors.track('BuyProduct', {
ProductName: "MacBook Pro",
ProductPrice: 123.45,
IsAddedToFav: false,
});
3. 除錯查看事件資訊
3.1. 事件的觸發 log
SDK 初始化時,將 show_log 設定為 true 即可打開 log 輸出功能。頁面上有事件觸發時,瀏覽器開發者工具會列印出採集的事件資訊。
3.2. 事件的傳送情况
事件數據傳送成功時,在瀏覽器開發者工具的 Network 模組中,可以看到 sa.gif 的網路請求,如果狀態為 200,則程式碼事件數據傳送成功。
4. SDK 可選設定
4.1. 設定用戶屬性
setProfile() 方法可以設定用戶屬性,同一個 key 多次設定時,value 值會進行覆蓋替換。
sensors.setProfile({email:'xxx@xx'});
更多設定用戶屬性 API,可參考設定用戶屬性。
4.2. 打通 App 與 H5
對於嵌入 App 中 H5 頁面,如果 App 也整合了神策分析的 SDK ,H5 頁面數據可以透過 App 進行上報,並會自動增加 App 取得到的預設屬性。該功能預設是關閉狀態,可參考 App 打通 H5 進行開啟。
4.3. 可視化全埋點
版本要求
Web JS SDK v1.15.10 及以上版本
在整合 Web JS SDK 後,如果開啟了全埋點功能,則可視化全埋點功能也會自動開啟。詳細可參考可視化全埋點。