81 lines
3.6 KiB
Ruby
81 lines
3.6 KiB
Ruby
# Copyright 2016 Google Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
require 'google/apis/analytics_v3'
|
|
require 'base_cli'
|
|
|
|
module Samples
|
|
# Examples for the Google Analytics APIs
|
|
#
|
|
# Sample usage session:
|
|
#
|
|
# $ ./google-api-samples analytics show_visits 55622900 --start='2015-12-01' --end='2015-12-08'
|
|
# ga:date ga:sessions ga:users ga:newUsers ga:percentNewSessions ga:sessionDuration ga:avgSessionDuration
|
|
# 20151201 0 0 0 0.0 0.0 0.0
|
|
# 20151202 0 0 0 0.0 0.0 0.0
|
|
# 20151203 1 1 1 100.0 0.0 0.0
|
|
# 20151204 2 2 1 50.0 616.0 308.0
|
|
# 20151205 0 0 0 0.0 0.0 0.0
|
|
# 20151206 1 1 1 100.0 0.0 0.0
|
|
# 20151207 0 0 0 0.0 0.0 0.0
|
|
# 20151208 2 2 1 50.0 0.0 0.0
|
|
#
|
|
class Analytics < BaseCli
|
|
Analytics = Google::Apis::AnalyticsV3
|
|
|
|
desc 'show_visits PROFILE_ID', 'Show visits for the given analytics profile ID'
|
|
method_option :start, type: :string, required: true
|
|
method_option :end, type: :string, required: true
|
|
def show_visits(profile_id)
|
|
analytics = Analytics::AnalyticsService.new
|
|
analytics.authorization = user_credentials_for(Analytics::AUTH_ANALYTICS)
|
|
|
|
dimensions = %w(ga:date)
|
|
metrics = %w(ga:sessions ga:users ga:newUsers ga:percentNewSessions
|
|
ga:sessionDuration ga:avgSessionDuration)
|
|
sort = %w(ga:date)
|
|
result = analytics.get_ga_data("ga:#{profile_id}",
|
|
options[:start],
|
|
options[:end],
|
|
metrics.join(','),
|
|
dimensions: dimensions.join(','),
|
|
sort: sort.join(','))
|
|
|
|
data = []
|
|
data.push(result.column_headers.map { |h| h.name })
|
|
data.push(*result.rows)
|
|
print_table(data)
|
|
end
|
|
|
|
desc 'show_realtime_visits PROFILE_ID', 'Show realtime visits for the given analytics profile ID'
|
|
def show_realtime_visits(profile_id)
|
|
analytics = Analytics::AnalyticsService.new
|
|
analytics.authorization = user_credentials_for(Analytics::AUTH_ANALYTICS)
|
|
|
|
dimensions = %w(rt:medium rt:pagePath)
|
|
metrics = %w(rt:activeUsers)
|
|
sort = %w(rt:medium rt:pagePath)
|
|
result = analytics.get_realtime_data("ga:#{profile_id}",
|
|
metrics.join(','),
|
|
dimensions: dimensions.join(','),
|
|
sort: sort.join(','))
|
|
|
|
data = []
|
|
data.push(result.column_headers.map { |h| h.name })
|
|
data.push(*result.rows)
|
|
print_table(data)
|
|
end
|
|
end
|
|
end
|