标签: google-analytics-api

Google API Oauth2:所有用户只能使用一个刷新令牌吗?

我正在使用OAuth2身份验证,我有一个拥有多个用户的CMS,每个用户都有自己的配置文件.我们公司的Google帐户可以访问多个Google Analytics帐户.对于使用CMS的每个用户,我使用不同的用户名连接到Google AnalyticsAPI,每个用户的令牌都保存在数据库数据存储中.问题是,如果一个用户断开连接并撤消其令牌,则使用相同Google帐户的其他任何用户都无法访问Analytics API,这没有任何意义.

在此输入图像描述

编辑:经过进一步调查,我发现当第一个用户进行身份验证时,保存在数据存储中的令牌包含'refresh_roken'和'access_token'.但是,当其他用户进行身份验证时(他们使用相同的Google帐户,但使用不同的Google Analytics帐户),他们的令牌只会包含"access_token".如果其中一个人撤销了他的令牌,他们就会失去联系.

如何阻止这种情况发生并让每个用户都收到自己的refresh_token?


编辑2:

我在数据存储中存储单独的行,每个用户一个.让我澄清一下 - 如果你看一下这个图,想象一个CMS,其中一个CMS用户需要查看"Liz的个人账户"的统计数据,另一个CMS用户需要查看"Liz的团队账户"的统计数据.

两个CMS用户都来自同一家公司,他们都使用相同的Google帐户 - "liz@gmail.com".CMS用户A使用"liz@gmail.com"连接到Analytics API,收到refresh_token并想查看"Liz网站"的统计信息.然后CMS用户B也使用"liz@gmail.com"连接到Analytics API,但现在他不再收到refresh_token,只有access_token - 这是一个问题,因为在access_token之后将再次要求用户连接到期.

当一个用户断开连接时我通常做的是从数据存储中删除令牌并撤销令牌,但是我可能不应该撤销它,是吗?在任何情况下,如果在我的场景中用户A断开连接,这将删除他的数据存储令牌,这意味着我们将不再存储refresh_token,因为用户B首先没有它.

用户帐户图: 用户帐户图

c# google-api google-analytics-api google-api-dotnet-client google-oauth2

15
推荐指数
2
解决办法
2195
查看次数

从API获取Google Analytics"访客流"数据

我正在尝试从Google Analytics收集信息,以便为我的网站构建推荐引擎.该网站包含许多网页,因此我会跟踪用户点击的次数,例如,从第A页到第B页.目前我可以A -> B使用previousPagePath = '/A'和测量Google Analytics上的转换nextPagePath = '/B',但问题我真的想回答是,"在包括查看页面A的网站的所有访问中,在同一次访问中查看的页面B,C,...的次数是多少?"

例如,如果流程是A -> homepage -> B,那么我当前的方法不会捕获,但会被更广泛的衡量标准捕获.看起来Google Analytics网络界面上的"访客流"报告中包含我正在寻找的数据,但我无法弄清楚如何通过API以编程方式访问它.

获取此数据的最佳方法是什么?

google-analytics recommendation-engine google-analytics-api

14
推荐指数
2
解决办法
5304
查看次数

gabba gem没有正确跟踪

我使用谷歌分析来跟踪浏览量等,但上周晚些时候我有追踪后端事件的愿望.

我发现了gabba.

我的User模型中有一个方法如下:

def track_ga(event_name, cookiea, cookiez, event_category=nil)
    return unless Rails.env.production?

    gabba = Gabba::Gabba.new("UA-MYCODE-1", "mywebsite.com")
    gabba.identify_user(cookiea, cookiez)

    gabba.set_custom_var(1, 'User Email', self.email, Gabba::Gabba::VISITOR)
    gabba.set_custom_var(2, 'Private Code', private_code, Gabba::Gabba::VISITOR) if    private_code
    gabba.event(event_category || "Users", event_name, nil, nil)
end
Run Code Online (Sandbox Code Playgroud)

但是它无法正常工作,以下是GA中的结果:

对我而言,这表明cookie没有正确关联,即它不知道他们之前访问过的位置(在跟踪此事件之前).也许我误解了这份报告的性质,但是,假设我不是,我会喜欢一些关于我哪里出错的建议.

google-analytics ruby-on-rails google-analytics-api gabba

14
推荐指数
1
解决办法
845
查看次数

为 Google Analytics 查找跟踪 ID 的问题

我必须在我的 Android 应用程序中集成 Google Analytics。

完成了它的所有代码但是,有一个问题。

问题是从我的 google 分析帐户中获取跟踪 ID

根据文件:

==> 要查找 Google Analytics ID(跟踪 ID):

  1. 登录您的 Google Analytics(分析)帐户。

  2. 单击管理员。

  3. 从帐户列的菜单中选择一个帐户。

  4. 从属性列的菜单中选择一个属性。

  5. 在属性下,单击跟踪信息 > 跟踪代码。您的 Google Analytics ID 显示在页面顶部。

但是,根据步骤编号,我找不到跟踪信息选项或任何跟踪代码:5。

从我在哪里可以得到跟踪ID看起来像这样的:(UA-41888835-6)

注意:我可以在那里找到属性 ID。

android google-analytics google-analytics-api

14
推荐指数
2
解决办法
9493
查看次数

Google API错误400:"找不到客户端项目"

这是我第一次深入了解Google API.我正在尝试按照Google说明进行简单的测试.此时,我已经创建了项目并设置了凭据.继谷歌的指示在这里,我创建了一个测试页面,并复制网页代码完全按照上面的链接上注明.

当我运行页面时,我最初看到一个授权按钮,要求我登录我的帐户.到目前为止,一切都很好.但是,一旦我登录Google,就会收到以下错误:

"{"error": {"code": 400,
            "message": "Client project not found. Please pass a valid project.",
            "status": "INVALID_ARGUMENT",
            "details": [{"@type": "type.googleapis.com/google.rpc.Help",
                         "links": [{"description": "Google developers console",
                                    "url": "https://console.developers.google.com"
                                  }]
                       }]
 }}"
Run Code Online (Sandbox Code Playgroud)

我已经读过一些我无法找到的内容,也没有提到这个特定的错误.

有人遇到这个错误,或者有任何想法?

谢谢!

google-api google-analytics-api google-developers-console

13
推荐指数
1
解决办法
7601
查看次数

GA4 API 中缺少浏览器版本维度

GA4 API 中没有 \xe2\x80\x9c 浏览器版本\xe2\x80\x9d 维度:https://developers.google.com/analytics/devguides/reporting/data/v1/api-schema#dimensions

\n

在分析控制台的报告部分中也找不到它:\n报告部分

\n

而在支持文章中说:

\n
\n

作为此更改的一部分,客户将不再知道 Google Analytics 中 Chrome 的确切颠覆,但仍会知道浏览器和主要版本号

\n
\n

它在控制台的哪里?

\n

有趣的是,在探索区域中存在这个维度:\n探索部分

\n

第二个问题是:如何解释这种不平等以及如何在 API/报告中获取这个维度?

\n

google-analytics-api google-analytics-4

13
推荐指数
1
解决办法
5323
查看次数

Google AnalyticsAPI授权允许访问我的数据

我正在开发一款应用,允许用户使用Google API v3查看自己的Google Analytics数据.我研究过的所有内容似乎都表明,在我开始查询API之前,用户需要登录自己的Google帐户并授予我的应用访问权限; 但是,这不是我想要的,我只需要我的用户查看我自己的Google Analytics数据.如何授权API访问我的数据.我有客户端ID和客户端密码,但是由Google的API v3实施的OAuth要求授权令牌,只能通过让用户登录他们的谷歌帐户来获取(是吗?)有没有办法只需登录我自己的Google Analytics帐户并向用户显示该信息?

api google-analytics oauth google-analytics-api

12
推荐指数
2
解决办法
1万
查看次数

如何以编程方式获取Google Analytics中当前访问的广告系列/来源/媒介

我想知道用户的活跃程度取决于他们在注册之前来自的流量来源/媒介/广告系列.当我试图通过JS中的Google Analytics跟踪器获取当前访问的广告系列/来源/媒介时,我正在闯入墙壁.

我找到了这种tracker.get()方法:https://developers.google.com/analytics/devguides/collection/analyticsjs/method-reference#get但他们没有指定'fieldName'的可能值.我在Firebug中检查了跟踪器对象,发现屏幕附带的屏幕抓取:

检查跟踪器对象

这些是我可以查询的唯一字段吗?是否可以阅读任何广告系列字段?我知道GA打算匿名,但我认为这些信息并不是真正的秘密......

如果我无法从GA跟踪器中检索此信息,您将如何处理此问题?我是否应该在访问utm_参数时设置自己的cookie,然后在访问者选择注册时阅读它?

我知道这个回复:如何使用Javascript从Cookie中提取Google Analytics广告系列数据?但评论说解析cookie不适用于AdWords流量..

javascript cookies google-analytics google-analytics-api

12
推荐指数
1
解决办法
6555
查看次数

使用Google Analytics(分析)使用embed api为Web应用程序的客户显示数据子集

我正在开发一个应用程序,其中每个"业务"都有自己的页面(或者更多的页面):

例如,例子.COM /业务/ ABC /

因此,对于系统中登录的业务所有者,我想提供一个功能"查看页面分析".它将显示特定页面有多少次访问(可能还有其他一些事情).

有没有办法使用Google Analytics API和我的约束来执行此操作:

  • 我不希望客户提供自己的UA代码
  • 我不希望他们要求拥有GA帐户
  • 客户无需拥有Google电子邮件帐户
  • 我不想自己构建整个前端和后端.我宁愿使用现有的东西

我一直在研究这个话题几个小时试图提出一个解决方案,但无法弄清楚任何事情.

这是我尝试过的以及发生在我身上的问题:

  • http://ga-dev-tools.appspot.com/demos/embed-api/
    • 这基本上就是我希望我的客户在我的网站上显示的内容(如示例中所示),除了Embed Api尝试授权用户使用他们自己的(拥有的)谷歌分析.我希望它能够使用我自己的Google Analytics数据(或者更确切地说是其中的一部分)
    • 他们考虑限制数据访问的方式是我的每个客户在GA中创建一个View,在该View中添加过滤器,这样只列出客户页面,将User分配给视图,并使用Embed Api显示数据仅从该视图.这有几个问题:
      • 要将用户分配给View,我们需要电子邮件地址.这必须是Google帐户电子邮件,或者是使用Google Developers Console(应用程序)创建的项目中的帐户.
      • 换句话说,我无法创建(以我知道的任何方式)和帐户,这将成为我的客户的屏蔽帐户,以便他们感兴趣的GA数据的子集.它必须是真实用户或真实应用程序电子邮件地址.
      • 所以我试图做的是......我在Google Developers Console中创建了一个应用程序,创建了新的OAuth服务帐户.使用Ruby代码(生产应用程序将在后端运行)我获得了OAuth令牌.我将我的OAuth服务帐户的这封电子邮件作为用户添加到了View中
      • 我想这个服务器端生成的oauth令牌由Embed Api使用.这将实现我在我的后端生成令牌的效果,用户可以在我的GA属性中使用GA用户而不使用GA用户.所以我根据文档改变了使用的基本Embed Api示例
gapi.analytics.auth.authorize({
  container: 'auth',
  clientid: 'xxx.apps.googleusercontent.com',
    serverAuth: {
      access_token: 'Server side generated token'
    }
});
Run Code Online (Sandbox Code Playgroud)

代替

gapi.analytics.auth.authorize({
  container: 'auth',
  clientid: 'xxx.apps.googleusercontent.com',
});
Run Code Online (Sandbox Code Playgroud)

效果并不像我预期的那样.该示例不再显示(我无法看到我的数据),但我可以在Chrome的Netowrking部分看到它实际上是从GA接收真实数据.但由于未知原因,没有任何东西出现.

我试图避免的是构建一个解决方案,我需要构建服务器端代码,查询GA以获取数据,将其提供给前端,然后JS负责显示它.我宁愿使用Embed API,但它似乎不适合我不希望用户使用他们的UA数据但是我自己的UA数据仅限于某个范围的用例.我想至少解决了解决方案的前端或后端部分.该解决方案甚至不需要基于Google Analytics.任何其他可以让我轻松实现用例并让企业主看到他们的营销(流量,销售)效果的其他东西也会很有趣.

有关:

  • stackoverflow .com/questions/13514775/using-google-analytics-api-to-show-of-data-for-customers-of-web-applicati
  • stackoverflow .com/questions/3994708/google-analytics-customer-data
  • stackoverflow .com/questions/4245132/google-analytics-api-filter-by-uri
  • embeddedanalytics .com看起来像是有用的东西,但它们的页面和图形看起来就像几年前一样.我想要更漂亮的东西.
  • oocharts .com似乎很有趣,因为他们的docs.oocharts .com所说的查询.但他们不会为他们的产品收取任何费用,因此我对他们的商业模式持怀疑态度,以及这是否是一个很好的长期解决方案.
  • 我没有足够的业力来发布链接;)

TLDR:向我的客户显示我的GA数据的子集,而不强迫他们成为GA用户并将其添加到我的GA帐户.

任何帮助赞赏!

google-analytics google-analytics-api

12
推荐指数
1
解决办法
2918
查看次数

适用于Android的Google AnalyticsAPI v4不会发送屏幕视图

我为google analytics api v4设置了所有内容,如下所述:
https ://developers.google.com/analytics/devguides/collection/android/v4/
,此处: http ://www.javacodegeeks.com/2014 /04/working-with-google-analytics-api-v4-for-android.html


我可以看到实时数据,但我无法在特定时间段内看到屏幕,活动用户,新用户和顶级设备模型,例如"所有时间".

Analytic不发送屏幕视图.


这是我的global_tracker.xml

    <string name="ga_trackingId">UA-XXXXXXXX-Y</string>

    <integer name="ga_sessionTimeout">300</integer>

    <bool name="ga_autoActivityTracking">true</bool>

    <bool name="ga_reportUncaughtExceptions">true</bool>

    <screenName name="com.org.ScreenActivity1">Screen 1</screenName>
    <screenName name="com.org.ScreenActivity2">Screen 2</screenName>
Run Code Online (Sandbox Code Playgroud)


这是我的AndroidManifest.xml

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version"/>

        <meta-data
            android:name="com.google.android.gms.analytics.globalConfigResource"
            android:resource="@xml/global_tracker"/>
Run Code Online (Sandbox Code Playgroud)


这是我的Analytics.java

public enum TrackerName {
        APP_TRACKER, // Tracker used only in this app.
        GLOBAL_TRACKER // Tracker used by all the apps from a company. eg: roll-up tracking.
    }

    HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();

    public Analytics() {
        super(); …
Run Code Online (Sandbox Code Playgroud)

java android google-analytics google-analytics-api google-analytics-firebase

12
推荐指数
1
解决办法
1万
查看次数