我目前正在尝试实施Google跟踪代码管理器,但我遇到了一个问题,因为GTM会在正文的结束标记之前附加代码。
每当我有一个模板需要从Google跟踪代码管理器中的一个脚本调用一些代码时,我会收到一个未定义的错误。这是显而易见的,因为在我的视图中将脚本放在哪里并不重要,GTM将始终跟在它之后,因为它紧跟在关闭的body标签之前。
有没有办法解决这种行为?Google为什么这样做?我知道它有助于非阻塞,但他们可能只是在脚本上放置异步属性,它几乎会做同样的事情?
一个例子我将Facebook Pixel作为我在GTM中的标签之一,当我将某个页面作为我的视图加载时,我需要能够进行特定的事件调用。
fbq('track', 'Search');
当然,这需要一个fbq实例开始。这给我留下了一个选项,那就是尝试将我的脚本放在我的页脚中,这是一个通用模板,它会变得混乱。
此行为的任何解决方法?
答案 0 :(得分:1)
您遇到的问题是,当您调用函数时,Facebook库未完全加载。 一种方法是将您的Facebook代码迁移到GTM,在所有页面上触发它 并在dom ready上激活你的特定代码
您还可以使用下面的代码,看看_fbq.loaded变量何时设置为true。 https://gist.github.com/chrisjhoughton/1dc91dd7bd95717e08d3
您必须根据此javascript变量创建触发器。 希望这有帮助