实例级别 DIL 方法 instance-level-dil-methods

WARNING
自2023年7月起,Adobe已停止开发新能源。 Data Integration Library (DIL) 和 DIL 扩展。
现有客户可继续使用其 DIL 实现。 但是,Adobe将不会开发 DIL 超越这一步。 我们鼓励客户对 Experience PlatformWeb SDK 长期数据收集策略。
如果客户希望在2023年7月之后实施新的数据收集集成,则应使用 Experience PlatformWeb SDK 而是。

实例级别 DIL API允许您以编程方式创建和使用Audience Manager对象。 实例级方法增强了由类级方法建立的API功能。

实例级别DIL方法快速入门 get-started-dil-methods

使用实例级别时 DIL API:

  • 访问需要合作伙伴名称和容器命名空间ID (NSID)。 请联系您的Audience Manager客户经理以获取此信息。
  • 替换任意示例 斜体 API文档中的文本,其中包含值、ID或您使用的方法所需的其他变量。

信号 signals

将客户和平台级别的映射添加到待处理请求的查询字符串。

函数签名: signals: function ({key1:value1, key2:value2},prefix){}

NOTE
  • 您可以将其他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 traits

向挂起的请求的查询字符串添加SID。

函数签名: traits:function (sids){}

NOTE
您可以将其他API调用链接到此方法。

参数

名称
类型
描述
sids
数组
数组中的特征区段ID。

响应

返回当前的API对象 DIL 实例。

示例代码


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

日志 logs

将数据添加到待处理请求中的日志文件。

函数签名: 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 submit

将所有待处理数据提交到Audience Manager DIL 实例。

函数签名: submit: function () {}

NOTE
您可以将其他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

在默认目标发布回调之后执行的函数。

函数签名: afterResult: function (fn) {}

NOTE
您可以将其他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

清除待处理请求中的所有数据。

函数签名: clearData: function () {}

NOTE
您可以将其他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

将数据收集服务器未明确定义的自定义查询参数添加到挂起请求中。

函数签名: customQueryParams: function (obj) {}

NOTE
您可以将其他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 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 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 getpartner

返回伙伴名称 DIL 实例。 对调试和故障排除非常有用。

函数签名: dil.api.getPartner: function () {}

示例代码


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

//Verify the partner name
var partner = dataLib.api.getPartner();

getState 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 idsync

由两个功能组成,允许数据合作伙伴相互交换用户ID并同步用户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)
});

结果 result

将回调(接收JSON)添加到待处理请求。

函数签名: result: function (callback) {}

此回调替换了处理目标发布的默认回调。

NOTE
您可以将其他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

secureDataCollection 是一个布尔参数,用于控制如何 DIL 调用 Data Collection Servers (DCS) 和Akamai。

  • 时间 secureDataCollection= true (默认), DIL 始终进行安全的HTTPS调用。

  • 时间 secureDataCollection= false, DIL 按照页面设置的安全协议进行HTTP或HTTPS调用。

IMPORTANT
设置 secureDataCollection= false 如果您使用visitorAPI.js和 DIL 在同一页面上。 请参阅下面的代码示例。

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

useCORSOnly usecorsonly

useCORSOnly 是一个布尔值true/false参数,用于控制浏览器如何从其他域请求资源。

概述

useCORSOnly 默认为false。 False表示浏览器可以使用CORS或JSONP执行资源检查。 但是, DIL 始终尝试先使用CORS请求资源。 它会在不支持 CORS 的早期浏览器中还原为 JSONP。如果您需要强制浏览器仅使用CORS(例如,对于具有高安全要求的站点),请设置 useCORSOnly:true.

代码示例


var dilInstance = DIL.create({
     ...
     useCORSOnly: true
});
IMPORTANT
  • 我们建议您设置 useCORSOnly: true 仅当您确定您的网站访客拥有支持此功能的浏览器时。
  • 时间 useCORSOnly: true, DIL 不会从Internet Explorer版本9或更低版本中进行ID调用。

useImageRequest useimagerequest

将请求类型更改为图像 <img> 从脚本 <src>.

函数签名: useImageRequest: function () {}

NOTE
您可以将其他API调用链接到此方法。

响应

返回当前的API对象 DIL 实例。

示例代码


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

dataLib.api.traits([123, 456, 789]).useImageRequest().submit();
recommendation-more-help
de293fbf-b489-49b0-8daa-51ed303af695