Matomo - 单个站点上的多个容器/标签管理器
Matomo - Multiple Containers / Tag Managers on Single Site
设置
- 我的团队正在构建一个集成在许多主机站点上的 Web 组件
- 这些托管站点中的每一个都由不同的团队管理,并且有自己的 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 -->
我认为整个 window 你只需要一个 _mtm,因为它只包含 startTime。您唯一需要做的就是将第二个容器加载到页面,它们都将使用相同的“startTime”变量——我看不出为什么这两个容器应该使用不同的“startTime”变量。
我不太确定在 getElementsByTagName
.
期间是否应该获取数组的第一个或第二个元素
希望有用!
看来我想多了。一个可以只加载 2 个不同的容器脚本,第二个不会覆盖 _mtm。两者都可以单独配置,并将事件发送到各自的站点 ID。
设置
- 我的团队正在构建一个集成在许多主机站点上的 Web 组件
- 这些托管站点中的每一个都由不同的团队管理,并且有自己的 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 -->
我认为整个 window 你只需要一个 _mtm,因为它只包含 startTime。您唯一需要做的就是将第二个容器加载到页面,它们都将使用相同的“startTime”变量——我看不出为什么这两个容器应该使用不同的“startTime”变量。
我不太确定在 getElementsByTagName
.
希望有用!
看来我想多了。一个可以只加载 2 个不同的容器脚本,第二个不会覆盖 _mtm。两者都可以单独配置,并将事件发送到各自的站点 ID。