实例级别 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对象。

响应

返回当前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' 
});

submit

向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

由两个功能组成,它们使数据合作伙伴能够在它们之间和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实例的 idSyncByURL 方法。

dil.Instance.api.aamIdSync(initConfig)

当您已经知道用户ID并希望将其发送到Audience Manager时。

重要: 此方法已弃用。请使用Adobe Experience Platform Identity Service实例的 idSyncByDataSource 方法。

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

响应

返回当前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();

On this page

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