gpt4 book ai didi

javascript - Matomo - 单个站点上的多个容器/标签管理器

转载 作者:行者123 更新时间:2023-12-04 15:00:53 30 4
gpt4 key购买 nike

设置

  • 我的团队正在构建一个集成在许多托管网站上的网络组件
  • 这些托管网站中的每一个都由不同的团队管理,并拥有自己的 Matomo 标签管理器和自己的 ID,例如<script src="https://.../container_ugas78d7sg.js">
  • 我们只想在仪表板中可视化我们自己的事件。我们不关心托管网站的分析,托管网站也不关心我们的分析。
  • 我的想法是加载第二个标签管理器脚本,例如<script src="https://.../container_asd3s99ssd.js">并使用第二个容器发送事件。然而,这两个脚本都想在 window._mtm 中加载标签管理器。 .
  • Multiple containers on the same site should to be possible , 但文档中没有示例

问题:

  • 如何在不覆盖的情况下加载第二个容器并向其发送事件 _mtm
  • 有没有不装载第二个容器的更好选择?

最佳答案

你可以做例如:

<!-- Matomo Tag Manager -->
<script type="text/javascript">
var _mtm1 = window._mtm1 = window._mtm1 || [];
_mtm1.push({'mtm1.startTime': (new Date().getTime()), 'event': 'mtm1.Start'});

var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.src='https://{$MATOMO_URL}/js/container_{$CONTAINER}.js'; s.parentNode.insertBefore(g,s);

var d1=document, g1=d1.createElement('script'), s1=d1.getElementsByTagName('script')[1];
g1.type='text/javascript'; g.async=true; g1.src='https://{$MATOMO_URL}/js/container_{$CONTAINER}.js'; s1.parentNode.insertBefore(g1,s1);
</script>
<!-- End Matomo Tag Manager -->

我认为您在整个窗口中只需要一个 _mtm,因为无论如何它只包含 startTime。您唯一需要做的就是将第二个容器加载到页面,它们都将使用相同的“startTime”变量——我看不出为什么这两个容器应该使用不同的“startTime”变量。

我不太确定的是,您是否应该在 getElementsByTagName 期间获取数组的第一个或第二个元素。

希望它有用!

关于javascript - Matomo - 单个站点上的多个容器/标签管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66970438/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com