【问题标题】:Set DFP targeting key-values stored in JSON object设置存储在 JSON 对象中的 DFP 定位键值
【发布时间】:2018-03-16 10:37:35
【问题描述】:

我正在尝试将 DFP 键值列表存储在 JSON 对象中,并使用 javascript 循环列表中的每个键值对,以将它们设置为 Google 发布商代码中的页面级定位参数。

window.dfpData = {"dfpKV":{"key1":"value","key2":"value2","key3":"value1,value2,value3","key4":["value4","value5","value6"]}}

我正在使用这个函数,它不会抛出任何错误,但似乎也不会执行:

  if (dfpData.dfpKV) {
for (var i = 0; i < dfpData.dfpKV; i ++) {
  var item = dfpData.dfpKV[i];
  googletag.pubads().setTargeting(item[0], item[1]);
}

生成的输出应该相当于多行:

googletag.pubads().setTargeting("key1",["value"]);
googletag.pubads().setTargeting("key2",["value2"]);
googletag.pubads().setTargeting("key3",["value1,value2,value3"]);
googletag.pubads().setTargeting("key4",["value4","value5","value6"]);

Codepen 是 here:

您能提供的任何帮助将不胜感激!

【问题讨论】:

    标签: javascript json google-dfp gpt


    【解决方案1】:

    这不是循环遍历对象中包含的值的正确方法。试试

    if (dfpData.dfpKV) {
      Object.keys(dfpData.dfpKV).forEach(function(key) {
         googletag.pubads().setTargeting(key, dfpData.dfpKV[key]);
      })
    }
    

    【讨论】:

    • 谢谢!还有一个问题 - 对于最后两个键值对,key3 是单个字符串值,而 key4 应该是三个逗号分隔的字符串值(下面的原始代码)。 googletag.pubads().setTargeting("key3",["value1,value2,value3"]); googletag.pubads().setTargeting("key4",["value4","value5","value6"]); 目前 key3 被设置为三个单独的值。我需要在函数中添加什么来实现这一点吗?理想情况下,每个值都应该以["value"](对于单个值)或["value1,"value2"](对于多个值)传递给 GPT`
    • 尝试将值作为字符串而不是数组传递。 .setTargeting("key3","value1,value2,value3");
    • 这是我正在循环的对象 - key3 已经是单个字符串值,但被传递时就像它是三个值的数组一样:window.dfpData = {"dfpKV":{"key1":"value","key2":"value2","key3":"value1,value2,value3","key4":["value4","value5","value6"]}}。该函数是否需要其他内容才能将字符串输出为["value1,value2,value"]
    • 单个值应该作为字符串传递,而不是包含字符串的数组。
    猜你喜欢
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多