例項層級DIL API可讓您以程式設計方式建立並使用Audience Manager物件。 例項層級方法可增強由類別層級方法建立的API功能。
使用實例級DIL API時:
將客戶和平台層級對應新增至待定請求的查詢字串。
函式簽名: signals: function ({key1:value1, key2:value2},prefix){}
submit()
會等待Cloud設定Cookie,再傳送請求。保留請求金鑰
下列請求金鑰會保留,此方法無法覆寫:
sids
pdata
logdata
callback
postCallbackFn
useImageRequest
參數
名稱 | 類型 | 說明 |
---|---|---|
obj |
物件 | 表示平台級映射的鍵值對的對象。 參數接受字串和陣列作為對象中的屬性值。 |
prefix |
字串 | 選填。每個物件索引鍵前置的字串值(取代原始索引鍵)。 |
return |
DIL.api | 傳回目前DIL例項的API物件。 |
回應
傳回目前DIL例項的API物件。
程式碼範例
var dataLib = DIL.create({
partner: 'partnerName'
containerNSID: containerNSID
});
// Method 1
var obj = { key1 : 1, key2 : 2 };
dataLib.api.signals(obj, 'c_').submit();
// Method 2
dataLib.api.signals({c_zdid: 54321}).submit();
// Method 3
// Will send 'c_key=a&c_key=2&c_key=3' to Audience Manager
var obj = { key : ['a', 'b', 'c'] };
dataLib.api.signals(obj, 'c_').submit();
將SID新增至待定請求的查詢字串。
函式簽名: traits:function (sids){}
您可以將其他API呼叫連結至此方法。
參數
名稱 | 類型 | 說明 |
---|---|---|
sids |
陣列 | 陣列中的特徵區段ID。 |
回應
傳回目前DIL例項的API物件。
程式碼範例
var partnerObject = DIL.create({
partner: 'partner name',
containerNSID: NSID
});
partnerObject.api.traits([123, 456, 789]);
將資料新增至待審請求中的記錄檔。
函式簽名: logs: function {key1:value1, key2:value2}
回應
傳回目前DIL例項的API物件。
程式碼範例
var partnerObject = DIL.create({
partner: 'partner',
containerNSID: NSID
});
partnerObject.api.logs({
file: 'dil.js',
message: 'This is the first request'
});
提交DIL例項的所有待審資料至Audience Manager。
函式簽名: submit: function () {}
您可以將其他API呼叫連結至此方法。 此外,DIL會將編碼資料寫入目標Cookie。 例如,空格會編碼為%20
,分號則編碼為%3B
。
回應
傳回目前DIL例項的API物件。
程式碼範例
var dataLib = DIL.create({
partner: 'partnerName',
containerNSID: containerNSID
});
dataLib.api.traits([
123,456, 789]).logs({
file: 'dil.js',
message: 'This is the first request'
}).signals({
c_zdid: 1111
d_dma: 'default'
}).submit();
在預設目標發佈回呼後執行的函式。
函式簽名: afterResult: function (fn) {}
您可以將其他API呼叫連結至此方法。
參數
名稱 | 類型 | 說明 |
---|---|---|
fn |
函數 | 您要在JSON之後執行的函式,會由處理目標發佈的預設回呼處理。 |
回應
傳回目前DIL例項的API物件。
程式碼範例
var dataLib = DIL.create({
partner: 'partnerName',
containerNSID: containerNSID
});
dataLib.api.signals({
c_zdid: 54321
d_dma: 'default'
}).afterResult(function(json){
/Do something with the JSON data returned from the server.
}).submit();
清除待審請求中的所有資料。
函式簽名: clearData: function () {}
您可以將其他API呼叫連結至此方法。
回應
傳回目前DIL例項的API物件。
程式碼範例
var dataLib = DIL.create({
partner: 'partnerName',
containerNSID: containerNSID
});
dataLib.api.traits([123,456, 789]).logs({
file: 'dil.js'
message: 'This is the first request'
}).signals({
c_zdid: 1111
d_dma: 'default'
});
//Reset the pending data
dataLib.clearData();
將資料收集伺服器未明確定義的自訂查詢參數新增至待定請求。
函式簽名: customQueryParams: function (obj) {}
您可以將其他API呼叫連結至此方法。
保留請求金鑰
下列請求金鑰會保留,此方法無法覆寫:
sids
pdata
logdata
callback
postCallbackFn
useImageRequest
回應
傳回目前DIL例項的API物件。
程式碼範例
var partnerObject = DIL.create({
partner: 'partner',
containerNSID: NSID
});
partnerObject.api.customQueryParams({
nid: 54231,
ntype: 'default'
});
傳回DIL例項的容器NSID值。 用於除錯和疑難排解。
函式簽名: dil.api.getContainerNSID: function () {}
程式碼範例
var dataLib = DIL.create({
partner: 'partnerName',
containerNSID: containerNSID
});
//Verify the container NSID
var nsid = dataLib.api.getContainerNSID();
以字串陣列的形式傳回按時間順序排序的事件記錄資料。 用於除錯和疑難排解。
函式簽名: dil.api.getEventLog: function () {}
程式碼範例
var dataLib = DIL.create({
partner: 'partnerName',
containerNSID: containerNSID
});
dataLib.api.traits([123, 456, 789]).logs({
file: 'dil.js',
message: 'This is the first request'
});.signals({
c_zdid: 1111
d_dma: 'default'
});.submit();
//Check log for messages
var log = dataLib.api.getEventLog();
if (log && log.length) {
alert(log.join('\n'));
}else{
alert('No log messages');
}
返回DIL實例的夥伴名稱。 用於除錯和疑難排解。
函式簽名: dil.api.getPartner: function () {}
程式碼範例
var dataLib = DIL.create({
partner: 'partnerName'
containerNSID: containerNSID
});
//Verify the partner name
var partner = dataLib.api.getPartner();
返回當前DIL實例的狀態。 用於除錯和疑難排解。
函式簽名: dil.api.getState: function () {}
程式碼範例
var dataLib = DIL.create({
partner: 'partnerName',
containerNSID: containerNSID
});
dataLib.api.traits([123, 456, 789]).logs({
file: 'dil.js',
message:'This is the first request'
});.signals({
c.zdid: 1111
d_dma: 'default'
});.submit();
var state = dataLib.api.getState();
/*Object outline of state
state = {
pendingRequest: {pending data for call to server},
otherRequestInfo:{
firingQueue: [],
fired: [],
firing: false,
errored: [],
reservedKeys: {
sids: true,
pdata: true,
logdata: true,
callback: true,
postCallbackFn: true,
useImageRequest: true,
},
firstRequestHasFired: false,
num_of_jsonp_responses: 0,
num_of_jsonp_errors: 0,
num_of_img_responses: 0,
num_of_img_errors: 0
},
destinationPublishingInfo: {
THROTTLE_START: 3000,
throttleTimerSet: false,
id: ''destination_publishing_iframe_' + partner + '_' + containerNSID,
url: (constants.isHTTPS ? 'https://' : 'https://fast.') + partner + '.demdex.net/dest3.html?d_nsid='
+ containerNSID + '#' + encodeURIComponent(document.location.href),
iframe: null,
iframeHasLoaded: false,
sendingMessages: false,
messages: [],
messageSendingInterval: constants.POST_MESSAGE_ENABLED ? 15: 100,
/Recommend 100ms for IE 6 & 7, 15ms for other browsers
jsonProcessed: []
}
}
*/
由兩個功能組成,可讓資料合作夥伴在他們和Audience Manager之間交換及同步使用者ID。
函式簽名:
適用於DIL 2.10和3.1版或更新版本。
程式碼 | 同步使用者 ID |
---|---|
dil.Instance.api.idSync(initConfig) |
不同資料合作夥伴和Audience Manager之間。 例如,合作夥伴x會使用此項來同步使用者ID與合作夥伴y,然後將其傳送至Audience Manager。
重要: 此方法已過時。請使用Adobe Experience Platform Identity Service例項的 |
dil.Instance.api.aamIdSync(initConfig) |
當您已知道使用者ID,並想要將它傳送至Audience Manager時。
重要: 此方法已過時。請使用Adobe Experience Platform Identity Service例項的 |
idSync Elements
idSync
可包含下列項目:
名稱 | 類型 | 說明 |
---|---|---|
dpid |
字串 | Audience Manager 指派的資料提供者 ID。 |
dpuuid |
字串 | 資料提供者的使用者唯一 ID。 |
minutesToLive |
數字 | (選用) 設定 Cookie 過期時間。必須是整數。預設為 20160 分鐘 (14 天)。 |
url |
字串 | 目標 URL。 |
巨集
idSync
接受以下宏:
%TIMESTAMP%
:生 成時間戳記(以毫秒為單位)。用於快取破產。%DID%
: 插入使用者的Audience Manager ID。%HTTP_PROTO%
: 設定頁協定( http
或 https
)。回應
如果成功,兩個函式都返回Successfully queued
。 如果失敗則傳回錯誤訊息字串。
程式碼範例
dilInstance.api.idSync(initConfig)
// Fires url with macros replaced
dilInstance.api.idSync({
dpid: '23', / must be a string
url: '/su.addthis.com/red/usync?pid=16&puid=%DID%&url=%HTTP_PROTO%%3A%2F%2Fdpm.demdex.net
%2Fibs%3Adpid%3D420%26dpuuid%3D%7B%7Buid%7D%7D',
minutesToLive: 20160 / optional, defaults to 20160 minutes (14 days)
});
dilInstance.api.aamIdSync(initConfig)
// Fires 'https:/https:' + '/dpm.demdex.net/ibs:dpid=<dpid>&dpuuid=<dpuuid>'
dilInstance.api.aamIdSync({
dpid: '23', / must be a string
dpuuid: '98765', / must be a string
minutesToLive: 20160 / optional, defaults to 20160 minutes (14 days)
});
新增回呼(接收JSON)至待審請求。
函式簽名: result: function (callback) {}
此回呼會取代處理目標發佈的預設回呼。
您可以將其他API呼叫連結至此方法。
參數
名稱 | 類型 | 說明 |
---|---|---|
callback |
函數 | 由JSONP回呼執行的JavaScript函式。 |
回應
傳回目前DIL例項的API物件。
程式碼範例
var dataLib = DIL.create({
partner: 'partnerName',
containerNSID: containerNSID
});
dataLib.api.traits([123, 456, 789]).result(function(json){
/Do something, possibly with the JSON data returned from the server.
});.submit();
secureDataCollection
是布林參數,可控 DIL 制對和Akamai的 Data Collection Servers (DCS) 呼叫。
當secureDataCollection= true
(預設)時,DIL一律會進行安全的HTTPS呼叫。
當secureDataCollection= false
時,DIL會遵循頁面設定的安全通訊協定,進行HTTP或HTTPS呼叫。
如果您在相同頁面上使用visitorAPI.js和DIL,請設定secureDataCollection= false
。 請參閱以下程式碼範例。
var dilInstance = DIL.create({
...
secureDataCollection: false
});
useCORSOnly
是布林值true/false參數,可控制瀏覽器從其他網域要求資源的方式。
概述
useCORSOnly
預設為false。False表示瀏覽器可以使用CORS或JSONP執行資源檢查。 不過,DIL一律會先嘗試向CORS請求資源。 在不支援 CORS 的舊版瀏覽器上會回復為 JSONP 要求。如果您需要強制瀏覽器僅使用CORS,例如針對安全性要求較高的網站,請設定useCORSOnly:true
。
程式碼範例
var dilInstance = DIL.create({
...
useCORSOnly: true
});
useCORSOnly: true
。useCORSOnly: true
時,DIL將不會從Internet Explorer 9或更舊版本呼叫ID。將請求類型從指令碼<src>
更改為映像<img>
。
函式簽名: useImageRequest: function () {}
您可以將其他API呼叫連結至此方法。
回應
傳回目前DIL例項的API物件。
程式碼範例
var dataLib = DIL.create({
partner:'partnerName',
containerNSID: containerNSID
});
dataLib.api.traits([123, 456, 789]).useImageRequest().submit();