实例级别 DIL 方法

執行個體層級 DIL API可讓您以程式設計方式建立及使用Audience Manager物件。 執行個體層級方法可增強由類別層級方法建立的API功能。

執行個體層級DIL方法快速入門

使用例項層級時 DIL API:

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

訊號

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

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

注意
  • 您可以將其他API呼叫連結至此方法。
  • 如果頁面上有Adobe Experience Cloud JavaScript程式庫, submit() 會等待雲端設定Cookie後再傳送請求。

保留的請求金鑰

下列要求金鑰已保留,且無法由此方法覆寫:

  • sids
  • pdata
  • logdata
  • callback
  • postCallbackFn
  • useImageRequest

参数

名称 类型 描述
obj 对象 代表平台層級對應之索引鍵/值組的物件。 引數接受字串和陣列做為物件中的屬性值。
prefix 字符串 可选。每個物件索引鍵加上前置詞的字串值(取代原始索引鍵)。
return DIL.api 傳回目前DIL例項的API物件。

响应

傳回目前的API物件 DIL 執行個體。

示例代码


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。

响应

傳回目前的API物件 DIL 執行個體。

示例代码


var partnerObject = DIL.create({
     partner: 'partner name',
     containerNSID: NSID
});
partnerObject.api.traits([123, 456, 789]);

記錄

將資料新增至擱置中請求的記錄檔。

函式簽章: logs: function {key1:value1, key2:value2}

响应

傳回目前的API物件 DIL 執行個體。

示例代码


var partnerObject = DIL.create({
     partner: 'partner',
     containerNSID: NSID
});
partnerObject.api.logs({
     file: 'dil.js',
     message: 'This is the first request'
});

submit

提交所有待處理的資料給Audience Manager DIL 執行個體。

函式簽章: submit: function () {}

注意

您可以將其他API呼叫連結至此方法。 此外, DIL 將編碼資料寫入目的地Cookie。 例如,空格會編碼為 %20 和分號為 %3B.

响应

傳回目前的API物件 DIL 執行個體。

示例代码


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後,您要執行的函式。

响应

傳回目前的API物件 DIL 執行個體。

示例代码


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呼叫連結至此方法。

响应

傳回目前的API物件 DIL 執行個體。

示例代码


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

傳回的容器NSID值 DIL 執行個體。 用於偵錯和疑難排解。

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

重要: 此方法已過時。 請使用 idSyncByURL Adobe Experience Platform Identity Service執行個體的方法。

dil.Instance.api.aamIdSync(initConfig)

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

重要: 此方法已過時。 請使用 idSyncByDataSource Adobe Experience Platform Identity Service執行個體的方法。

idSync元素

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函式。

响应

傳回目前的API物件 DIL 執行個體。

示例代码


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 呼叫 Data Collection Servers (DCS) 和Akamai。

  • 時間 secureDataCollection= true (預設), DIL 一律會進行安全的HTTPS呼叫。

  • 時間 secureDataCollection= false, DIL 會依照頁面所設定的安全性通訊協定來進行HTTP或HTTPS呼叫。

重要

設定 secureDataCollection= false 如果您使用visitorAPI.js和 DIL 在相同頁面上。 請參閱下列程式碼範例。


var dilInstance = DIL.create({
     ...
     secureDataCollection: false
});

useCORSOnly

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呼叫。

useImageRequest

將請求型別變更為影像 <img> 從指令碼 <src>.

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

注意

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

响应

傳回目前的API物件 DIL 執行個體。

示例代码


var dataLib = DIL.create({
     partner:'partnerName',
     containerNSID: containerNSID
});

dataLib.api.traits([123, 456, 789]).useImageRequest().submit();

在此页面上