在本地主机上运行时,Google Optimize不触发

杰斯珀·我们

我正在按照以下说明尝试通过JavaScript获取Google Optimize实验数据但是我没有回调,也看不到调试器中发生的任何事情。

链接的说明使用了配置Google Analytics(分析)的gtag方式,因此我已经根据https://developers.google.com/gtagjs/devguide/snippet设置了gtag ,并根据https://support.google.com/配置了Optimize使用方法1优化/ answer / 7513085?hl = zh-CN :使用全局站点标签(gtag.js)安装优化

我想显示我正在使用的确切代码,但是由于我是在React with Next.js服务器端渲染中执行的,因此与纯HTML + JS相比,原始代码有一些额外的东西。来源看起来像这样:

require("dotenv").config()
import React from "react"
import Document, { Head, Main, NextScript } from "next/document"

export default class extends Document {
    render() {
        return (
            <html>
                <Head>
                    <script async src={`https://www.googletagmanager.com/gtag/js?id=${process.env.GA_TRACKING_ID}`}/>
                    <script
                        dangerouslySetInnerHTML={{
                            __html: `
                                window.dataLayer = window.dataLayer || [];
                                function gtag(){ dataLayer.push(arguments); }
                                gtag('js', new Date());
                                gtag('config', '${process.env.GA_TRACKING_ID}', { optimize_id: '${process.env.OPTIMIZE_ID}'});
                                console.log('GA setup done: ${process.env.GA_TRACKING_ID} + ${process.env.OPTIMIZE_ID}');
                                gtag('event', 'optimize.callback', {
                                    name: '${process.env.EXPERIMENT_ID}',
                                    callback: o => console.log(o)
                                });
                            `
                        }}
                    />
                </Head>
                <body>
                    <Main />
                    <NextScript />
                </body>
            </html>
        )
    }
}

这段代码会生成一个结果页,该页将启动Analytics(分析)并跟踪pageView,并且应在其上运行,当我在Google Optimize控制台中执行“ RUN DIAGNOSTICS”时,它将打开该页面,检查JavaScript并报告:

优化安装正确

在验证此页面上的优化安装时,未检测到主要问题。

我还安装了Google Chrome Tag Assistant插件,它报告正确安装了Google Optimize标签。

我可以在网络日志中看到以下调用:

https://www.googletagmanager.com/gtag/js?id=UA-xxxxxx
https://www.google-analytics.com/analytics.js
https://www.google-analytics.com/gtm/js?id=GTM-xxxxxx&t=gtag_UA_xxxx&cid=nnn.nnn

我还验证了google_optimize全局变量已创建,并且它具有.get()方法。如果(在调试器网络面板中)https://www.google-analytics.com/gtm/js?...查看请求的http响应,我实际上可以看到Google Optimize实验数据,并在代码中嵌入了正确的Experiment。

因此,一切看起来都不错,除了该optimize.callback活动似乎是一场彻底的无人接战。它什么也没做。而且我不知道如何访问调试器中http响应中看到的实验数据。

杰斯珀·我们

因此,我终于弄清楚了造成麻烦的原因:我是从本地NodeJS服务器运行的,通常使用http://localhost:3000url。事实证明,Google Optimize绝不会触发对http://localhost/...网址的实验代码需要hostname一部分URL,可以根据host.domain方案进行解析

换句话说,主机名中必须有一个点,Optimize才能触发实验。

对于本地测试,可以通过创建主机名别名(例如localhost.domainfor 127.0.0.1)并使用该别名访问网页来解决此问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在本地主机上运行HTML文件?

是否可以仅在本地主机上运行python SimpleHTTPServer?

本地主机上正在运行的JVM的列表

在本地主机上运行spring boot app时出错

如何在本地主机上运行时让Docker容器互相交谈?

在本地主机上运行的Spark BlockManager

本地主机上laravel 5.3中的ajax发布请求中的CSRF令牌不匹配异常

Websocket在本地主机上运行,但在Heroku上不运行

在本地主机上运行Node JS服务器

在本地主机上运行时,为什么Service Worker似乎无法在Google Chrome浏览器中写入控制台?

如何使用Wamp在本地主机上运行laravel项目?

在本地主机上运行Django服务器

在本地主机上运行Node.Js

React Native:调用在本地主机上运行的API

在不运行Artisan服务的情况下访问网络PC中的Laravel本地主机站点

在本地主机上运行Ansible Task

在以下主机上运行时,Ansible剧本错误:主机:

JS Ajax请求在本地主机上产生错误,但在Web服务器上不产生错误

护照google oauth在本地主机上

PHP脚本不在本地主机上运行

让Wordpress Docker在本地主机上运行

仅当Jetty应用程序在本地主机上运行时,非英语(希伯来语)字符才能很好地插入到mysql DB中!(部署到heroku)

Magento RESTAPI restconnect在本地主机上工作,但在服务器上不工作

Netbeans项目不在本地主机上运行

在本地主机上运行时在python上导入错误

Themosis不在本地主机上运行

在本地主机上运行时,我的C#应用程序间歇性地挂起

为什么bootstrap.js在本地主机上运行时显示错误“未捕获的错误:引导程序需要jQuery”?

当客户端在虚拟机上运行时,getpeername()返回我的本地主机地址

TOP 榜单

热门标签

归档