Linkdex iGaming thinktank

Last week I spoke to an audience of iGaming folks on the topic of getting more out of your existing channel data, analytics and platform ecosystem. Lots of tips/tricks/tools/processes which don't require a huge amount of technical or financial investment, but which can make all the difference. Apologies for the lack of notes (and therefore any context) in the slides; Slideshare is refusing to process and include them.

Posted in Events & Presentations | Leave a comment

Starting at Linkdex

It's been a bit of an open secret within the industry for the last few months that I'm about to join the team at Linkdex this January, as Head of Insight. It's only in the wake of some indulgent time off over Christmas and the new year - and following an extensive three month notice period - that it's really starting to sink in, and it's gone from being an exciting thing on the horizon to an impending reality.

So let's consider this to be an official announcement. I look forward to sharing some of what we're working on as it makes it out of the production pipeline, and making 2014 a roaring success.


Posted in Work | Leave a comment

Letting go of yesterday

In advertising and marketing, campaign performance - and by extension, success - is almost universally measured in the context of comparison to previous campaigns.

The answer to "How did we do?" is invariably phrased in terms of "This campaign delivered X% more than that campaign", or "We had Y% less traffic this week than this week last year". We use monthly reporting, dashboards and trend modelling around past performance in order to judge how well we're doing in the now.

This can dangerously short-sighted, and in some cases worryingly self-destructive.

So your campaign did 20% better than your previous one. Or maybe not - maybe it only delivered half as much traffic, or only a fraction of conversions. Is that good, or bad? Who decides?

So here's the thing. The only thing which matters about how well your campaign or marketing activity performed is whether or not it performed as well as you wanted or expected it to. How well your previous campaign performed, or how much traffic your website received on the same day the previous year, is completely inappropriate as a singular yardstick for success.

Dangerous. In a world where monthly reports, campaign wash-ups, dashboards and constant wrangling over have-the-numbers-gone-up-or-down-today - whether it's an agency delivering campaign summaries to a client, or an internal employee producing status overviews - 'the report' is an institution, an expected deliverable, and the numbers it holds are the trigger for reward and promotion, or haranguing and thinly veiled threats.

Our entire world view is shaped by yesterday's numbers.

But yesterday's numbers aren't a reliable measure of relative performance. Yesterday's numbers aren't a signpost to whether today's numbers are good, bad, or indifferent.

Sure, last month you did some similar marketing, so it's not unreasonable to expect that this month's similar marketing might produce similar results. You learned some stuff, too, and applying those findings should make things work harder this time around. But your marketing didn't control the weather. Or the stock market. Or the phase of the moon. Your relationship to your competitors, the rest of your vertical, and the wider market is (likely radically) different than it was. Your channel activity - and that of your competitors - has likely changed, it's closer to pay-day, and, oh - lots of people were probably on holiday around some awkwardly timed bank holidays last month.

Comparing your performance this month to last month in terms of the numbers you saw then assumes that you're operating in a marketing vacuum. Nothing could be further from the truth.

I'm not saying that historical performance is completely irrelevant, or that it doesn't have a role in setting targets (and, in some cases, it might be perfectly valid to set a target which is based on an uplift from historical performance). What I'm suggesting is that, when planning a campaign or running on-going marketing, you really need to have some clear definitions of what success looks like. For KPI setting, we should be working back from the highest level of business to identify how much value needs to be generated to cover costs, to maintain profit margins, and to deliver required uplifts - and then get a little ambitious, whilst considering and accounting for as many influencing factors as possible. With those thresholds defined, previous performance should absolutely be considered when setting appropriate targets against KPIs, but as one of many factors, for example, as an estimation of market size and therefore where you might expect to see diminishing returns on bought media. It's criminal to simply set targets as a percentage uplift on previous performance.

Typically, this kind of thinking doesn't happen because organisations need to learn how to set effective goals and KPIS. When you don't have a clear definition of what success looks like, with proper KPIs, targets and success thresholds, it's easy to fall back onto "well, how did we do last time?" and to apply an arbitrary uplift. Marketing managers, stakeholders and budget-holders often fall back to this kind of thinking because they're not educated or empowered enough to do serious, proper modelling and forecasting; and because we're a prevalence of data, reports and spreadsheets, it's very easy to just point at a series of numbers and demand more.

I'm going to go so far as to state that any regular reporting (note my usual distinction between reporting and analysis) which compares this month or this year against similar previous periods is, with the exception of when it's used as part of a wider, considered decision-making process, a waste of time.

In agency world, the whole concept of monthly reports make me deeply frustrated. They exist to provide accountability and to chart the impact of work done, but in reality, they do little towards this, and often cause more harm than good in the long-run. Spreadsheets, which state that this KPI has gone up a little bit compared to last month, or that KPI has gone down a little bit compared to last year, do nothing but breed mistrust. The people producing the reports take no value from them, because structured reporting of vanilla data doesn't generate or allow for insight and analysis. The recipients get nothing but unanswered questions, because the report doesn't say why things have changed - and it's often simply because stuff is different from before. Except that's not the kind of answer which engenders trust, so we collectively spend more time attempting to create theories as to what happened a year ago around a campaign which was influenced by a vast number of immeasurable external influences which sufficiently satisfy all the parties involved than we do actually influencing the numbers. I'm sure that people in-house, working within even the most data-driven organisations, have the same challenge.

Monthly reports should state what we hoped and expected to achieve now, whether we did so or not, and what needs doing next. Comparing this month to last month's data as a regular or decision-making exercise is a poor use of time. Of course we want to achieve more than we did last year, but using that as an arbitrary measure of success is a risky alternative to setting deliberate, considered targets for the now.

So let's let go of yesterday. Let's look at where we are now, and whether or not we're where we want to get to. I'd imagine that most of the time, the answer will be "no, we're not".

So go do something about it; use the time you would have spent looking through your analytics package at how many visitors your got this time last month.

Posted in Conjecture | Leave a comment

Universal Analytics & Single User View

Last night I spoke at the first LBI SEO Meet-Up, talking about Universal Analytics; in particular how can use this kind of technology to enhance our marketing decision making, how we can use real outcome data (such as purchases, repeat purchases, long-term subscriptions and other ‘downstream’ actions) to better-inform our keyword research, better prioritise our tactics, and to spot exciting new opportunities.

Posted in Events & Presentations | 3 Comments

See, Think, Don’t: A response to Avinash’s Marketing Framework

Avinash Kaushik, whom I have an enormous amount of respect for as a marketer, a speaker and an educator, has posted a summary of a new framework for digital marketing strategy and measurement. It's great. Superb. Perfect, and unequivocally right. A conjunction of all of the content marketing, RCS and inbound philosophies into an elegant model.

However, it's just unachievable. Real companies are almost invariably too incapable, dull, culturally stagnant or simply inept to even aspire to this kind of thinking, and in lieu of this are exclusively interested in short-cuts, marketing hacks and quick wins - and of course, the career amplification of the individuals who ride the short-lived waves of success that these tactics deliver.

This is a vision of a type of thinking which will always, and only ever, be limited to the tiny minority of agile, entrepreneurial organisations who bake 'inbound' thinking right into the core of their business model. You can't adapt an existing organisation to think or act like this, and those who don't 'get it' simply *cannot* be educated beyond their last-click-only, channel-centric, organisationally- and departmentally-segmented thinking; no matter how much you try. Companies with a distributed call centre, marketing team, management level and product experts who aren't already culturally intertwined and focused on a customer centric model invariably find it impossible to integrate to the level required to demonstrate a cohesive understanding of customer needs, and to act on it as part of this model.

It's a sad thing that, with the formula for perfect, effective, commercially lucrative marketing sat *right here*, that human beings and the structures they create are so ludicrously rigid and fearful of the unknown that this will only ever be realised by the people who already get - and do it - already.

Digital Marketing, then, is as good as it's going to get, and all that will happen in the coming decades is that the difference between good and bad will widen. The age of the entrepreneur which we're so desperately trying to live in depends on a much higher level of thinking and behaviour than our short-sightedness generally allows for.

Posted in Conjecture | 3 Comments

Linkdex Think Tank

Yesterday I spoke at Lindex's Think Tank, on the topic of content marketing - and in particular, how best to measure the ROI of content marketing at a granular and cultural level. Here's the deck!

Update 04/06/2013: I've updated the deck with my presenter notes as extra slides. Welcome to the inner workings of my internal monologue...

Posted in Events & Presentations | Leave a comment

Advanced PDF Tracking

Overview of the problem

Many websites, especially in B2B or long purchase cycle scenarios, rely heavily on PDFs as part of their conversion process, reassurance/validation content, and SEO strategy (generally containing white papers, case studies, etc). Typically, the effectiveness of these resources is measured in two ways - from an SEO/rankings perspective, and from measuring how frequently links to the PDFs are clicked (by, e.g., firing some on-click JavaScript).

Unfortunately, this approach is critically flawed - the more effectively your PDFs are promoted, exposed, shared and consumed, the less you know about it. Consider any of the following scenarios:

  • Your PDF ranks well in search engines
  • It's linked to from a third party website, or socially shared
  • It gets bookmarked, and subsequently visited directly
  • A campaign promotes the PDF directly (e.g., as a destination from an email campaign)

In each of these scenarios, if you're using a client-side, JavaScript tracking solution like Google Analytics, your tracking solution is completely bypassed, as your PDFs don't (and generally can't, without security headaches) contain your tracking code. The better your SEO campaign promotes your white papers, the more you're going to under-report their success, and risk making poor decisions or having your work misrepresented... Eek!

I'm going to outline a general approach which will help to fill in some of the gaps in your data. It assumes the use of PHP, and Google Analytics - however the approach should be portable (depending on the capabilities of your solution of choice). It can also be extended to apply to other file types which aren't typically tracked (e.g., images[!], flash, docs). I'd love to hear about creative uses.

Intercept your PDF requests, and fire server-side tracking

Did you know that, as well as just making things 'pretty', URL rewriting via htaccess allows you to do some clever stuff with intercepting and altering requests? The core of the solution is as simple and elegant as adding the following code to your htaccess file:

RewriteRule ^(.+).pdf$  /analytics-pdf.php?file=$1.pdf [L,NC,QSA]

This simple rule intercepts any request ending in .pdf, and, invisibly to the user (and to search engines), actually fires analytics-pdf.php instead.

The next part is a little more complex; we need to set up analytics-pdf.php to grab the filename of the PDF, tell Google Analytics to fire a pageview, and then redirect the user to the PDF.


You'll need grab and upload a copy of PHP-GA. This is a PHP framework which makes it easy to construct calls to GA in much the same way as the normal JavaScript approach, but using server-side logic. We'll use this framework to construct the request to Google Analytics.

The following PHP is a quick hack of the example solution on the PHP-GA site, adapted to grab the PDF filename from the $_GET array and pass it to a pageview as a virtual path, and then display the requested file. Save it as 'analytics-pdf.php' in your root folder.

 // Include the PHP GA script(s)
 use UnitedPrototype\GoogleAnalytics;

// Change these values to your UA code and domain

// Grab the PDF and sanitize the filename
$filePath = $_GET['file'];
$filePath = filter_var($filePath, FILTER_SANITIZE_URL);
$file = end(explode("/", $filePath));

if($filePath) :

 $tracker = new GoogleAnalytics\Tracker(UA_CODE,HOSTNAME);
 $visitor = new GoogleAnalytics\Visitor();
 $session = new GoogleAnalytics\Session();
 $page = new GoogleAnalytics\Page('/'.$filePath);
 $tracker->trackPageview($page, $session, $visitor);

 $filename = $file;
 header('Content-type: application/pdf');
 header('Content-Disposition: inline; filename="' . $file . '"');
 header('Content-Transfer-Encoding: binary');
 header('Content-Length: ' . filesize($filePath));
 header('Accept-Ranges: bytes');


Believe it or not, that's all there is to it. You're now intercepting all PDF requests, and triggering a pageview before serving up the PDF. Magic!

I'd caution reading on, however, as there are some implications and unknowns around this approach.

A note on sessions and Universal Analytics

PHP-GA is creating a distinct session when it fires, which won't tie together with existing visit behaviour. If I arrive on a PDF and browse into the site, there'll be attribution issues and some inflation of visit counts. Similarly, on-site visitors who click through to a PDF will also create disconnected data.

In the mid- to long-term, this will be easily manageable with the release of Universal Analytics, which will replace the PHP-GA component of the solution, and allow us to use server-side Analytics to carry across a distinct session ID between requests.

In the meantime, I'd appreciate anybody's thoughts on how we might overcome this - it's potentially feasible to do some clever things with including conditional logic in the tags, and/or artificially constructing/maintaining channel data by, e.g., manipulating UTM tags.  I started considering solutions, but was keen to get something out of the door, at least, and to revisit and refine as usage demands.

Early thoughts include:

  • Only firing if we detect that the visitor originated from an external location (e.g., not an internal link), as it's assumed that existing event tracking will account for internal links
  • Modifying the code to construct events, rather than pageviews, so as to create a consolidated view count when added to the existing internal link click counts
  • Considering using passive events so as to avoid visit count inflation, but at the expense of understanding that a pageview-like action has occurred (which may artificially skew interpretation in the wrong/other direction than the present problem presents).
  • Attempting to collect, and then carry channel data through to the PDF - e.g., appending UTM parameters to the destination URL, which can then be carried on into subsequent pageviews on the site

Further considerations and challenges

Please bear the following in mind when using:

  • This isn't rigorously tested. I'm proving the framework of a conceptual solution here, which you'll need to adapt to your own requirements. Don't expect it to work 100% correctly out of the box.
  • I've not paid much attention to sanitisation, filtering, and validation. It's possible, likely even, that there are security holes in the recording and usage of the PDF filename/filepath which could do with closing.
  • I've not played much with PHP-GA, as the solution is only intended to bridge the gap between now and the arrival of Universal Analytics. There may be more things which it could do, or better ways to do what it's doing
  • It's hard to completely predict how this will effect your data, given the caveats around sessions.
  • Does this open up opportunities for commercially accountable re-targeting campaigns which use white papers, etc. as destinations? What are the implications?
  • How useful is this for consolidating data on disperate/seperate instances of a single resource? E.g., a video in multiple formats, or in multiple locations?


Though this solution won me "Best Tip" at MeasureCamp, I really have to give proper credit to Monica and the team at twentysix, whose discussion around the problem got me thinking about possible solutions.


17/02/2013 20:46 - From a conversation with @danbarker, we've explored the idea of, rather than sending the user to the 'vanilla' PDF, presenting the PDF in a 'wrap' on request (e.g., an iframe, embed, or similar).

The PDF would be framed in a viewing portal, but enhanced with share/print options, internal links, etc. See Dan's hastily mocked up screenshot. This would have the added advantage of allowing for the native embedding of normal GA code (which, given that it'd just fire and record the URL, would give you a completely integrated session/data-set) but comes with some disadvantages. Some native functionality is broken, such as right clicking a link to a PDF to save it, and interferes with any other native behaviour which expects a link to a PDF to act like a PDF, rather than a web page. It's worth pointing out that there are obviously solutions out there which do things like this, but our expectations are that the analytics angle probably doesn't get the love that it deserved.

I think that this has some definite potential as, e.g., a WordPress plugin as a fork of the solution, but may not be appropriate for everybody.

Posted in Conjecture | 1 Comment

Leeds Digital Conference presentation – Digital Marketing by Numbers

Yesterday, I gave a talk at Leeds Digital Conference which explored processes for taking an organisation from a position where they struggle to utilise their data ecosystem as part of their decision-making processes to a point where all of their digital activity is informed, driven and fed by the performance of defined KPIs, segments and targets.

The presentation and processes are for the most part a mash-up of best practice examples and approaches that I've collected over the years, and the deck contains links to many of these resources for further reading. I hope it's useful!

Posted in Events & Presentations | Leave a comment

In the run-up to Leeds Digital Festival…

On Friday 12th October, I'll be speaking at the LDF conference during the morning in the 'Data and Content' section, with a brief talk entitled 'Digital Marketing by Numbers'. With the conference looming, I've been asked to provide a bit of background about my role, my perception of Leeds and the wider digital industry in the region, and what I'll be bringing to the conference.

Leeds Digital Conference

1. Who are you? E.g., what's your job, and how many years have you been in Leeds?

I'm the SEO and Data Insight Manager at twentysix. We're based just around the corner from Leeds train station, and I guess we're about as archetypally 'Leeds-ish' as it gets.

I have a hybrid role managing and evolving the agency's SEO and data (CRO, reporting, analysis, testing) services, which provides some pretty hefty challenges... as part of a big agency with 'big agency' mentality, trying to weave 'modern' SEO (which we're increasingly finding looks and sounds more like business consultancy than what's typically perceived to be SEO) into a traditional production environment and delivery process is challenging work; it's an interesting balance of challenging ways of working and thinking without alienating and scaring people too much!

I've been in Leeds with twentysix for nearly four years now, and I've seen some interesting changes in the industry and the way the digital landscape has changed in the region. When I started working with twentysix, our London offices and staff were the cream of the crop, with all the prestigious, big clients and exciting projects - with the changes to the economy over the last few years, coupled with the (ostensibly) hard-working, production-orientated 'real world' mentality from the notherners in the Leeds office, we've seen a huge shift in the balance with the lion's share of business now falling in the Leeds office (yet still competing with London agencies). That's a pretty big change, and it's about much more than just the price of a Leeds agency being less than that of a London equivalent; people are increasingly raising their expectations about what digital can and should deliver, and the whole Leeds digital industry just seems to be a bit more 'grounded' and about actual performance, success, sales etc. than about fluffy branding and wooly success metrics.

2. What is it about Leeds that makes it unique from the rest of the country in terms of Digital?

(E.g. what is it that we traditionally do better than the rest of the country?)

I think Leeds feels like it's almost 'accidentally' a digital hot spot. We talk a lot about Manchester being the next-best-thing to London in terms of Digital, but we're definitely seeing a trend where Manchester is becoming the new-old London, where it's gone beyond saturation to the point where there's a multi-million agency or provider on every street corner but nobody who can actually deliver a cost-effective campaign unless you're a high-street brand with a fortune to burn. Leeds is the underdog, and the digital economy and industry here is on the cusp of real maturity - it's just on that tipping point on going from being a default go-to location for anybody in the industry outside / north of Manchester to a real contender in the landscape, but one whose underdog status is an asset, and 'keeping it real', for want of a better phrase, becomes a USP.

3. Why should a potential client pick an agency from Leeds?

All of the above - all of the real talent north of Manchester flocks to or is sucked into Leeds, for better or worse, and we're at the arc of the curve where we've really incredible work being done for a fraction of the price you'd pay elsewhere - I worry, though, that the rate of growth and expansion that we're seeing risks bursting the bubble... I'd get in there and take advantage while the market's ripe.

4. What will you be speaking about at this years Leeds Digital Conference?

My talk is loosely titled 'Digital Marketing by Numbers', and it's really about understanding and demonstrating some hands-on processes that any organisation can use to start to understand how their digital presence, assets or website is performing in real business terms. It's about banning terms like 'bounce rates' and 'pageviews' and other buzzwords that businesses think that they should be reporting on, and installing a process that ties real business objectives (e.g., make money, sell products, dominate the market) back to measurable, targeted metrics. Too many organisations are in a crazy position where their C-level execs and board members use completely different languages and performance metrics to those typically encountered in digital, and we need to put bridges in place to translate and talk across that divide. We should all be looking at website reports that talk about cost per sale, customer lifetime value and satisfaction, rather than top exit pages or time on site. No highstreet store produces and circulates daily reports about how long people spend walking around their shops in leui of reporting on the sales performance - in digital we've got access to vastly more and more useful data, but we're stuck in a loop looking in the wrong places.

5. Predictions for the Digital Industry in 2013? What should be top of the agenda at the conference?

I think we've finally entered the age of the entrepeneur. The ingredients and threshold for success are getting lower and lower - if you can identify a niche, design a business model which is driven by user satisfaction, engagement and content creation with an element of gamification and reach a critical threshold of engagement, you can take on pretty much any entrenched vertical, industry or market. Of course, established businesses aren't that agile, and a thousand start-ups try and achieve this every day but fail and fall by the way-side. However, that threshold for disrupting entire ecosystems is definitely getting lower, and the directions we're seeing the likes of Facebook, Google and the giants move is all about recognising and empowering value, and connecting the consumer to it. Check out the likes of LovefilmLast.fmGrouponNetflixGrazeNaked Wines, etc. and get under the skin of how their content models and social models work - that kind of power is impressive and more than a little scary, but it takes a lot of work to get it in place. The road to success is clearer and more definite than ever, but the work to achieve it doesn't become any less. The next year or two should be really interesting!

Wrapping up

That's it for my responses, but I'm sure there's much more ground to cover! If you'd like to chat, I'll be around during the conference, and I'm sure I'd love to discuss the industry, SEO, or anything else with you over a glass of wine at the evening event.

There are, I'm told, still tickets available, and you can pick them up from Eventbrite. See you there!

Posted in Events & Presentations | Leave a comment

Moving to a parent/child theme relationship

WordPress's 'front end' (if such a concept can be considered to exist, given the following...) is all about Themes. Individual templates (including page types, indexes, archives, etc.), even down to individual pages, and the functionality that they contain (including the entire presentation layer) is managed through and is a part of an individual theme, which in its totally manages the entire functionality, look and feel of the website (whilst that theme is active).

The CMS and database layer sit beneath this layer, but even these areas can be, and are, affected by your choice of theme. Beyond simply changing the layout and styling, the functionality of a theme allows for, e.g., custom administrative functionality, back-end post processing management and behaviour, and much more. The active theme can control anything from the website layout through to 'deep' WP functionality (e.g., archive processing, query modification, admin behaviour) by simply hooking into existing actions and make system-level changes - generally through the use of the functions.php file.

As such, modifying themes gives you an enormous amount of power, flexibility, and access to change the core and fundamental behaviours of the website.

Managing changing/evolving themes and updates

This is fairly straightforward when developing or working with a bespoke, built-for-purpose theme that you're 100% in control of. However, if you're using something off the shelf, or adapting a template for example, you can start to encounter problems when modifying themes which subsequently have version changes or updates (where the author/provider has made modifications to the source files) - where applying these (presumably valuable) updates 'wipes out' your customisations, as the changes you've made the to theme are lost when you install the new version.

In order to manage this conflict, WordPress allows for the concept of 'parent' and 'child' themes. Rather than simply having to have one theme active, you can establish a relationship between multiple themes (in flexible, prioritised hierarchies) to inherit, allowing a child theme to not be confined by, 'templated' theme elements. In essence, it's very easy to select a theme which acts as your base template, and to apply layers of customisation to a 'child' theme which overrides anything where there's conflict with the parent.

Creating the child theme

Strictly speaking, all that a child theme needs is a style.css file which references the parent theme. Any additional theme files which 'overlap' with the parent's will be used in place, allowing you to progressively build out modifications.

I've created an example folder named jonoalderson in my wp-content/themes folder. In that folder, I've created a style.css file with the following content:

Theme Name:     JonoAlderson
Theme URI:
Description:    Child theme for
Author:         Jono Alderson
Author URI:
Template:       skeleton
Version:        0.1.0

@import url('../skeleton/style.css');

I've activated the theme, and nothing's broken! Note the use of @import to force the child theme to pull in the parent CSS.

The child theme, alive and well!

I've also un-picked the modifications I've made to the parent theme, and re-done the changes to a copy of the files in question (specifically sidebar.php and header.php) in my new child theme - and it's working perfectly. Now I can start to rework some of the infrastructure, change the way things work, and add my own touches without risking losing it all to an update.

Posted in WordPress | Leave a comment