There are many (old) clients available:
- https://github.com/tpitale/legato (active, supports API v3)
- https://github.com/activenetwork/gattica
- https://github.com/vigetlabs/garb
The Google Analytics API is at v3 (at time of writing).
This example uses Google's Ruby API client to access Analytics. Use https://github.com/google/google-api-ruby-client (Google supported).
For server-to-server Analytics API:
- Go to your project at https://code.google.com/apis/console/
- Enable Analytics under Services
- 'Create another client ID' under API Access
- Download the key-file to your project [KEY_FILE]
- Go to you Analytics account and add the API client email address to your account [SERVICE_ACCOUNT_EMAIL]. It should be something like '[email protected]'.
Now get access to the Analytics API in your Ruby/Rails app:
require 'google/api_client'
require 'date'
client = Google::APIClient.new(:application_name => 'something you like', :application_version => '1')
key_file = File.join('SOME PATH', 'KEY_FILE')
key = Google::APIClient::PKCS12.load_key(key_file, 'notasecret')
service_account = Google::APIClient::JWTAsserter.new(
SERVICE_ACCOUNT_EMAIL,
['https://www.googleapis.com/auth/analytics.readonly', 'https://www.googleapis.com/auth/prediction'],
key)
client.authorization = service_account.authorize
analytics = client.discovered_api('analytics', 'v3')
result = client.execute(:api_method => analytics.management.accounts.list)
result.data.items.first.id
parameters = {
'ids' => "ga:SOME_ID",
'start-date' => (Date.today - 30).strftime("%Y-%m-%d"),
'end-date' => Time.now.strftime("%Y-%m-%d"),
'metrics' => "ga:avgTimeOnPage",
'filters' => "ga:pagePath=~/"
}
result = client.execute(:api_method => analytics.data.ga.get, :parameters => parameters)