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 . 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.