草庐IT

javascript - DTM-s.t函数和页面加载规则的关系

coder 2024-12-21 原文

我不清楚动态标记管理器(DTM)如何执行Adobe Analytics页面加载规则,尤其是何时触发Adobe Analytics请求(s.t函数)。

Adobe提供了此图(https://marketing.adobe.com/resources/help/en_US/dtm/graphics/DTMLoadOrder.png),但对我来说似乎缺少一些重要的细节。

现在这是我的问题:

  • 在DTM中,我可以控制s.t函数何时触发吗?
  • s.t函数触发是否独立于Adobe Analytics Page Load规则(使用自定义代码)?
  • 是否有任何人使用回调系统来确保在触发Adobe Analytics请求之前已加载特定的页面加载规则?

  • 谢谢你们

    最佳答案

  • 在DTM中,我可以控制s.t函数何时触发吗?
    您可以指定加载到页面的“顶部”还是“底部”(请参见链接的图表)。
  • s.t函数触发是否独立于Adobe Analytics Page Load规则(使用自定义代码)?
    加载工具后,DTM将触发s.t调用,具体取决于您在config中设置的内容,将s.t调用置于“顶部”或“底部”。无论有没有页面加载规则,都会发生这种情况。但是,页面加载规则取决于s.t调用的位置。例如,如果您将Adobe Analytics设置为在“顶部”触发,但将页面加载规则设置为在“底部”,窗口加载,dom就绪等(有时在“顶部”之后)触发,则无论您在页面加载规则不会在st调用上发生,因为它已经发生。
  • 你们中是否有人使用过回调系统来确保在触发Adobe Analytics请求之前已加载了特定的页面加载规则? 使用Adobe Analytics集成在DTM中当前无法实现。没有办法告诉DTM不要触发s.t调用或以其他方式手动调用它。即使您指定“bottom”,然后删除_satellite.pageBottom并将该调用放入某个回调函数中,如果尚未调用DTM代码,则会将它作为最后的措施写到dom就绪的dom上。解决此问题的唯一方法是不要使用DTM内置的Adobe Analytics集成,而应将其视为随机的第三方脚本(在Javascript部分的页面加载规则中加载包括库在内的所有内容。实际上,您会想要在直接调用规则(而不是页面规则)中执行此操作)。

  • 更新:下面的问题

    Thanks! So my assumption that that the s.t function waits for the page load rules to load was wrong.



    好吧,是的,不是的。如果将Adobe Analytics设置为在“页面底部”触发,并且将页面加载规则设置为在“页面顶部”触发,那么在许多用例中,这都很好。但是在需要将其设置为dom就绪的情况下,页面加载规则本身将无法工作。

    我忘了向您提及的一件事是您可以suppress an Adobe Analytics request with s.abort 。长话短说,您可以使用s.abort抑制最初的s.t调用,然后在闲暇时调用它。但是有一些警告,即
  • 它只禁止下一个实际请求;它不会抑制所有运行的内容(例如s_doPlugins)
  • 这是特定于Adobe Analytics的,因此,例如,如果您在DTM界面中将GA实现为工具,则GA的行为与GA的_trackPageview(或UA等效项)相同,而AFAIK GA没有s.abort等效项。 IOW,这是特定于工具的,而不是特定于规则的。

  • Then I don't understand what is the use case for the page load rules? We need to set vars based on data-layer (needs onDomReady) and include them in the initial request triggered by s.t funtion. Do we need to do all of this in the s_code then?



    好吧,请记住,DTM是常规标签管理器,而不是Adobe Analytics特定的标签管理器,因此,如果一切都通过规则完成,则页面加载规则会有很多用例,这是您随机执行的操作未集成到DTM(您可以在其中添加为工具)的脚本。

    还请记住,Adobe并未构建DTM。他们是从第3方购买的,此后一直在努力将其产品集成到其中。我希望(希望)随着时间的推移,它们将增加更好的功能,以适应像您这样的情况。当Adobe首次开始使用DTM时,情况一团糟,我避免将其推荐给客户。从那时起已经走了很长一段路,现在至少我可以肯定地说,可以考虑使用它,尤其是因为它基本上是免费的(需要Adobe Marketing订阅),因此可以考虑使用。但关键是,即使DTM仍然落后于许多其他标签管理器,他们仍在进步。

    并注意,这肯定不是您的情况第一次出现。我听过很多人提到它,最常见的是使用 Backbone 或节点之类的框架的站点,这些站点实际上并不是所有东西都由dom准备就绪,而是通过模块等加载。它甚至被提及为思想上的想法。 omn​​iture.com完全可以满足您的需求(更好地控制st调用)。

    我认为,基本上无法控制DTM在初始页面加载时何时输出工具的触发器是标记管理器的一个巨大的根本缺陷,尤其是当这么多页面无法像现实(虚拟)世界那样运行时。因此,我希望Adobe能够(希望早日解决此问题)。

    关于javascript - DTM-s.t函数和页面加载规则的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26219881/

    有关javascript - DTM-s.t函数和页面加载规则的关系的更多相关文章

    1. ruby - 如何在续集中重新加载表模式? - 2

      鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende

    2. ruby - 在没有 sass 引擎的情况下使用 sass 颜色函数 - 2

      我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re

    3. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

      我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

    4. ruby-on-rails - 在 ruby​​ 中使用 gsub 函数替换单词 - 2

      我正在尝试用ruby​​中的gsub函数替换字符串中的某些单词,但有时效果很好,在某些情况下会出现此错误?这种格式有什么问题吗NoMethodError(undefinedmethod`gsub!'fornil:NilClass):模型.rbclassTest"replacethisID1",WAY=>"replacethisID2andID3",DELTA=>"replacethisID4"}end另一个模型.rbclassCheck 最佳答案 啊,我找到了!gsub!是一个非常奇怪的方法。首先,它替换了字符串,所以它实际上修改了

    5. ruby - 在 Ruby 中有条件地定义函数 - 2

      我有一些代码在几个不同的位置之一运行:作为具有调试输出的命令行工具,作为不接受任何输出的更大程序的一部分,以及在Rails环境中。有时我需要根据代码的位置对代码进行细微的更改,我意识到以下样式似乎可行:print"Testingnestedfunctionsdefined\n"CLI=trueifCLIdeftest_printprint"CommandLineVersion\n"endelsedeftest_printprint"ReleaseVersion\n"endendtest_print()这导致:TestingnestedfunctionsdefinedCommandLin

    6. ruby-on-rails - 使用 config.threadsafe 时从 lib/加载模块/类的正确方法是什么!选项? - 2

      我一直致力于让我们的Rails2.3.8应用程序在JRuby下正确运行。一切正常,直到我启用config.threadsafe!以实现JRuby提供的并发性。这导致lib/中的模块和类不再自动加载。使用config.threadsafe!启用:$rubyscript/runner-eproduction'pSim::Sim200Provisioner'/Users/amchale/.rvm/gems/jruby-1.5.1@web-services/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:105:in`co

    7. ruby - Rails 关联 - 同一个类的多个 has_one 关系 - 2

      我的问题的一个例子是体育游戏。一场体育比赛有两支球队,一支主队和一支客队。我的事件记录模型如下:classTeam"Team"has_one:away_team,:class_name=>"Team"end我希望能够通过游戏访问一个团队,例如:Game.find(1).home_team但我收到一个单元化常量错误:Game::team。谁能告诉我我做错了什么?谢谢, 最佳答案 如果Gamehas_one:team那么Rails假设您的teams表有一个game_id列。不过,您想要的是games表有一个team_id列,在这种情况下

    8. ruby - 在 Ruby 中按名称传递函数 - 2

      如何在Ruby中按名称传递函数?(我使用Ruby才几个小时,所以我还在想办法。)nums=[1,2,3,4]#Thisworks,butismoreverbosethanI'dlikenums.eachdo|i|putsiend#InJS,Icouldjustdosomethinglike:#nums.forEach(console.log)#InF#,itwouldbesomethinglike:#List.iternums(printf"%A")#InRuby,IwishIcoulddosomethinglike:nums.eachputs在Ruby中能不能做到类似的简洁?我可以只

    9. ruby-on-rails - 从应用程序中自定义文件夹内的命名空间自动加载 - 2

      我们目前正在为ROR3.2开发自定义cms引擎。在这个过程中,我们希望成为我们的rails应用程序中的一等公民的几个类类型起源,这意味着它们应该驻留在应用程序的app文件夹下,它是插件。目前我们有以下类型:数据源数据类型查看我在app文件夹下创建了多个目录来保存这些:应用/数据源应用/数据类型应用/View更多类型将随之而来,我有点担心应用程序文件夹被这么多目录污染。因此,我想将它们移动到一个子目录/模块中,该子目录/模块包含cms定义的所有类型。所有类都应位于MyCms命名空间内,目录布局应如下所示:应用程序/my_cms/data_source应用程序/my_cms/data_ty

    10. C51单片机——实现用独立按键控制LED亮灭(调用函数篇) - 2

      说在前面这部分我本来是合为一篇来写的,因为目的是一样的,都是通过独立按键来控制LED闪灭本质上是起到开关的作用,即调用函数和中断函数。但是写一篇太累了,我还是决定分为两篇写,这篇是调用函数篇。在本篇中你主要看到这些东西!!!1.调用函数的方法(主要讲语法和格式)2.独立按键如何控制LED亮灭3.程序中的一些细节(软件消抖等)1.调用函数的方法思路还是比较清晰地,就是通过按下按键来控制LED闪灭,即每按下一次,LED取反一次。重要的是,把按键与LED联系在一起。我打算用K1来作为开关,看了一下开发板原理图,K1连接的是单片机的P31口,当按下K1时,P31是与GND相连的,也就是说,当我按下去时

    随机推荐