例項層級 DIL 方法

實例級DIL API可讓您以程式設計方式建立並使用Audience Manager物件。 例項層級方法可增強由類別層級方法建立的API功能。

開始使用實例級DIL方法

使用實例級DIL API時:

  • 存取需要合作夥伴名稱和容器名稱空間ID(NSID)。 請連絡您的Audience Manager客戶經理以取得此項資訊。
  • 使用值、ID或您使用之方法所需的其他變數,取代API檔案中任何斜體​文字範例。

信號

將客戶和平台層級對應新增至待定請求的查詢字串。

函式簽名: signals: function ({key1:value1, key2:value2},prefix){}

注意
  • 您可以將其他API呼叫連結至此方法。
  • 如果頁面上有Adobe Experience CloudJavaScript程式庫,submit()會等待雲端設定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(); 

traits

將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

在預設目標發佈回呼後執行的函式。

函式簽名: 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

清除待審請求中的所有資料。

函式簽名: 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

將資料收集伺服器未明確定義的自訂查詢參數新增至待定請求。

函式簽名: 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' 
}); 

getContainerNSID

傳回DIL例項的容器NSID值。 用於除錯和疑難排解。

函式簽名: dil.api.getContainerNSID: function () {}

程式碼範例


var dataLib = DIL.create({ 
     partner: 'partnerName', 
     containerNSID: containerNSID 
}); 
 
//Verify the container NSID 
var nsid = dataLib.api.getContainerNSID();

getEventLog

以字串陣列的形式傳回按時間順序排序的事件記錄資料。 用於除錯和疑難排解。

函式簽名: 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'); 
}

getPartner

返回DIL實例的夥伴名稱。 用於除錯和疑難排解。

函式簽名: dil.api.getPartner: function () {}

程式碼範例


var dataLib = DIL.create({ 
     partner: 'partnerName' 
     containerNSID: containerNSID 
}); 
 
//Verify the partner name 
var partner = dataLib.api.getPartner();

getState

返回當前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: [] 
     } 
} 
*/

idSync

由兩個函陣列成,可讓資料合作夥伴彼此交換並同步使用者ID,以及Audience Manager。

函式簽名:

適用於DIL 2.10和3.1版或更新版本。

程式碼 同步使用者 ID
dil.Instance.api.idSync(initConfig)

不同資料合作夥伴與Audience Manager。 例如,合作夥伴x會使用此項來同步使用者ID與合作夥伴y,然後將其傳送至Audience Manager。

重要: 此方法已過時。請使用Adobe Experience Platform身份服務實例的 idSyncByURL 方法。

dil.Instance.api.aamIdSync(initConfig)

當您已知道使用者ID並想要傳送給Audience Manager時。

重要: 此方法已過時。請使用Adobe Experience Platform身份服務實例的 idSyncByDataSource 方法。

idSync Elements

idSync 可包含下列項目:

名稱 類型 說明
dpid 字串

Audience Manager 指派的資料提供者 ID。

dpuuid 字串

資料提供者的使用者唯一 ID。

minutesToLive 數字

(選用) 設定 Cookie 過期時間。必須是整數。預設為 20160 分鐘 (14 天)。

url 字串

目標 URL。

巨集

idSync 接受以下宏:

  • %TIMESTAMP%:生 成時間戳記(以毫秒為單位)。用於快取破產。
  • %DID%: 插入用戶的Audience ManagerID。
  • %HTTP_PROTO%: 設定頁協定( httphttps)。

回應

如果成功,兩個函式都返回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

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

useCORSOnly 是布林值true/false參數,可控制瀏覽器從其他網域要求資源的方式。

概述

useCORSOnly 預設為false。False表示瀏覽器可以使用CORS或JSONP執行資源檢查。 不過,[!UICONTROL DIL]一律會先嘗試向CORS請求資源。 在不支援 CORS 的舊版瀏覽器上會回復為 JSONP 要求。如果您需要強制瀏覽器僅使用CORS,例如針對安全性要求較高的網站,請設定useCORSOnly:true

程式碼範例


var dilInstance = DIL.create({ 
     ... 
     useCORSOnly: true 
});
重要
  • 建議您只有在確定您的網站訪客擁有支援此功能的瀏覽器時,才設定useCORSOnly: true
  • useCORSOnly: true時,DIL將不會從Internet Explorer 9或更舊版本呼叫ID。

useImageRequest

將請求類型從指令碼<src>更改為映像<img>

函式簽名: useImageRequest: function () {}

注意

您可以將其他API呼叫連結至此方法。

回應

傳回目前DIL例項的API物件。

程式碼範例


var dataLib = DIL.create({ 
     partner:'partnerName', 
     containerNSID: containerNSID 
}); 
 
dataLib.api.traits([123, 456, 789]).useImageRequest().submit();

本頁內容

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now