2

before posting I make sure to check other similar threads. but none has the same problem as mine. the closest two would be: Google Analytics PHP API "(403) Insufficient Permission" and Google Analytics API - inconsistent error "insufficientPermissions' (403) but there is no specific answer/solution to that thread. and found this Python Google Analytics Management API throws error 403 Forbidden but I dont really know/understand if this is related to my issue..perhaps someone can enlighten me?

I have 2 clients, A & B. Both claimed has granted me the access to Read & Analyse I succeed extracting data from A, but failed on B. I believe, I have both GA Profile ID correct and no coding error (since A succeed). To confirm that I dont use wrong GA profile ID, GA Profile ID would be 9876543 from the example below

/a12345w654321p9876543/

The error code is 403, insufficient permission for this profile.

GA error: 403 Forbidden {"error":{"errors":[{"domain":"global","reason":"insufficientPermissions","message":"User does not have sufficient permissions for this profile."}],"code":403,"message":"User does not have sufficient permissions for this profile."}} at ./ga_pp_yest.pl line 90.

Then, I tried to give access to the same account on my own website (for testing purpose). I go to Property level and give permission Read & Analyse. (even tried changing to Account Level with Edit permission) I still get the same error.

some of my code:

my $analytics = Net::Google::Analytics->new;
# Authenticate
my $oauth = Net::Google::Analytics::OAuth2->new(
  client_id     => $client_id,
  client_secret => $client_secret,
);
my $token = $oauth->refresh_access_token($refresh_token);
$analytics->token($token);

$req = $analytics->new_request(
  start_date  => "$startDate",
  end_date    => "$startDate",
  ids         => "ga:$profile_id",
  dimensions  => "ga:pagePath,ga:date,ga:hour,ga:channelGrouping,ga:deviceCategory,ga:region,ga:city",
  metrics     => "ga:entrances",
  max_results => "1000",
);
$res = $analytics->retrieve($req);
die( "GA error: " . $res->error_message ) if !$res->is_success;

I checked the token, it gave me 1 hour of access. using this link https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=accessToken

any help is greatly appreciated. thank you very much

0 Answers0