Google Analytics reporting is incomplete and broken
Icing on the cake: the links that let you view those pages are . . . well, broken.

The context
I’m putting myself in the shoes of an informed user, informed enough at least to create and configure a Google Analytics (GA) account, then paste the supplied tracking code into the header of their pages. Here, it’s one of my sites, the online shop leshop.vivrecycling.com.The site is on shared hosting at OVH. I have access to the raw Apache logs (careful: contrary to what OVH claims, i.e. a 5-minute lag behind real time, the lag I observed between HTTP requests and their appearance in the matching log is often a few hours, an hour at best). So for this experiment, I’ll look at the log from a few days ago, to rule out that lag risk.
The goal
Let users and bots generate requests for a few days, then look at the #168;Visitors Flow" diagram. Rejoice, or not, at what we see there.The experiment

Lack of accuracy
My first observation is that the name of what GA calls“the landing page” is confusing. You don’t really know whether it’s a group of pages or a page, because in some cases you see two separate blocks starting with the same directory, and sometimes just one block, e.g. "/en".
For example, you see“category”, whereas I obviously have no page simply called“category”, neither in the htaccess nor in the directory, of course. You’d naturally think GA drops the extension and builds a group it names ’category’ all by itself. Searching the log, I find no access, near or far, to any page called category or category.php or anything of the sort. There are indeed accesses to images and stylesheets whose names include category, but I’d like to believe GA doesn’t go as far as putting images in the flow diagram, let alone with transformed names. In short, I don’t know where this name“category” comes from. Even clicking on the group details gives no info other than“category”. No page details.
Same observation for“index”. Some will say "maybe that’s its way of naming /". If so, it’s highly confusing, since all Internet professionals call the home page“slash”. So it’s the ideal place to use that terminology. Secondly, I looked in the log for GET / on that day: there are 2 from GoogleBot and 2 from humans. Yet GA tells me the“index” page was visited 3 times . . . Either way, even if they don’t count the Bot visits, the numbers still don’t add up.
Anyway, at the very least,“category” needs explaining . . . But by whom?
Finally, and above all, I made sure to set the Tracking Info.Subdomains option of the Vivrecycling account to“ON”. This means the sources taken into account can come from www.vivrecycling.com as well as leshop.vivrecycling.com. Well, where do you see that distinction in the diagram? You do see fr/11 (www.* subdomain), but what metadata says it’s the www subdomain, as opposed to the leshop subdomain? This information matters, since Le Shop is linked from WWW, and vice versa. I’d like to know the cross migrations from one subdomain to the other. For all these reasons, I maintain that the diagram is inaccurate.
Incomplete report
In the chapter above, we saw how some GA information has no counterpart in the log. Now let’s see the converse: how some log information has no counterpart in GA.
In the zoomable image above, just below the The experiment heading, you can see information that matters a lot to me: a user with IP 167.30.* landed on /en/13-tours-in-savoie, I’d have liked to know! It’s essential! In particular, I’d like to make sure that click came from an AdWord. Except that hit is nowhere to be found in the diagram. I tested other days and other hits, and reached the same conclusion.
Broken links

Here’s the icing on the cake: clicking a block title in the flow diagram takes you to the page details, and the links are clickable there, for your enjoyment. Good idea, except these links are broken, since the page names are made up. For example,“category” is a non-existent (yet visited!) page; so you can confidently click“category” (see zoomable image alongside) to see what the user sees . . . or should see. Disaster, error 404. Indeed, the page name is made up, so everything that follows is nonsense.
At Google, they look at your filters in the real-time view
You look at them . . . through very dark glasses! Their announcement is flamboyant, but reality is different. On this profile, I included an exclusion filter, ’Exclude zu traffic’. It’s about excluding traffic carrying the ’zu’ (Zulu) language, unlikely on my shop, and which my browser carries when I’m in debug mode. Nothing doing: I still show up in the real-time monitor despite that filter.
For example, the image below, with a self-explanatory URL: /naquemoiquiconnais.php “only I know it”). I called this page while my client browser carried the Zulu language; I wrote the filter’s regular expression“zu” in several versions: prefixed, suffixed, surrounded, on its own . . . I asked the question on the help forum, but there was no answer at the time I originally wrote these lines.
After a series of tests I ran afterwards, I discovered that Google’s developers only take into account the primary language appearing in the language preferences, instead of considering the whole HTTP_ACCEPT_LANGUAGE string. Obviously, it’s neither elegant nor conceivable to put ’zu’ as the first language, or you’d see Google’s home page in Zulu, for example. So I put it as second or third language, and it was ignored.
These days, to keep my own traffic out of Google Analytics, I use a filter based on excluding one version of my browser (Exclude browser version if value = . . . ).
You can find the step-by-step method here.

The Analytics app on Android needs finishing

Conclusion
Google is the made in America of made in China.
In conclusion, Google is a bit like the made in America of made in China. Like IKEA: if you occasionally assemble a 30-piece pine shelf, you’ll think they’re brilliant, but if you spend 3 weeks assembling a kitchen, with its thousands of parts, you realise it’s low-end engineering, with a nice coat of sexy look on top.
Coming back to Google Analytics, this tool is less serious than it is sexy. If you’re just an end user and look at this app without checking the raw logs, you can get a false picture of the traffic on your site.
I’d so love to have access to real stats rather than made-up ones, with subdomain details, the names of the pages actually visited, and correct links.
Once again, I posted my comments on the GA forum. I’m sure Mr or Ms Know-it-all will soon post the demonstration of my mistakes . . . I’ll then be free to move on to writing my next scathing piece: Google Adwords. Oh my!
By the way, my ego tells me to tell you that in 1999, I developed for tropicalm.net the simplest tracking system in the world: clear, accurate, very colourful (the colour depends on the IP), but spartan, though still in production to this day, which, without any arrow diagrams, actually shows you the full name, without extension, of the pages visited, with a link that isn’t broken. But mine is far less popular, which is why I’m far less of a millionaire than Google.


