GTM 变量中的 Javascript IF/Else

Javascript IF/Else in GTM Variable

我正在尝试使用 GTM 和自定义 Javascript 根据页面上特定位置显示的文本动态地将结构化标记插入页面(这每几周更改一次)。

为此,我尝试使用 If/Else,但每次都会导致未定义。 如果已经创建了一个正常工作的变量并从页面 {{EventLocationVariable}} 中提取所需的文本。

我到目前为止:

function () {
  
  var eventloc = {{EventLocationVariable}};
var customeventloc;

if (eventloc === Manchester) {
 customeventloc = 'Manchester details goes here';
}
else 
  if (eventloc === Liverpool) {
   customeventloc = 'Liverpool details goes here';
  }
else
  if (eventloc === Leeds) {
    customeventloc = 'Leeds details goes here';
  }
else
  if (eventloc === Birmingham) {
    customeventloc = 'Birmingham details goes here';
  }
else {
  customeventloc = 'some other details goes here';
}

return customeventloc;

}

这可能很简单,但我似乎无法让它发挥作用。

您需要一个函数名称,并确保引号。

这是一个更简单的版本

ES5

const cust = {
  'Manchester': 'Manchester details goes here',
  'Liverpool': 'Liverpool details goes here',
  'Leeds': 'Leeds details goes here',
  'Birmingham': 'Birmingham details goes here'
};

const getCustomEvent = function(eventloc) { return  cust[eventloc] || 'some other details goes here'; };


//const ce = getCustomEvent("{{EventLocationVariable}}"); // uncomment when happy
const ce = getCustomEvent("Leeds"); // remove when happy
console.log(ce)
// testing non-existing event
console.log(getCustomEvent("Nope"))

ES6

const cust = {
  'Manchester': 'Manchester details goes here',
  'Liverpool': 'Liverpool details goes here',
  'Leeds': 'Leeds details goes here',
  'Birmingham': 'Birmingham details goes here'
};

const getCustomEvent = eventloc => cust[eventloc] || 'some other details goes here';


//const ce = getCustomEvent("{{EventLocationVariable}}"); // uncomment when happy
const ce = getCustomEvent("Leeds"); // remove when happy
console.log(ce)
// testing non-existing event
console.log(getCustomEvent("Nope"))

哦,你错过了黄金。您真正需要的是一个 Lookup Table,以及您已经拥有的 {{EventLocationVariable}}。这里:

当您使用 GTM 时,请确保您完全熟悉其所有 tag/variable/trigger 类型。以自己的方式编写解决方案的趋势可能很好,特别是如果您来自 JavaScript 背景,但 GTM 非常擅长提供更简单的解决方案。