我在 next.js 中使用 styled-components,所以我的样式需要在服务器端呈现,因此我如何将谷歌分析添加到我的网站?
我检查了next.js 谷歌分析示例,但正如我所说,由于使用了样式组件,我的 _document 文件有所不同。
// _document.js
import React from 'react'
import Document from 'next/document'
import { ServerStyleSheet } from 'styled-components'
class MyDocument extends Document {
static async getInitialProps(ctx) {
const sheet = new ServerStyleSheet()
const originalRenderPage = ctx.renderPage
try {
ctx.renderPage = () => originalRenderPage({
enhanceApp: (App) => (props) => sheet.collectStyles(<App {...props} />),
})
const initialProps = await Document.getInitialProps(ctx)
return {
...initialProps,
styles: (
<>
{initialProps.styles}
{sheet.getStyleElement()}
</>
),
}
} finally {
sheet.seal() …Run Code Online (Sandbox Code Playgroud) javascript google-analytics reactjs styled-components next.js
我很高兴看到使用我的应用程序设置Google Analytics是多么容易,但缺少文档让我有几个问题.我能找到的唯一信息就是这里的文档,它只关注从一个Activity报告PageViews和Events.我想在我的应用程序中跨多个活动报告PageViews和事件.
现在在我所有活动的onCreate()中,我打电话给:
tracker = GoogleAnalyticsTracker.getInstance();
tracker.start("UA-xxxxxxxxx", this);
Run Code Online (Sandbox Code Playgroud)
在我所有活动的onDestroy()中:
tracker.stop();
Run Code Online (Sandbox Code Playgroud)
然后,我根据需要跟踪PageViews和事件,并将它们与我正在执行的另一个HTTP请求一起发送.但我不太确定这是最好的方法.我应该在每个活动中调用start()和stop(),还是应该只在我的主启动器活动中调用start()和stop()?
当我将谷歌分析的配置添加到我的Android项目并构建项目时,我收到以下错误:
:app:transformClassesWithDexForDebug
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Ljavax/inject/Inject;
at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334)
at com.android.dx.command.dexer.Main.run(Main.java:277)
at com.android.dx.command.dexer.Main.main(Main.java:245)
at com.android.dx.command.Main.main(Main.java:106)
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2
* Try:
Run with --info or --debug option to get more log output.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed …Run Code Online (Sandbox Code Playgroud) 我希望在我的一个网站上实现页面查看跟踪系统.
该网站是供应商可以宣传其服务的目录.供应商在网站上有一个独特的个人资料页面,例如mysite.com/directory/abc-profile.html
这个想法是供应商可以登录他们在网站上的帐户区域,并查看有多少人访问他们的个人资料的统计数据.理想情况下,我想将其显示为:
Total views | Total today | This week | This month | This year
数据是否完全是最新的并不重要.
我已经在网站上安装了Google Analytics跟踪代码.是否可以使用Google AnalyticsAPI来检索此数据?如果是这样,我需要做什么样的查询?我查看了文档,但无法确定函数是否允许这样做.
我在服务器上使用PHP和MySQL.
我昨天刚刚为我的网站注册了谷歌分析.它一直工作到今天.但是,过了一会儿,它会弹出这个错误:
Internal error. Please try again later.Analytics has encountered an unexpected condition and cannot fulfill your request.
Run Code Online (Sandbox Code Playgroud)
不确定这个错误是什么以及如何解决它.需要一些指导.
Google Analytics中是否支持跟踪广告系列而无需使用查询字符串参数.
在分析你可以标记一个链接到你的网站查询字符串参数,如utm_campaign和utm_medium其携带的运动信息,以便他们可以跟踪.
谷歌实际上有一个在线工具来帮助创建这样的链接.
例如,如果StackOverflow在Experts Exchange上做广告,他们可能会有这样的链接:
出于多种原因,我不希望这些笨拙的参数出现在我的URL中:
我前一段时间试图找到一种可以设置这些参数的方法.谷歌有一个乍一看似乎是解决方案的页面,但实际上并非如此.该页面描述了如何将查询字符串参数的名称更改为其他内容 - 例如,使用src而不是utm_source运行:
pageTracker._setCampSourceKey("src");
Run Code Online (Sandbox Code Playgroud)
我真的无法弄清楚为什么它们不容易实际显式设置utm_source键的值- 而不仅仅是为它设置一个替代参数名称.
我记得有一段时间后找到了一个讨厌的黑客,但我现在似乎无法找到.我似乎记得,无论是谁,它都会使用分析代码的副本,并且基本上将其分解并攻击它.这对我来说不是一个好的解决方案!
是否有一种官方支持的方式来做这件事,没有某种令人讨厌的重定向.
简而言之,我想做这样的事情(ASP.NET MVC网站).使用以下网址为partnet提供指向我网站的链接:
http://www.example.com/?cid=2dae88a8-66b1-475d-8a35-2978bd1a158c
Run Code Online (Sandbox Code Playgroud)
在我的MVC页面的控制器中,我将找出此GUID与哪个广告系列相关,并设置模型状态.注意:这给了我的优势,我可以更改广告系列参数,而无需重新发布网址.
在页面本身,我会这样做:
var campaignMedium = <%= ViewData.Model.CampaignMedium %>;
var campaignSource = <%= ViewData.Model.CampaignSource %>;
var campaignName = <%= ViewData.Model.CampaignName %>;
pageTracker._setCampaignData({
utm_source: campaignSource,
utm_medium: campaignMedium,
utm_campaignName: campaignName
});
pageTracker._trackPageview();
Run Code Online (Sandbox Code Playgroud)
重要说明:此_setCampaignData方法实际上不存在.这只是我想要做的事情的"伪代码".
有没有人成功地做过这样的事情?
Chrome扩展指南提供了旧分析安装的教程:https://developer.chrome.com/extensions/tut_analytics.html
说明只是说链接到https版本并更新清单以允许从该URL加载脚本.所以那些应该仍然适用于新版本.事实上,我可以看到从服务器加载脚本.
一旦脚本加载分析,就无法正确初始化它,并且永远不会处理它的内部队列(ga.f)以将这些事件发送到服务器.控制台中没有错误.它只是悄然无所作为.
我的猜测是,新的通用分析系统并未设置为在扩展环境中运行,但是通用文档没有提到这一点:https://developers.google.com/analytics/devguides/collection/analyticsjs/
有没有人知道是否甚至可以将Universal Analytics添加到扩展程序中以及何时可以添加?
我使用Angular 2作为前端构建了一个新站点.由于所有操作都是通过推送状态完成的,因此没有页面加载通常会触发Google Analytics代码将页面视图发送到Google的服务器.
如何手动向Google发送网页浏览事件,以便跟踪我网站的哪些用户正在查看?
当用户在我的网站上注册时,我希望能够通过Adwords广告系列存储他们是否来到我的网站.
我知道谷歌使用javascript来跟踪基于用户计算机上创建的cookie的转换.有没有办法可以检查这个cookie,以便我可以将源存储在用户帐户中?
刚刚开始在我的Android应用程序中实施Google Analytics V2,尽管我遇到了麻烦.
我相信我已经正确设置了属性和配置文件的帐户.我已经在analytics.xml文件和我使用的每个活动中提供了我的密钥
EasyTracker.getInstance().activityStart(this); 在onStart方法中
和
EasyTracker.getInstance().activityStop(this); 在每个活动的onStop方法中.
但是,我似乎没有在Google Analytics网站上看到任何结果.此外,我打开了调试选项,我可以在log cat中看到来自Gav2(Google Analytics)的各种消息,这意味着一个问题.
例如
11-04 21:56:48.000: W/GAV2(6376): Thread[main,5,main]: **Connection to service failed 1**
11-04 21:56:48.040: W/GAV2(6376): Thread[main,5,main]: **Need to call initialize() and be in fallback mode to start dispatch.**
11-04 21:56:48.050: I/GAV2(6376): Thread[main,5,main]: ExceptionReporter created, original handler is com.keypod.utils.AppCrashExceptionHandler
11-04 21:56:50.055: I/GAV2(6376): Thread[GAThread,5,main]: No campaign data found.
11-04 21:56:50.060: I/GAV2(6376): Thread[GAThread,5,main]: putHit called
11-04 21:56:50.410: I/GAV2(6376): Thread[GAThread,5,main]: putHit called
11-04 21:56:53.035: I/GAV2(6376): Thread[Service Reconnect,5,main]: connecting to Analytics service
11-04 21:56:53.035: …Run Code Online (Sandbox Code Playgroud) google-analytics ×10
android ×3
javascript ×3
angular ×1
gradle ×1
java ×1
next.js ×1
reactjs ×1
tracking ×1