Google Analytic's Enhanced Ecommerce Plugin has product impressions that track views of shown products. I have products AND multiple businesses in my search result, therefore, I want to track business impressions. Everything I found so far is based on events, but I'm unsure if events are the right way to track such search impressions.
One major drawback that I see is, I send the events on page load, and not after some interaction has happended from the user. Tracking events like this
ga('send', {
hitType: 'event',
eventCategory: 'Business',
eventAction: 'impression',
eventLabel: 'Supermarket 123',
nonInteraction: true
});
results in an additional call to https://www.google-analytics.com/r/collect. I think that's a waste of bandwith (especially on mobile=, because it could be send along with the pageview.
So my questions are:
Is there a way to send events along with the pageview?
Is there another / better way to track something like search impressions for non-products?
First of all, the bandwidth even on mobile shouldn't be a problem except you audience lives on the countryside of 3rd world countries (*).
Now to your questions:
1) No, you can't send everything in one hit.
2) If you think EE isn't the best fit solution you can always use regular event and product level custom dimensions. But i would like to insist that in most cases even when your 'products' are not the standard easy to track clothe like products, you can take advantage of the fields provided by EE and generate your own schema using this fields. ProTip: The category is 5 fields in one cause of the '/' separator.
(*)If this is really a problem you should look into making the requests Async and personally i would recommend GTM.
Hope it helps.
Related
Does Google Analytics have enough information to answer the question of how much time have my top 100 users spent on my site? I don't need their user information, I don't care about ID or name which I know it doesn't even have. Just the identification of individual users by the cookie GA uses, and a report of how much time the top 100 loyal users spent on my site.
is such a thing possible at all with GA?
From your comment on Colwin's answer:
I don't need google if I have to track this for GA, I just hoped it already has this information such as "page visit duration" on a per-user, ongoing basis. If I had to feed Google that information myself, I can feed my own database and run analytics on it. Thanks anyway.
The Google analytics sessions is
a group of user interactions with your website that take place within a given time frame. For example a single session can contain multiple page views, events, social interactions, and ecommerce transactions.
Average session duration will be calculated as
total duration of all sessions / number of sessions
I don't think this is available from GA out of the box. But you can build something like this with Custom Dimensions available within GA
This will let you setup and send custom metrics dimensions for users that you can then create reports for.
Google Analytics doesn’t allow you to out in PII but random visitor id's should be fine. You can then compare against your own database outside of GA if needed too.
This will allow tracking the same visitor even without them being logged in to your site.
Sending the custom dimensions could possibly look like this.
ga('send', 'pageview', {
'dimension5': '1234567890'
});
You get 20 free custom dimension slots with GA and 200 with GA 360 -> More info here
I think this article has what you are looking for
https://webanalyticsguy.com/2018/01/18/google-analytics-capture-client-id-reporting-purposes/
It shows how to capture the client id which is a decent way to track a specific user. And goes further to explain how to associate that with a metric, in this case the author uses PageView.
You could change this to Average Session Duration or another metric that gives you a sense of time spent.
I guess that you are looking for something like this:
http://www.analytics-ninja.com/blog/2015/02/real-time-page-google-analytics.html
You can get the counts of the users on your site. You can get the seconds they spent on your website page.
I guess this answer will be helpful too: https://qr.ae/TWpkI0
We'd like to track behavior flow in our single page application using Google Analytics. We use the hash to route in the application, and we can track the URL within the app with virtual pageviews as described in Google's documentation. However, many of the URLs in the application contain ids, and are considered distinct URLs, despite representing the same page. Thus, we're unable to get accurate behavior flow information in Google Analytics for those pageviews.
For example,
http://example.com/#/dashboards/8a86204a-7b10-4bf5-961b-be16d209f2b0
and
http://example.com/#/dashboards/d8d6a9b5-b6f1-4159-bd6b-622e628f87b2
would be considered distinct pages, when really, we'd like to group these two urls together to determine how users use the dashboard view, rather than how users use a particular dashboard.
Is there a way to unify URLs like this so we can view metrics and behavior flow in aggregate (either in Google Analytics, or in the SPA)?
Completing the answer from #Eike. You can indeed use virtual pageviews to just set the url to '/#/dashboards' using the command
ga('set', 'page', '/#/dashboards'); and then send your pageview. But in my opinion keep the individuality in your data and use a custom dimension to achieve the aggregation you want. Meaning that you should define first a custom dimension that is named for example 'sitePageAggregate'. This dimension will take the value of your website's 'section' url for example 'dashboards' or 'search results' or anything else that might need the aggregation for the behavior flow. This can be done by code in before your pageview hit in each page like this
ga('set', 'dimensionN', 'dashboards');
where N is the custom dimension index. More info on how you can do this here. Now you will just go to your GA interface, Under Behavior -> Site Content -> All pages and just set the secondary dimension as 'sitePageAggregate'. In that way you are retrieving the results you want.
I have a search results page which can show between 25 & 100 results at a time
Would like to track impressions for each results set (not clicks)
Ideally I'd have a list of each result's ID that would get saved for each pageview (as well as the page or page type the impressions came from). Then I could aggregate this by ID by day
I had originally wanted to use Google Analytics for this, however I don't think I can add data to GA in this way (even Universal Analytics custom dimensions)
But I could be wrong? Perhaps I could add data to GA in this way?
GA Events might have been an option, but this would generate a lot of events; some 25-100 for every pageview! The amount of traffic I receive might make this method impractical
Note: One of my key reasons for wanting to use GA is that it seems to filter out most bot traffic; I've also done some manual profile filtering to catch a few more bots. Rolling my own solution might mean reinventing the bot-filtering wheel, something I'm not keen on
Perhaps there is another service that could be used and provide similar bot filtering behaviour?
Just wondering if this this possible? I realise you could never use it to display recommendations on a page but it would be useful from an analytics point of view to see for example what other products user's who've looked at product x have also looked at.
You can use Advanced Segmentation to do this.
Advanced Segments slice Google Analytics data on the basis of sessions. Sessions are a collection of pageviews that correspond to the popular notion of a visit.
If you create an Advanced Segment for users who visited /product/x/, it will return data from all the sessions in which that page was viewed. (Similarly, you could create a segment for /product/x AND /product/y. From there, you could filter it to only include your product pages, and exclude the original products themselves.) As a result, this session-based querying is perfect for your use case.
So, yes, you could use Google Analytics API data to inform a simple recommendations engine. The only caveat I'd give is that the Google Analytics API is a little slow, so you'd want to cache the data locally in your app, rather than querying it directly on every pageload.
I believe custom variables in Google Analytics can only be used to track the distribution of different values for that variable over time.
Suppose I have a forum and want to track the total number of posts made in that forum. Could I track them over time with Google Analytics, too? And how?
Custom Variables are a user-based dimension. So, traditionally, instead of measuring forum posts, they'd instead identify users who post on forums. That doesn't seem like what you're trying to measure.
Instead, you should consider looking at Event Tracking. Specifically, they allow for the tracking of 4 separate data points (per hit): 3 strings and a integer value.
So, you could use this to track when posts happen, or when comments happen on those posts, and then aggregate the values by whatever dimension you like using the API. You'd just need to bind the event to occur at the times you intend, with the data you want to track.
So, an example event call for you, tied to whenever someone posts a comment on a forum topic:
_gaq.push(['_trackEvent', 'Form Posts', 'Comment', topic_name, 1]);
You could then use the API to query particular views to tabulate whatever aspect of the event you want to aggregate. You can simulate those calls with the Google Analytics API Query Explorer. In this example, you could get number of Comments per day using Dimension set to ga:date, Metric set to ga:totalEvents, and then set the filter field to ga:eventAction==Comment