想知道是否有人可以阐明使用谷歌标签管理器是否符合 PCIDSS?
我知道其中有一些规定可以确保标签不能被注入,例如保护服务器、xss 保护等,但找不到任何关于支持动态 html 更改的标签管理器是否可以的信息。
我可以看到这两个论点...
我正在使用 Google 跟踪代码管理器将页面浏览事件推送到数据层以进行分析跟踪。这种情况发生在componentDidMount()中(如果我正在使用 withRouter 监听 location 属性的查询字符串参数更改,有时会发生在 componentWillReceiveProps()中)。
我正在使用React-helmet在组件更改时动态更新我的标题和其他标签。
我注意到一个问题,即我在 Analytics 中获得的页面标题不正确。它经常显示上一页的页面标题,而不是我当前所在的页面标题。看来react-helmet直到componentDidMount()之后才更新标签之后才更新标签。
页面查看事件函数示例
每次将此事件推送到数据层时,我在 GTM 中的分析标记都会被调用
const firePageViewEvent = () => {
console.log("Pageview event fired (from tracking script)");
if (window && window.dataLayer) {
console.log("window and dataLayer exist, pushing pageview event.");
let dataLayer = window.dataLayer || [];
dataLayer.push({
'event': 'reactPageViewEvent'
});
} else {
console.log("window or dataLater does not exist, cannot push pageview event.");
}
};Run Code Online (Sandbox Code Playgroud)
google-analytics single-page-application google-tag-manager reactjs react-helmet
刚学GTM。我想使用 GTM 来使用我命名为“specimen”的 DOM Element 变量来获取元素的文本。该变量当前设置为 CSS 选择器specimen。
触发器是设置为 class 的“单击-所有元素”类型specimen_record_thumbnail。
从下面的 DOM 中可以看出,specimen选择器需要限制为单击的触发器的父级,即specimen_record_container,因为页面将包含许多这样的结构/类。
specimen我应该如何在 DOM Element 变量中定义 CSS 选择器以获取同级选择器的文本specimen_record_thumbnail?
<div class="specimen_record_container">
<img class="specimen_record_thumbnail" data-specimen="374" src="specimen_media/374/specimen_pk_374_20082014_123312_thumbnail.jpg" border="0">
<div class="diagnosis" title="<p>Adrenal gland</p>" rel="tooltip">Diagnosis</div>
<span class="specimen"> T93.M8006<sup>5</sup></span>
</div>
Run Code Online (Sandbox Code Playgroud)
另外,也许自定义 JavaScript 变量可能会更好......
任何帮助或建议表示赞赏!
更新 - 工作解决方案:感谢 Eike Pierstorff
此代码进入 GTM 自定义 JavaScript 变量以获取父容器倒数第二个子级的文本,然后将其设置为 Universal Analytics 标记的标签:
function () { return {{Click Element}}.parentNode.lastChild.previousSibling.innerText }
Run Code Online (Sandbox Code Playgroud) 为了缩短我正在开发的 Web 应用程序的初始加载时间,我想在加载应用程序后运行 GTM 脚本。
我知道这可能看起来有点模糊,但我将提供更多背景信息:在我工作的公司中,我们使用(我个人的想法是我们滥用)Google Tag Manager (GTM)来注入一些第三方GTM 标签内的脚本。大多数情况下,我们使用它来操作某些页面模板(例如产品页面)中的 DOM 并注入第三方脚本(例如 Zopim 聊天、Facebook Pixel 等\xe2\x80\xa6)。
\n\nDOMContentLoaded我们通常做的事情是:在页面加载时和/或事件发生时操纵 DOM load,因此对我来说,显然如果没有这些 GTM 标签,我们的网站将在PageSpeed Insights和Chrome DevTools\' Lighthouse中获得更好的分数。如果没有激活 GTM 标签,我无法测试该网站,因为它已经在网站中随处可见。
这种 GTM 的使用对我们网站的速度有多大影响?
\n我已经集成Firebase和GoogleTagManager使用的CocoaPods到我的iOS应用程序的目标。当我构建目标时,Xcode 不断给我错误:
Showing Recent Messages
PhaseScriptExecution [CP]\ Embed\ Pods\ Frameworks
mkdir -p /Users/xxx.xxx/Library/Developer/Xcode/DerivedData/MyApp-enzvpdzsyhjszqbnwiclnpszlyri/Build/Products/Debug-iphonesimulator/MyApp.app/Frameworks
/Users/xxx.xxx/Projects/MyApp/Applications/MyApp/Pods/Target Support Files/Pods-MyApp/Pods-MyApp-frameworks.sh: line 43: source: unbound variable
Command /bin/sh failed with exit code 1
Run Code Online (Sandbox Code Playgroud)
我已经多次清理我的项目,删除了派生数据文件夹,但这些似乎都不起作用。
我的 Podfile 看起来像这样:
platform :ios, '11.0'
target 'MyApp' do
use_frameworks!
# Pods for MyApp
pod 'Firebase/Core', '~> 5.19'
pod 'Firebase/ABTesting'
pod 'Firebase/Performance'
pod 'Firebase/RemoteConfig'
pod 'Firebase/Analytics'
pod 'GoogleTagManager', '~> 7.1'
end
Run Code Online (Sandbox Code Playgroud)
可可豆环境
CocoaPods : 1.5.3
Ruby : ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]
RubyGems : 2.6.8
Host …Run Code Online (Sandbox Code Playgroud) 我刚刚gatsby-plugin-google-gtag在我的gatsby-config.js文件中安装了:
module.exports = {
plugins: [
{
resolve: `gatsby-plugin-google-gtag`,
options: {
trackingIds: [
"UA-XXXXXXXXX-X", // Google Analytics / GA
"AW-XXXXXXXXX" // Google Ads / Adwords / AW
],
pluginConfig: {
head: true
},
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
然后我在我的表单上添加这个事件,它应该工作吗?
class Form extends Component {
constructor(props) {
super(props);
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
window.gtag("conversion", "click", { send_to: ["AW-XXXXXXXXX/-XXXXXXXXXXXXXXXX"]})
}
render() {
return (
<Div className='au'>
<form action="https://formspree.io/my@emailaddress.io" method="POST">
<InputName type="name" name="name" placeholder="Your Name"/>
<InputMail type="email" name="email" placeholder="Your …Run Code Online (Sandbox Code Playgroud) 我在 GTM 中包含一个自定义脚本,用于调用外部资源。脚本看起来像这样
<script type="text/javascript" id="some-key" data-key="xxxxxxxxxxxxxxxxxx" src="link-to-external-resource"></script>
Run Code Online (Sandbox Code Playgroud)
我已将其触发设置为当前触发正常的所有页面,但问题是,脚本在 DOM 中没有data-key属性的情况下呈现。它在 DOM 中的渲染看起来像这样
<script type="text/javascript" id="some-key" src="link-to-external-resource"></script>
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?有没有办法在 Google 跟踪代码管理器中包含 data-* 属性?
我正在尝试将 GTM 环境功能与查找表结合使用,并希望将各个环境的数据发送到不同的 Google 分析属性。这可能吗?我们可以使用具有实时和临时环境的单个 GTM 容器并将数据发送到两个不同的 Google Analytics 属性吗?
我在标签模板中使用 Google 跟踪代码管理器中的jectScript API,但我无法让它在外部脚本加载(或加载失败)时触发任何回调函数。有什么想法吗?
因此,我的模板具有定义的注入脚本权限: https: //www.google-analytics.com/analytics.js
代码:
// load APIs
const logToConsole = require('logToConsole');
const injectScript = require('injectScript');
const queryPermission = require('queryPermission');
// script url
const url = 'https://www.google-analytics.com/analytics.js';
// Callback to note if script load succeeded
const onSuccess = () => {
logToConsole('Script LOADED');
data.gtmOnSuccess();
};
// Callback to note if script load failed
const onFail = () => {
logToConsole('Script load FAILED.');
data.gtmOnFailure();
};
// Check permission and load script
logToConsole('Checking permission to load script:' + url); …Run Code Online (Sandbox Code Playgroud) reactjs ×2
cocoapods ×1
firebase ×1
gatsby ×1
ios ×1
javascript ×1
pagespeed ×1
pci-dss ×1
react-helmet ×1
xcode10.1 ×1