NAME

Net::Google::Analytics::Response - Google Analytics API response

VERSION

version 3.03

SYNOPSIS

my $res = $analytics->retrieve($req);
die("GA error: " . $res->error_message) if !$res->is_success;

print
    "Results: 1 - ", $res->num_rows,
    " of ", $res->total_results, "\n\n";

for my $row (@{ $res->rows }) {
    print
        $row->get_source,  ": ",
        $row->get_visits,  " visits, ",
        $row->get_bounces, " bounces\n";
}

print
    "\nTotal: ",
    $res->totals("visits"),  " visits, ",
    $res->totals("bounces"), " bounces\n";

DESCRIPTION

Response class for Net::Google::Analytics web service.

CONSTRUCTOR

new

ACCESSORS

is_success

True for successful requests, false in case of an error.

code

The HTTP status code.

message

The HTTP status message.

content

In case of an error, this field contains a JSON string with additional information about the error from the response body.

error_message

The full error message.

total_results

The total number of results for the query, regardless of the number of results in the response.

start_index

The 1-based start index of the result rows.

items_per_page

The number of rows returned.

contains_sampled_data

Returns true if the results contain sampled data.

profile_info

A hashref containing information about the analytics profile.

num_rows

The number of rows on this result page.

rows

An arrayref of result rows of type Net::Google::Analytics::Row.

dimensions

An array of all dimension names without the 'ga:' prefix and converted to lower case with underscores.

metrics

An array of all metric names without the 'ga:' prefix and converted to lower case with underscores.

METHODS

totals

my $total = $res->totals($metric);

Returns the sum of all results for a metric regardless of the actual subset of results returned. $metric is a metric name without the 'ga:' prefix and converted to lower case with underscores.

project

my $projected = $res->project(\@proj_dim_names, \&projection);

Projects the dimension values of every result row to new dimension values using subroutine reference \&projection. The metrics of rows that are mapped to the same dimension values are summed up.

Argument \@proj_dim_names is an arrayref containing the names of the new dimensions.

The projection subroutine takes as single argument a Net::Google::Analytics::Row object and must return an array of dimension values.

Returns a new response object.

The following example maps a single dimension of type ga:pagePath to categories.

my $projected = $res->project([ 'category' ], sub {
    my $row = shift;

    my $page_path = $row->get_page_path;

    return ('flowers') if $page_path =~ m{^/(tulips|roses)};
    return ('fruit')   if $page_path =~ m{^/(apples|oranges)};

    return ('other');
});

AUTHOR

Nick Wellnhofer <wellnhofer@aevum.de>

COPYRIGHT AND LICENSE

This software is copyright (c) 2015 by Nick Wellnhofer.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.