如何拉谷歌分析统计?

时间:2022-02-27 15:16:39

Is Google API Ruby client the best option?

谷歌API Ruby客户端是最好的选择吗?

I have a site example.com with users and I want them to see their google analytics stats on example.com, how can I do it ?

我有一个网站example.com和用户,我想让他们看到他们的谷歌分析统计在example.com,我怎么做?

I can see the example but I'm not able to figure out how to begin.

我可以看到这个例子,但是我不知道如何开始。

1 个解决方案

#1


30  

I also use the google-api-ruby-client gem and set it up about the same way that is outlined in the link you provided (https://gist.github.com/joost/5344705).

我还使用google-api-ruby-client gem,并将其设置为与您提供的链接相同的方式(https://gist.github.com/joost/5344705)。

Just follow the steps outlined in the link to set up a Google Analytics client:

只需按照链接中列出的步骤设置谷歌分析客户端:

# you need to set this according to your situation/needs
SERVICE_ACCOUNT_EMAIL_ADDRESS = '...' # looks like 12345@developer.gserviceaccount.com
PATH_TO_KEY_FILE              = '...' # the path to the downloaded .p12 key file
PROFILE                       = '...' # your GA profile id, looks like 'ga:12345'


require 'google/api_client'

# set up a client instance
client  = Google::APIClient.new

client.authorization = Signet::OAuth2::Client.new(
  :token_credential_uri => 'https://accounts.google.com/o/oauth2/token',
  :audience             => 'https://accounts.google.com/o/oauth2/token',
  :scope                => 'https://www.googleapis.com/auth/analytics.readonly',
  :issuer               => SERVICE_ACCOUNT_EMAIL_ADDRESS,
  :signing_key          => Google::APIClient::PKCS12.load_key(PATH_TO_KEY_FILE, 'notasecret')
).tap { |auth| auth.fetch_access_token! }

api_method = client.discovered_api('analytics','v3').data.ga.get


# make queries
result = client.execute(:api_method => api_method, :parameters => {
  'ids'        => PROFILE,
  'start-date' => Date.new(1970,1,1).to_s,
  'end-date'   => Date.today.to_s,
  'dimensions' => 'ga:pagePath',
  'metrics'    => 'ga:pageviews',
  'filters'    => 'ga:pagePath==/url/to/user'
})

puts result.data.rows.inspect

To display statistics for a user's page in your app, you have to adjust the metrics and filters parameters when making the query. The query above for example will return a result object containing all pageviews for the page with url example.com/url/to/user.

要在应用程序中显示用户页面的统计信息,您必须在进行查询时调整指标和筛选参数。例如,上面的查询将返回一个结果对象,其中包含url example.com/url/to/user页面的所有pageviews。


Caveat: this answer was written a long time ago and Google released a new, incompatible version of the gem. Please consult https://github.com/google/google-api-ruby-client/blob/master/MIGRATING.md

注意:这个答案是很久以前写的,谷歌发布了一个新的、不兼容的gem版本。请参阅https://github.com/google/google-api-ruby-client/blob/master/MIGRATING.md

#1


30  

I also use the google-api-ruby-client gem and set it up about the same way that is outlined in the link you provided (https://gist.github.com/joost/5344705).

我还使用google-api-ruby-client gem,并将其设置为与您提供的链接相同的方式(https://gist.github.com/joost/5344705)。

Just follow the steps outlined in the link to set up a Google Analytics client:

只需按照链接中列出的步骤设置谷歌分析客户端:

# you need to set this according to your situation/needs
SERVICE_ACCOUNT_EMAIL_ADDRESS = '...' # looks like 12345@developer.gserviceaccount.com
PATH_TO_KEY_FILE              = '...' # the path to the downloaded .p12 key file
PROFILE                       = '...' # your GA profile id, looks like 'ga:12345'


require 'google/api_client'

# set up a client instance
client  = Google::APIClient.new

client.authorization = Signet::OAuth2::Client.new(
  :token_credential_uri => 'https://accounts.google.com/o/oauth2/token',
  :audience             => 'https://accounts.google.com/o/oauth2/token',
  :scope                => 'https://www.googleapis.com/auth/analytics.readonly',
  :issuer               => SERVICE_ACCOUNT_EMAIL_ADDRESS,
  :signing_key          => Google::APIClient::PKCS12.load_key(PATH_TO_KEY_FILE, 'notasecret')
).tap { |auth| auth.fetch_access_token! }

api_method = client.discovered_api('analytics','v3').data.ga.get


# make queries
result = client.execute(:api_method => api_method, :parameters => {
  'ids'        => PROFILE,
  'start-date' => Date.new(1970,1,1).to_s,
  'end-date'   => Date.today.to_s,
  'dimensions' => 'ga:pagePath',
  'metrics'    => 'ga:pageviews',
  'filters'    => 'ga:pagePath==/url/to/user'
})

puts result.data.rows.inspect

To display statistics for a user's page in your app, you have to adjust the metrics and filters parameters when making the query. The query above for example will return a result object containing all pageviews for the page with url example.com/url/to/user.

要在应用程序中显示用户页面的统计信息,您必须在进行查询时调整指标和筛选参数。例如,上面的查询将返回一个结果对象,其中包含url example.com/url/to/user页面的所有pageviews。


Caveat: this answer was written a long time ago and Google released a new, incompatible version of the gem. Please consult https://github.com/google/google-api-ruby-client/blob/master/MIGRATING.md

注意:这个答案是很久以前写的,谷歌发布了一个新的、不兼容的gem版本。请参阅https://github.com/google/google-api-ruby-client/blob/master/MIGRATING.md