This post sets out to solve a very specific problem: namely, how to balance the competing demands of a platform-agnostic Data Layer and the Enhanced Ecommerce plugin for Google Analytics. This might sound niche, but you’d be surprised how many large ecommerce websites using Google Tag Manager eventually run into this challenge.
Data-driven marketing means understanding what works. This article explores the ways in which the Custom Dimensions feature can supercharge your Google Analytics reporting setup with actionable insight into the ROI of your marketing activities. I run through several practical examples before diving into the various options for implementation.
Aside from the duplication issues which are inherent to URL parameters, UTM tracking is a pain for marketing teams to implement and maintain. I've recently experimented with an alternative campaign tagging method; by combining hash fragments with GTM lookup tables, you can retain many of the benefits of UTM parameters while negating (most of) their drawbacks.
A comprehensive guide to the basics of Google Analytics. This resource for beginners explores the fundamentals of digital tracking, the Analytics account structure, the new reporting interface, and key concepts behind meaningful reporting.
In the year since I wrote it, my guide to building a Raspberry Pi-powered terrarium has been read over 15,000 times. I've now moved it to a new website: Tom’s Carnivores, at www.carnivorousplants.co.uk. I've been fascinated by Venus flytraps and pitcher plants since I was little, and I plan to build this site into a modern resource for today's growers.
It's also an exercise in modern web development - I've opted for a JAMstack approach, using the static site generator Hugo with npm as my build tool. Code is hosted on GitHub and deployment via continuous integration is handled by my web host Netlify. Look out for my Highcharts-powered data visualisations, which are launching imminently.
This tutorial explores the Content Grouping feature in Google Analytics, running through common use-cases, the various ways it can be implemented, the difference between content grouping and custom dimensions, and solutions to some of the most frequently encountered problems.
During research for my feature on remastered games for Polygon, I was lucky enough to speak with Frank Cifaldi, Head of Restoration at Digital Eclipse. Only a tiny part of our conversation was included in that feature, and so I‘ve presented it here in full for the benefit of those who are interested in the subject.
GIFs are one of the oldest image formats on the web, and animated graphics are one of the format's few remaining strongholds. This article explores three ways in which the modern web can offer us a better solution to animation.
Whether you’re growing tropical plants or keeping reptiles as pets, an electronic controller can provide a more stable environment than you could ever hope to achieve using regular timers. By integrating your terrarium into the Internet-of-Things using a Raspberry Pi, it’s possible to create a highly-extensible system which offers automation, data visualisation, alerts, and pretty much anything you or your pets could want.
This feature explores remastered and ported video games, and is based on my interviews with developers at Naughty Dog, Bluepoint Games, Nixxes Software, Aspyr Media, and Digital Eclipse. Using The Last of Us Remastered as a case study, the piece explores the unique challenges inherent to the reproduction of interactive experiences.
This comprehensive guide to technical SEO is aimed primarily at web developers, and walks readers through the fundamental principles of organic search optimisation. The article covers crawl accessibility, indexation diagnostics, canonicalisation, multi-regional and multilingual setups, link profile maintenance and more.
This guide provides a practical, hands-on introduction to the responsive image syntax using the new ‘srcset’ and ‘sizes’ CSS attributes.
An exploration of video game preservation, based on interviews with archivists and restorationists at digital distribution service GOG.com. This feature uncovers the process of digital archaeology, including license acquisition, emulators & wrappers, code hunting, and digitisation of printed assets, as well as touching on the wider issues surrounding the preservation of classic titles.
A practical introduction to the ‘image-rendering’ CSS property, now supported by all major browsers. By using the appropriate values (available here as a mixin), it is possible to override the anti-aliasing applied by the browser’s default scaling algorithm to preserve the pixelation of low-resolution images. Particularly useful for pixel art, the property can be applied to background images, inline images, and canvas elements.
With the site’s first birthday approaching, I felt that now was an ideal time to give Bennet.org a much-needed jolt of lightning.
The features page, on which all my projects now live, represents my first foray into Flexbox. I’ve barely scratched the surface of what’s made possible by flex layouts, and I haven’t yet rolled it out site-wide, but suffice to say it really does make the CSS layout mechanisms of yore feel like 1955. Configurations which typically required bulky CSS frameworks or untidy hacks are made trivially easy.
Welcome to my new website. Shiny. This is the obligatory Hello World post.
First things first, please forgive the pretentious choice of TLD. The appeal of a super-geeky firstname@lastname email address outweighed my reluctance to brand myself as a non-profit organisation.
My main goal here was to create a website from scratch, without relying on a CMS. Wordpress is great and I use it daily, but when it’s necessary to tinker under the hood, I’m lost in loops and functions that I don’t understand or need. Here under my own roof, I intend to use only code I write myself, or - failing that - code I understand. For this reason, you can expect the doors to fall off fairly regularly.