实例级DIL API允许您以编程方式创建和处理Audience Manager对象。 实例级方法增强了类级方法建立的API功能。
使用实例级DIL API时:
将客户和平台级映射添加到待处理请求的查询字符串。
函数签名: signals: function ({key1:value1, key2:value2},prefix){}
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();
将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标识服务实例的 |
dil.Instance.api.aamIdSync(initConfig) |
当您已经知道用户ID并希望将其发送给Audience Manager时。
重要: 此方法已弃用。请使用Adobe Experience Platform标识服务实例的 |
idSync Elements
idSync
可以包含以下内容:
名称 | 类型 | 描述 |
---|---|---|
dpid |
字符串 | Audience Manager 分配的数据提供程序 ID。 |
dpuuid |
字符串 | 用户的唯一数据提供程序 ID。 |
minutesToLive |
数值 | (可选)设置 Cookie 过期时间。必须为整数。默认值为 20160 分钟(14 天)。 |
url |
字符串 | 目标 URL。 |
宏
idSync
接受以下宏:
%TIMESTAMP%
: 生成时间戳(以毫秒为单位)。用于缓存无效的情况。%DID%
: 插入用户的Audience ManagerID。%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执行资源检查。 但是,[!UICONTROL 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();