I am on a platform where the JS SDK does not work. I want to try to use the REST API or otherwise to get Google Analytics clientID
With SDK I could use
ga(function(tracker) {
var clientId = tracker.get('clientId');
});
Is there an equivalent REST API? I think measurement protocol does not provide such functionality?
There is no rest API because there is no service that provides client ids. This is usually generated by the tracking code.
You can just generate your own clientId with whatever language you have available. UUID format is preferred (to avoid collisions), but basically any (sufficiently random) string works.
Related
I want to add Google analytics manually on each pages and events in my website. Is there any ways to add Google analytics using REST api or any library in PHP. so i can track specific events of my website.
There is no REST API for Google Analytics. You will have to use one of the available libraries provided by Google.
To track particular events, you can use tag manager or simply use custom dimensions.
TL;DR, Google Analytics is great if all you ever use is their GUI dashboard. If you need API access, go with another service.
If you need to access analytics data programmatically, especially if you are using NodeJS, I suggest you use some other service besides Google. Their documentation is incredibly lacking, they try to pigeon-hole you into using a client library rather than steering you in the direction of a REST API, and authenticating is a nightmare. The new v4 API purportedly consists of a single endpoint that you need to query with a complex combination of HTTP body and query params. Again, documentation is nearly non-existent.
I maintain a WordPress store locator plugin, and this week someone told me it wasn't working anymore. Eventually he fixed it by verifying his domain in the API Console.
That this was a solution to some APIs of Google Maps not working was new to me, and it's also the first time someone told me they fixed it this way.
The problem is that I can't find any information in which scenario verifying your domain fixes a Google Maps API related problem. I read through the Geocode API / Google Maps JavaScript API / Google Places API Web Service pages, but no where do I see something about the need to verify your domain ( I could of course have missed it ).
Does anyone know when you need to verify your domain if you want to use the Google Maps APIs? Normally it works fine without doing it, but in his case it wasn't, and I really like to know what he could possible have done to make it a requirement.
You shouldn't need to verify the domain for using Google Maps API.
You need to generate one API Key for your app so you can use it when you call the Google Map JavaScript API like this:
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap" async defer></script>
Substitute the value YOUR_API_KEY for the one that Google generated for you.
I'm trying to access the Google Analytics API via Google Sheets (Google Script).
So within the script, I'm trying to use the URI as described here: https://developers.google.com/analytics/devguides/reporting/realtime/v3/reference/data/realtime/get
The API call looks something like this:
GET https://www.googleapis.com/analytics/v3/data/realtime?ids=3254435&metrics=ga%3AActiveUsers&key={YOUR_API_KEY}
Within my Google Analytics Script, I've also created a Public API Access key:
However, I can't seem to get any data whether if I'm appending the token key in the URI or within the header.
Can any one point me to the right direction?
Thanks
The public api key is for public access APIs. Data that is not owned by a user. You need to create client id from web application.
Then you will be able to authenticate it using Oauth2.
this might get you started. https://developers.google.com/apps-script/advanced/analytics
How to know when you need to be authenticated:
Public API: Aanalytics metadata API meta data doesn't belong to any user its public data anyone can access.
User data API: Google Analytics Real-time Data the data returned is owned by a user, it is not public data viewable by everyone. Documentation states
Requires authorization
If the documentation says requires authentication then you have to be authenticated to access that call.
You can use Google Analytics API easily just by enabling them in App Script.
Below is the Guide to using Real-time API in Google Spreadsheet
https://www.tatvic.com/blog/google-analytics-real-time-data-in-google-sheet/
Just like above you can use any API no need to take care of tokens.
I'm trying to implement Google analytics API using API key to make it available without authorization. But i can get examples using CLIENT ID in google developer console itself. Can anyone help me with an example using api key?
It is not possible to access Google Analytics API with the API key. You must use Open Authentication.
If you are trying to access your own data you can use a service account. Create new credentials choose Service Account.
You can then take the service account email address:
1046123799103-nk421gjc2v8mlr2qnmmqaak04ntb1dbp#developer.gserviceaccount.com
Add it as a user at the ACCOUNT level it is very important that it be at the ACCOUNT level it wont work other wise. Your application with then be able to access your Google Analytics data with out a log in.
Without knowing what language you are working with I cant give you any examples.
Update:
If as you say you are planning on doing this with JavaScript then you will have to go with Oauth2 and request access. There is no way to use a Service account with JavaScript.
There for I strongly recommend that you find a server sided programing language to do this in. Even if it did work with JavaScript you would end up running out of quota on the API before to long.
Google Analytics' EmbedAPI will allow you to display your Google Analytics via javascript, and users will be able to log in on page.
You will still need to get your clientAPI, but then users will be able to login independently.
The javascript code is described in the dev guide and a sample is below:
<script>
gapi.analytics.ready(function() {
// Step 3: Authorize the user.
var CLIENT_ID = 'Insert your client ID here';
gapi.analytics.auth.authorize({
container: 'auth-button',
clientid: CLIENT_ID,
});
</script>
The API limit should be no problem, its 50,000 calls per day.
I am using Google Maps API v3 in a Web.
And also I am using:
new google.maps.Geocoder(); (GEOCODING)
new google.maps.DirectionsService(); (DIRECTIONS for trace routes between 2 places)
Then I went to API Developers Console and create a KEY and I call the Google service in this way usin the key:
http://maps.google.es/maps/api/js?key='the-key-from-api-console'&sensor=true
The intent of this is to keep track of the use of apis to watch that I do not pass the limits of use.
In the API console Google reports me ok about the use of the javascript API v3 counting the number of visits, the number of loads of the maps even the URL of the pages that use the maps.
I can see that my use of this service does not exceed 25,000 requests / day
But i need reports of the use of GEOCODING and DIRECTIONS too and Google is not reporting me this info. In developers console I activated the Directions API, the Geocoding API and Google Maps JavaScript API v3. But I only get reports of Maps JavaScript API v3.
Report of Directions API and the Geocoding API stay always at 0%. It is as if Google is not using this report.
Could it be that the service should be contracted to have this data or to be other types of APIS enable the console in order to have use of this report?
I've been trying to find information clarifying this for me but I found nothing that completely solved my doubt.
Thanks in advance.
When you use both services via the methods of the Javascript-API the limits apply to the user that visits the page with the map, the quota of your account is not affected(so there is nothing to count/report for your account/project)
It applies to your account only when you request the webservices(usually via serverside scripts).