Eine Variable vom Typ Benutzerdefiniertes JavaScript berechnet ihren Wert selbst. Sie ist immer eine anonyme Funktion, die sofort aufgerufen wird und einen Wert zurückgibt:
function() {
// read items from the data layer, return their IDs
var items = {{DLV - ecommerce.items}} || [];
return items.map(function(i) { return i.item_id; }).join(',');
}
Andere Variablen lassen sich als {{Name}} einsetzen, auch mitten im Code.
Regeln
Der Tag Manager wertet Variablen mehrfach pro Ereignis aus. Die Funktion darf deshalb keine Seiteneffekte haben: kein Push in die Datenschicht, kein Zähler, kein Request. Sie muss außerdem mit fehlenden Daten umgehen können und undefined zurückgeben, statt einen Fehler zu werfen, der das ganze Ereignis abbricht.
ES6-Syntax akzeptiert der Container inzwischen. Meldet er beim Speichern oder im Vorschaumodus einen Kompilierfehler, hilft ein Umschreiben auf ES5.
Nicht zu verwechseln mit dem Tag-Typ Benutzerdefiniertes HTML, der Code ausführt, statt einen Wert zu liefern, und mit der benutzerdefinierten Vorlage, die in einer Sandbox läuft.
