I'm developing an application where each 'business' has it's own page (or rather many pages):
For example example. com/business/abc/
So, for the logged in business owners in the system I would like give a feature 'View page analytics'. It would display how many visits (and maybe a couple of other things) that particular page has had.
Is there a way of doing this using the Google Analytics API with my constraints:
- I don't want customers to provide their own UA code
- I don't want them to require to have GA account
- Customers don't need to have Google email account
- I don't want to build entire frontend and backend myself. I would rather use something existing
I've been researching this topic for hours trying to come up with a solution and can't figure out anything.
Here is what I tried and what problems happened to me:
- http://ga-dev-tools.appspot.com/demos/embed-api/
- This is basically exactly what I want for my customers to be displayed on my site (like in the examples), except that Embed Api tries to authorize users to their own (owned) google analytics. I want it instead to use my own Google Analytics data (or rather part of it)
- They way I thought about limiting data access would be for every one of my customer to create a View in GA, Add filter to that View so only customer pages are listed there, assign User to the view, and use the Embed Api to display data from that View only. There are a couple of problems with that:
- To assign User to View we need email address. And this must be either google account email, or account from a project created with Google Developers Console (application).
- In other words I can't create (in any way that I know) and account that would be a shield account for my customers to subset of my GA data that they would be interested in. It must be either a real user or real application email address.
- So what I tried to do is... I created an app in Google Developers Console, Created new OAuth Service Account. Using Ruby code (that in production app would be running on backend) I obtained OAuth token. I added this email of my OAuth service account as a User to the View
- I wanted this server side generated oauth token to be used by Embed Api. That would achieve the effect that I generate the token for on my backend and user can use it without having GA user in my GA property. So I changed according to documentation the basic Embed Api example to use
gapi.analytics.auth.authorize({
container: 'auth',
clientid: 'xxx.apps.googleusercontent.com',
serverAuth: {
access_token: 'Server side generated token'
}
});
instead of
gapi.analytics.auth.authorize({
container: 'auth',
clientid: 'xxx.apps.googleusercontent.com',
});
The effects are not quite what I expected. The example doesn't show anymore (I can't see my data) but I can see in Netowrking section in Chrome that it is actually receiving real data from GA. But for unknown reason nothing is appearing.
What I try to avoid is building a solution in which I need to build server side code that is querying GA for data, providing it to the frontend and then JS is responsbile for displaying it. I would rather use Embed API but it seems not be well suited for the usecase where I don't want users to play with their UA data but rather with my own UA data limited to some scope. I would like to have at least the frontend or backend part of the solution solved. The solution doesn't need to be even Google Analytics based. Anything else that would let me achieve the usecase easily and let the business owners see the effects of their marketing (traffic, sales) would be interesting as well.
Related:
- stackoverflow .com/questions/13514775/using-google-analytics-api-to-show-subset-of-data-for-customers-of-web-applicati
- stackoverflow .com/questions/3994708/google-analytics-customer-data
- stackoverflow .com/questions/4245132/google-analytics-api-filter-by-uri
- embeddedanalytics .com seems like something that could be useful, but their page and graphs looks like from few years ago. I would like something more pretty.
- oocharts .com seems to be interesting because of what their docs.oocharts .com says about queries. But they don't charge anything for their product so I am skeptical of their business model and whether it is a good longterm solution.
- I don't have enough karma to post links ;)
TLDR: Displaying subset of my GA data to my customers without forcing them to become GA users and adding them to my GA account.
Any help appreciated!