Analytics beacon transport mechanism gotchas

An important component in DataHem’s measurementprotocol application is the javascript tracker that emitts hits to the AppEngine collector endpoint. It is important that the tracker emitts all defined hits, if the tracker malfunction then there is no way to recover dropped hits downstream. Like Google Analytics, the DataHem tracker supports three different transport mechanisms; ‘image’ (using an Image object), ‘xhr’ (using an XMLHttpRequest object), or ‘beacon’ using the new navigator.sendBeacon method. »

DataHem: open source, serverless, real-time and end-2-end ML pipeline on Google Cloud Platform

I’m excited to say that the project I’ve been working on the last year is now released as OpenSource (MIT license). DataHem is a serverless real-time end-2-end ML pipeline built entirely on GoogleCloud Platform services - AppEngine, PubSub, Dataflow, BigQuery, Cloud ML Engine, Deployment Manager, Cloud Build and Cloud Composer. When building ML/Data products, your most valuable asset is your data. Hence, the purpose of DataHem is to give you: - Full control and ownership of your data and data platform - Unsampled data - Data in real time - The ability to replay/reprocess your data unlimited times - Data synergies, i. »

Bigquery Training Resources for Digital Analysts

In this post I’ve tried to collect different training resources that I’ve found useful for myself, some for free and some for a fee. The focus is using BigQuery for digital analytics. If you are one of the lucky digital analysts who work for an organisation with the 360 version of Google Analytics or Firebase Blaze, but not started using BigQuery? Then, don’t wait for it, enable the BigQuery Export (read this post if you are acting in EU) and learn how to use BigQuery. »

Google Analytics Custom Dimension Alias in Bigquery

Second to being able to export your Google Analytics data to Google BigQuery, the feature I value the most with the premium version of GA is that you are not limited to 20 custom dimensions but have 200 to play with! However, if you have many custom dimensions, it quickly becomes hard to remember what dimension each index represents, the value isn’t always selfdescribing. Hence being able to give the custom dimension a more descriptive identifier than an index could be useful. »