Show Menu
主题×

实例级DIL方法

通过实例级API, DIL 您可以有计划地创建和使用Audience manager对象。 实例级方法增强了类级方法所建立的API功能。

实例级DIL方法入门

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

信号

将客户和平台级映射添加到待处理请求的查询字符串。
函数签名: signals: function ({key1:value1, key2:value2},prefix){}
  • 您可以将其他API调用链接到此方法。
  • 如果Adobe Experience Cloud javaScript库位于页面上, submit() 则在发送请求之前等待Cloud设置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

向待处理请求中的日志文件添加数据。
函数签名: 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

由两个功能组成,它们使数据合作伙伴能够在他们与Audience Manager之间交换和同步用户ID。
函数签名:
适用于 DIL 版本2.10和3.1或更高版本。
代码 同步用户 ID
dil.Instance.api.idSync(initConfig)
不同数据合作伙伴和Audience Manager之间。 例如,合作伙伴x将使用它将用户ID与合作伙伴y同步,然后将其发送到Audience Manager。
重要说明: 此方法已弃用。 请使用 idSyncByURL Experience Cloud ID服务实例的方法。
dil.Instance.api.aamIdSync(initConfig)
当您已经知道用户ID并希望将其发送到Audience Manager时。
重要说明: 此方法已弃用。 请使用 idSyncByDataSource Experience Cloud ID服务实例的方法。
idSync Elements
idSync 可以由以下组成:
名称 类型 描述
dpid 字符串
Audience Manager 分配的数据提供程序 ID。
dpuuid 字符串
用户的唯一数据提供程序 ID。
minutesToLive 数值
(可选) 设置 Cookie 过期时间。必须为整数。默认值为 20160 分钟(14 天)。
url 字符串
目标 URL。
idSync 接受以下宏:
  • %TIMESTAMP% :生成时间戳(以毫秒为单位)。 用于缓存无效的情况。
  • %DID% :插入用户的Audience Manager ID。
  • %HTTP_PROTO% :设置页面协议( http https )。
响应
Both functions return Successfully queued if successful. 如果失败,则将返回错误消息字符串。
示例代码
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) {}
此回调替换处理目标发布的默认回调。
您可以将其他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();