Mit den APIs auf Instanzebene DIL können Sie Audience Manager-Objekte programmgesteuert erstellen und verwenden. Die Methoden auf Instanzebene erweitern die API-Funktionalität, die von den Methoden auf Klassenebene festgelegt wird.
Beim Arbeiten mit den APIs auf Instanzebene DIL:
Fügt der Abfragezeichenfolge einer ausstehenden Anforderung Zuordnungen auf Kunden- und Plattformebene hinzu.
Funktionssignatur: signals: function ({key1:value1, key2:value2},prefix){}
submit()
, bis die Cloud ein Cookie setzt, bevor eine Anforderung gesendet wird.Reservierte Anforderungsschlüssel
Die folgenden Anforderungsschlüssel sind reserviert und können von dieser Methode nicht überschrieben werden:
sids
pdata
logdata
callback
postCallbackFn
useImageRequest
Parameter
Name | Typ | Beschreibung |
---|---|---|
obj |
Objekt | Ein Objekt, das die Schlüssel-Wert-Paare für Zuordnungen auf Plattformebene darstellt. Parameter akzeptiert Zeichenfolgen und Arrays als Eigenschaftswerte im Objekt. |
prefix |
Zeichenfolge | Optional. Der string -Wert, der jedem Objektschlüssel vorangestellt ist (ersetzt den ursprünglichen Schlüssel). |
return |
DIL.api | Gibt das API-Objekt der aktuellen DIL-Instanz zurück. |
Antwort
Gibt das API-Objekt der aktuellen DIL-Instanz zurück.
Beispielcode
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();
Fügt der Abfragezeichenfolge einer ausstehenden Anfrage SIDs hinzu.
Funktionsunterschrift: traits:function (sids){}
Sie können andere API-Aufrufe an diese Methode ketten.
Parameter
Name | Typ | Beschreibung |
---|---|---|
sids |
Array | Eigenschaftensegment-IDs in einem Array. |
Antwort
Gibt das API-Objekt der aktuellen DIL-Instanz zurück.
Beispielcode
var partnerObject = DIL.create({
partner: 'partner name',
containerNSID: NSID
});
partnerObject.api.traits([123, 456, 789]);
Fügen Sie Daten zu Protokolldateien in der ausstehenden Anfrage hinzu.
Funktionsunterschrift: logs: function {key1:value1, key2:value2}
Antwort
Gibt das API-Objekt der aktuellen DIL-Instanz zurück.
Beispielcode
var partnerObject = DIL.create({
partner: 'partner',
containerNSID: NSID
});
partnerObject.api.logs({
file: 'dil.js',
message: 'This is the first request'
});
Sendet alle ausstehenden Daten an Audience Manager für die DIL-Instanz.
Funktionssignatur: submit: function () {}
Sie können andere API-Aufrufe an diese Methode ketten. Außerdem schreibt DIL kodierte Daten in ein Ziel-Cookie. Beispielsweise werden Leerzeichen als %20
und Semikolons als %3B
kodiert.
Antwort
Gibt das API-Objekt der aktuellen DIL-Instanz zurück.
Beispielcode
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();
Eine Funktion, die nach dem standardmäßigen Callback zur Zielveröffentlichung ausgeführt wird.
Funktionssignatur: afterResult: function (fn) {}
Sie können andere API-Aufrufe an diese Methode ketten.
Parameter
Name | Typ | Beschreibung |
---|---|---|
fn |
Funktion | Die Funktion, die Sie nach JSON ausführen möchten, wird vom standardmäßigen Callback verarbeitet, der die Zielveröffentlichung verarbeitet. |
Antwort
Gibt ein API-Objekt der aktuellen DIL-Instanz zurück.
Beispielcode
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();
Löscht alle Daten in einer ausstehenden Anfrage.
Funktionssignatur: clearData: function () {}
Sie können andere API-Aufrufe an diese Methode ketten.
Antwort
Gibt das API-Objekt der aktuellen DIL-Instanz zurück.
Beispielcode
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();
Fügt benutzerdefinierte Abfrageparameter, die nicht explizit vom Datenerfassungsserver definiert sind, zu einer ausstehenden Anfrage hinzu.
Funktionssignatur: customQueryParams: function (obj) {}
Sie können andere API-Aufrufe an diese Methode ketten.
Reservierte Anforderungsschlüssel
Die folgenden Anforderungsschlüssel sind reserviert und können von dieser Methode nicht überschrieben werden:
sids
pdata
logdata
callback
postCallbackFn
useImageRequest
Antwort
Gibt das API-Objekt der aktuellen DIL-Instanz zurück.
Beispielcode
var partnerObject = DIL.create({
partner: 'partner',
containerNSID: NSID
});
partnerObject.api.customQueryParams({
nid: 54231,
ntype: 'default'
});
Gibt den Wert der Container-NSID für die DIL-Instanz zurück. Nützlich für das Debugging und die Fehlerbehebung.
Funktionssignatur: dil.api.getContainerNSID: function () {}
Beispielcode
var dataLib = DIL.create({
partner: 'partnerName',
containerNSID: containerNSID
});
//Verify the container NSID
var nsid = dataLib.api.getContainerNSID();
Gibt chronologisch sortierte Ereignisprotokolldaten als Zeichenfolgen-Array zurück. Nützlich für das Debugging und die Fehlerbehebung.
Funktionssignatur: dil.api.getEventLog: function () {}
Beispielcode
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');
}
Gibt den Partnernamen für eine DIL-Instanz zurück. Nützlich für das Debugging und die Fehlerbehebung.
Funktionssignatur: dil.api.getPartner: function () {}
Beispielcode
var dataLib = DIL.create({
partner: 'partnerName'
containerNSID: containerNSID
});
//Verify the partner name
var partner = dataLib.api.getPartner();
Gibt den Status der aktuellen DIL-Instanz zurück. Nützlich für das Debugging und die Fehlerbehebung.
Funktionssignatur: dil.api.getState: function () {}
Beispielcode
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: []
}
}
*/
Besteht aus zwei Funktionen, mit denen Datenpartner Benutzer-IDs untereinander und mit Audience Manager austauschen und synchronisieren können.
Funktionssignatur:
Funktioniert mit den DIL Versionen 2.10 und 3.1 oder höher.
Code | Synchronisiert Benutzer-IDs |
---|---|
dil.Instance.api.idSync(initConfig) |
Zwischen verschiedenen Datenpartnern und Audience Managern. Beispielsweise würde Partner x dies verwenden, um eine Benutzer-ID mit Partner y zu synchronisieren und diese dann an Audience Manager zu senden.
Wichtig: Diese Methode wird nicht mehr unterstützt. Verwenden Sie die |
dil.Instance.api.aamIdSync(initConfig) |
Wenn Sie die Benutzer-ID bereits kennen und sie an Audience Manager senden möchten.
Wichtig: Diese Methode wird nicht mehr unterstützt. Verwenden Sie die |
idSync-Elemente
idSync
kann aus Folgendem bestehen:
Name | Typ | Beschreibung |
---|---|---|
dpid |
Zeichenfolge | Durch Audience Manager zugewiesene Datenanbieter-ID. |
dpuuid |
Zeichenfolge | Die eindeutige Datenanbieter-ID für den Benutzer. |
minutesToLive |
Nummer | (Optional) Legt die Cookie-Ablaufzeit fest. Hierbei muss es sich um eine Ganzzahl handeln. Der Standardwert lautet 20.160 Minuten (14 Tage). |
url |
Zeichenfolge | Ziel-URL. |
Makros
idSync
akzeptiert die folgenden Makros:
%TIMESTAMP%
: Generiert einen Zeitstempel (in Millisekunden). Wird für das Cache-Busting verwendet.%DID%
: Fügt die Audience Manager-ID für den Benutzer ein.%HTTP_PROTO%
: Legt das Seitenprotokoll fest ( http
oder https
).Antwort
Beide Funktionen geben Successfully queued
zurück, falls erfolgreich. Falls nicht, wird eine Fehlermeldungszeichenfolge zurückgegeben.
Beispielcode
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)
});
Fügt der ausstehenden Anfrage einen Callback hinzu (der JSON erhält).
Funktionssignatur: result: function (callback) {}
Dieser Rückruf ersetzt den standardmäßigen Rückruf, der die Zielveröffentlichung verarbeitet.
Sie können andere API-Aufrufe an diese Methode ketten.
Parameter
Name | Typ | Beschreibung |
---|---|---|
callback |
Funktion | JavaScript-Funktion, die vom JSONP-Rückruf ausgeführt wird. |
Antwort
Gibt das API-Objekt der aktuellen DIL-Instanz zurück.
Beispielcode
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
ist ein boolescher Parameter, der steuert, wie DIL Aufrufe an Data Collection Servers (DCS) und Akamai gesendet werden.
Wenn secureDataCollection= true
(Standard), führt DIL immer sichere HTTPS-Aufrufe durch.
Wenn secureDataCollection= false
DIL HTTP- oder HTTPS-Aufrufe durchführt, indem das von der Seite festgelegte Sicherheitsprotokoll befolgt wird.
Legen Sie secureDataCollection= false
fest, wenn Sie visitorAPI.js und DIL auf derselben Seite verwenden. Siehe Code-Beispiel unten.
var dilInstance = DIL.create({
...
secureDataCollection: false
});
useCORSOnly
ist ein boolescher true/false -Parameter, der steuert, wie Browser Ressourcen von anderen Domänen anfordern.
Überblick
useCORSOnly
ist standardmäßig "false". False bedeutet, dass der Browser Ressourcenprüfungen mit CORS oder JSONP durchführen kann. DIL versucht jedoch immer, zunächst Ressourcen mit CORS anzufordern. Bei älteren Browsern, die CORS nicht unterstützen, wird auf JSONP zurückgegriffen. Wenn Sie erzwingen müssen, dass der Browser nur CORS verwendet, z. B. bei Sites mit hohen Sicherheitsanforderungen, legen Sie useCORSOnly:true
fest.
Code-Beispiel
var dilInstance = DIL.create({
...
useCORSOnly: true
});
useCORSOnly: true
nur dann festzulegen, wenn Sie sicher sind, dass Ihre Site-Besucher über Browser verfügen, die diese Funktion unterstützen.useCORSOnly: true
, führt DIL keine ID-Aufrufe von Internet Explorer Version 9 oder älter durch.Ändert den Anfragetyp in image <img>
vom Skript <src>
.
Funktionssignatur: useImageRequest: function () {}
Sie können andere API-Aufrufe an diese Methode ketten.
Antwort
Gibt ein API-Objekt der aktuellen DIL-Instanz zurück.
Beispielcode
var dataLib = DIL.create({
partner:'partnerName',
containerNSID: containerNSID
});
dataLib.api.traits([123, 456, 789]).useImageRequest().submit();