NAME
Mojo::GoogleAnalytics - Extract data from Google Analytics using Mojo UserAgent
SYNOPSIS
my $ga = Mojo::GoogleAnalytics->new("/path/to/credentials.json");
my $report = $ga->batch_get({
viewId => "ga:152749100",
dateRanges => [{startDate => "7daysAgo", endDate => "1daysAgo"}],
dimensions => [{name => "ga:country"}, {name => "ga:browser"}],
metrics => [{expression => "ga:pageviews"}, {expression => "ga:sessions"}],
orderBys => [{fieldName => "ga:pageviews", sortOrder => "DESCENDING"}],
pageSize => 10,
});
print $report->rows_to_table(as => "text");
DESCRIPTION
Mojo::GoogleAnalytics is a Google Analytics client which allow you to extract data non-blocking.
This module is work in progress and currently EXPERIMENTAL. Let me know if you start using it or has any feedback regarding the API.
ATTRIBUTES
authorization
$hash_ref = $self->authorization;
Holds authorization data, extracted by "authorize". This can be useful to set from a cache if Mojo::GoogleAnalytics objects are created and destroyed frequently, but with the same credentials.
client_email
$str = $self->client_email;
Example: "some-app@some-project.iam.gserviceaccount.com".
client_id
$str = $self->client_id;
Example: "103742165385019792511".
private_key
$str = $self->private_key;
Holds the content of a pem file that looks like this:
-----BEGIN PRIVATE KEY-----
...
...
-----END PRIVATE KEY-----
ua
$ua = $self->ua;
$self = $self->ua(Mojo::UserAgent->new);
Holds a Mojo::UserAgent object.
METHODS
authorize
$self = $self->authorize;
$self = $self->authorize(sub { my ($self, $err) = @_; });
This method will set "authorization". Note that this method is automatically called from inside of "batch_get", unless already authorized.
batch_get
$report = $self->batch_get($query);
$self = $self->batch_get($query, sub { my ($self, $err, $report) = @_ });
Used to extract data from Google Analytics. $report
will be a Mojo::Collection if $query
is an array ref, and a single Mojo::GoogleAnalytics::Report object if $query
is a hash.
$err
is a string on error and false value on success.
from_file
$self = $self->from_file("/path/to/credentials.json");
Used to load attributes from a JSON credentials file, generated from https://console.developers.google.com/apis/credentials. Example file:
{
"type": "service_account",
"project_id": "cool-project-238176",
"private_key_id": "01234abc6780dc2a3284851423099daaad8cff92",
"private_key": "-----BEGIN PRIVATE KEY-----...\n-----END PRIVATE KEY-----\n",
"client_email": "some-name@cool-project-238176.iam.gserviceaccount.com",
"client_id": "103742165385019792511",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
}
Note: The JSON credentials file will probably contain more fields than is listed above.
new
$self = Mojo::GoogleAnalytics->new(%attrs);
$self = Mojo::GoogleAnalytics->new(\%attrs);
$self = Mojo::GoogleAnalytics->new("/path/to/credentials.json");
Used to construct a new Mojo::GoogleAnalytics object. Calling new()
with a single argument will cause "from_file" to be called with that argument.
AUTHOR
Jan Henning Thorsen
COPYRIGHT AND LICENSE
This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License version 2.0.