Insufficient permissions to link to AdWords after creating analytics account - google-analytics

I've created an analytics account programmatically via the analytics provisioning API. When I try and link that newly created account to an Adwords account I get the following error
exception 'Google_Service_Exception' with message
'Error calling POST https://www.googleapis.com/analytics/v3/management/accounts/xxxxx/webproperties/UA-xxxxxxxxx-1/entityAdWordsLinks: (403)
User does not have sufficient permissions for this web property.'
I visit the link at - https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=xxxxxx and get the following output
{
"issued_to": "xxxx-apps.googleusercontent.com",
"audience": "xxxx-apps.googleusercontent.com",
"scope": "https://www.googleapis.com/auth/analytics https://www.googleapis.com/auth/analytics.edit https://www.googleapis.com/auth/analytics.manage.users https://www.googleapis.com/auth/analytics.provision",
"expires_in": 1340,
"access_type": "offline"
}
The scope that’s required is listed there, but I’m still getting the error. How do I get around this error? How do I ensure that the Adwords account has the proper permissions to link to Analytics accounts. Why would I have permission to create the account but not modify the account I just created.

Related

Google Analytics API Service User does not have sufficient permissions for this profile

I am using Google Analytics 4. I have created the json file for the service account, and got the email address. This email was added to my users as Admin in the Account Access Management, yet I am still getting the error that I do not have sufficient permissions for this profile.
Any idea what am I doing wrong please?

google calendar api send as another user on our domain using service account

I have a service account, and I downloaded the credentials that look like:
{
"installed":{
"client_id":"abc123",
...
}
}
And I go through the procedure of running the node.js based code which attempts to create the token file with getNewAccessToken, and it gives me the prompt:
Authorize this app by visiting this url: https://accounts.google.com/o/oauth2/v2/auth?ac...
When I go to the link, it asks me to log in with my google account.
That sets the token and I can send google calendar events where the calendar id is set to primary (and it is set to be from me) but I can't set the calendar id to John.Smith#mycompany.com
It says
{
"domain": "calendar",
"reason": "requiredAccessLevel",
"message": "You need to have writer access to this calendar."
}
I am not sure how to make it so my service account can be used to send events on behalf of our staff members. Is it because when authorizing I logged in as my account instead of the service account, and if so, how do I authorize as the service account.
Update: I am using the code provided in the google calendar api quickstart guide

Analytics Google API Error 403: “User does not have any Google Analytics Account”

Hi generated secret file using OAuth 2.0 client ID. In that secret file, I do not see any google mail address to authenticate or access permissions to that mail address. Still facing below error.
Arg, there was an API error : 403 : User does not have sufficient permissions for this profile.
How come I know, to which user, we do not have sufficient previliges?
Please help me with this
You have created an Oauth2 client for use with your application. When the application runs a user will need to login using their Google account and grant the application (client) access to their data. I have an article that explains how google oauth2 works if you are interested. Oauth2 for beginners
User does not have sufficient permissions for this profile.
Means that the user you have authenticated with does not have access to the Google Analytics profile you are trying to request data form. Try doing an Accountsummires.list this will return a list of the Google Analytics accounts that the current authenticated user has access to and the ones you will be able to request data from.
Question: How come I know, to which user, we do not have sufficient privileges?
You have a profile id you are trying to access find someone who has access to that profile and have them run your application. When they have logged in and authenticated they will be able to see the data.

Using service account for Google Analytics Reporting

I am trying to create a simple node app and I using service account to automate the OAuth Flow. While am able to successfully do this, am not able to retrieve the report from Google Analytics using this service account. I get the following error message,
{
"error": {
"code": 403,
"message": "User does not have any Google Analytics account.",
"status": "PERMISSION_DENIED"
}
}
I can't add this service account to the Analytics account as my owner account (under which I created this service account) has only read-only access. So how do I proceed? How can I grant this service account the same read-only access as my owner account? When I login into Google Analytics using my owner account, I am not able to perform any User Management as it has limited access.
Please help me on how to proceed here.
Thanks
If using a service account, there is no way to proceed other than finding someone with user management permissions and have him add the account.
It is hard to see why you would expect it to be otherwise; the purpose of the permission system is to prevent unauthorized access, and it would do a pretty poor job if it suddenly allowed you to exceed your privileges by adding a user.
As per the answer from Eike, you cannot add a Service Account if you lack the permissions to do so.
There is an alternative approach which allows you to use your own account, i.e. no service accounts anywhere. This basically involves you obtaining a Refresh Token, and using that to authenticate your access. You can follow the steps at How do I authorise an app (web or installed) without user intervention? (canonical ?) to do this.

Google Analytics Management API - Insert method - invalid accountId HTTP 400

I am trying to add users to my Google Analytics account through the API but the code yields this error:
invalid accountId: xxxxxx#gmail.com."
Where I got account Id. Isn't It mean for user's Email ?
Account User Links: insert adds a new user to the given account if the user has fewer than 100 accounts.
Go to the admin section of the Google Analytics website.
You will find your account ID under basic Account settings.

Resources