Does Google Analytics have a query language? - google-analytics

I'm working on a back-end script that takes some data from my Google Analytics account and sends it to another application. The script is controlled by a web client. I don't want to add too many UI elements in the web client (I don't want to build another Google Analytics Query Explorer like the one at https://ga-dev-tools.google/query-explorer/ ). I just want to offer 1 textbox and the user should write their query there.
On the back-end, I can query Google Analytics using their own libraries, which take in various parameters such as start date, end date, metrics, etc.. But each of these require some separate coding & validation client-side. Would be nice if there would be some sort of syntax for querying analytics data.

Related

Can I Get Individual Session Data from Google Universal Analytics?

I'm trying to add recommender systems to an existing website. In particular, I'd like to implement item-item collaborative filtering, to figure out what pages users tend to visit in the same session--much like Amazon's "People who viewed this item also viewed...."
At a minimum, collaborative filtering requires data on each individual viewing session, so that the algorithm can determine which pages get viewed together, rather than just tallying up how many times each page gets viewed in the aggregate.
If I were creating a new website, I could pretty easily add code to collect this data. However, this is an existing website, and has been set up to use Google Universal Analytics.
I have two questions:
Can I get Universal Analytics Data through an API? I need to be able to analyze the data using my own algorithms, not just look at it in a dashboard. I know about the Core Reporting API--but the Core Reporting API doesn't seem to include any extra Universal Analytics variables. I know about the API for sending Universal Analytics data, but that's not what I'm trying to do here.
Assuming I can query an API or otherwise export the Universal Analytics data, will I be able to distinguish individual sessions? The idea here is not to ask questions about individual users (let alone associate their data with some other data), but simply to figure out which pages were viewed in the same sessions.
Thanks for your help.
You can use the Google Analytics Core Reporting API many combinations of the available Dimensions and Metrics. You should check out the Common Queries page to get a sense of how precise you can get in terms of how people might use your application.
Also the Hello Analytics APIs Quickstart guide is a good place to start if you haven't developed an application with Google APIs.

How can you pass analytics source information between two websites using different versions of Google analytics

I have a website that uses Google Universal analytics and need to integrate to a booking engine which uses the old version (ga.js).
They want us to the the utma, utmb ... values in the query string when we redirect to the booking engine but those cookies and their values no longer exist.
Is it even possible to integrate the two versions of the analytics engine so we can pass the source information to the booking engine?
Should we downgrade and use ga.js tracking javascript?
Downgrading is not actually possible, but you might run the old code in parallel (which really seems a bit hackish).
A proper solution might to
attribute an id to each of the visits and store it in GA
pass the id as url parameter to the booking page so they can store in their analytics
send them a weekly report that includes visit id and source/medium/campaign so they can match it with their data
Of course you can store campaign tags (if any) in a cookie and pass them to the booking site, or write a custom function that emulates the way Google computes source/medium. But you cannot get source information from UA since this info is now computed on the tracking server and not stored with the client.

How to query Google Analytics using Javascript

We're want to query Google Analytics remotely, to retrieve (and display) a list of most popular pages (in a certain period) on a website. The examples I've looked at, for querying Analytics using Javascript, seem to require an user/person to login. Is this correct? Is there a way of skipping this step, and querying Analtyics unattended?
Thanks,
Toby
No. the data inside Google Analytics is potentially strategic and the tool doesn't provide non-logged in access at any time.
In order to do what you want the best approach is probably to query the data using your credentials on the server side and store the data on a database. Run that again every night or so.
Then you just query the database and generate the count to display on the frontend.
You don't want to do that on javascript because you would be exposing your credentials to anyone visiting your site to query all your Google Analytics data.

How can I generate a GA tracking code programmatically?

How to generate Google Analytics tracking code programmatic-ally?
I am new to Google Analytics API, can someone please help
It is NOT possible to create new Google Analytics accounts or profiles programmatically using the existing APIs.
There are two APIs available, the Data Export API and the Management API. However, they are bot read-only.
With the Google Analytics Data Export API, you can develop client applications to request data from an existing Analytics profile for an authorized user, and refine the results of the request using query parameters. Currently, the Data Export API supports read-only access to your Google Analytics data.
Currently, the Management API supports read-only access to five components of the Google Analytics Management system: Account data,Profile data, Web property data, Goal data, Advanced segments
Seems like it's finally possible in 2021 with alpha api.
https://developers.google.com/analytics/devguides/config/admin/v1/rest/v1alpha/properties/create#authorization-scopes
It's not currently possible to create Google Analytics accounts automatically at the moment but generating the tracking code is possible.
The only real variation between the tracking code generated each time you create a profile for a new domain is the web property ID. This is in the format UA-XXXXXXX-X. Each X is a number - the first 7 numbers are the account number and the number after the last dash relates to each web property set up for the account.
You can use the accounts feed of the API to get a list of accounts and their profiles. If an account only has one profile then it's possible to use the web property ID of it to automatically generate the tracking code. However, if there's multiple web properties then you would need a way to decide which one to use (present the user with a selection list etc).

Google analytics api

I would like to have a div on my companies website that is filled with links to our most-visited pages dynamically by querying our google analytics account. From everything I've been looking at in the DataExport API though, it seems like the user viewing the site has to authenticate. Am I missing something?
This is correct: google analytics only supplies exported data to an authenticated user (you wouldn't want it otherwise after all, with your competitors peeking at your data, right?-).
You can run the application querying analytics separately, with all required authentication, and have that application supply such data selectively to "your company's website" with whatever level of validation you think is warranted (to avoid snooping competitors) -- if the exact subset of data that you supply (just most-visited pages, for example) is not sensitive according to your judgment, you may in fact get away without the "validation" part!-).
You could add a server side script that grabs your analytics data using the api and write some javascript that inserts it into the div.
There are a number of different client libraries for google analytics you could use.

Resources