Header tag

Sunday, 30 April 2023

Personalization, Segmentation or Targeting

Following all my recent posts on targeting (or personalization), I was discussing website content changes with a colleague. I was explaining how we could test some form of interactive, real-time changes on our site.  His comments were that this wasn't real 1-to-1 personalization and what I was actually doing was just segmentation and content retargeting.  This started me thinking, and so I'd like to share my thoughts on 1-to-1 targeting is possible, easy and worth the effort.  Or should we be satisfied with segmentation and retargeting?


1-to-1 targeting requires the ability to show any content to any user. It probably needs a hige repository of content that can be accessed to show content that isn't shown to other users, but which is deemed optimal for a particular user.

1. How do you decide which type of user this particular user should be classed as?  
2.  How do you determine which content to show this particular user (or type of user)?
3.  When the targeting doesn't give great results, how can you tell if the problem is with 1. or 2.?

And, as a follow-up question, why is "targeted" content drawn from a library held in higher esteem than retargeting existing content? Is it better because it's so difficult to set up?

Content retargeting - moving existing content on the page - does not require new content, but "isn't real 1-to-1 targeting."  This is true, but I would argue that the difference - mathematically at least - is negligible.  The huge library of targeted content isn't going to be able to match the potential combinations of content that can be achieved just by flipping page content around to promote a particular group of products.

In previous examples on targeting, I've looked at having four product categories that can be targeted.

How many combinations are there for the four products A, B, C, D?

4 * 3 * 2 * 1 = 24

There are four options for the first placement, leaving three for the second placement, two options for the third and only one left for the final place.

This is a relatively simple example - most websites have more than just four products or product categories in their catalogue (even Apple, with its limited product range, has more than four).

Let's jump up to six products:
6 * 5 * 4 * 3 * 2 * 1 = 720.

At this point, retargeting is going to start scaling far more easily than 1-to-1 personalization. 

Admittedly, it's highly unlikely that all 720 combinations are going to be used and shown with equal probability - we will probably see maybe 6-10 combinations that are shown most often, as users visit just one or two product categories and identify themselves as menswear, casual clothes, or womenswear customers.  The remaining three or four categories aren't relevant to these customers, and so we don't retarget hat content.  I mean: if a user is visiting menswear and men's shoes, then they aren't going to be interested in womenswear and casual clothing, so the sequence of those categories is going to be irrelevant and unchanged.

So, we can group users into one of 720 "segments", not based on how we segment them, but how they segment themselves.  This leads to a pseudo-bespoke browsing experience (it isn't 1-to-1, but the numbers are high enough for it to be indistinguishable) that doesn't require the overhead of a huge library of product content waiting to be accessed.

When does the difference between true personalization and segmented retargeting become indistinguishable?  Are we chasing true 1-to-1 personalization when it isn't even beneficial to the customers' experience?

I would say that it's when the number of combinations of retargeted content becomes so large that users are seeing a targeted experience each time they come to the page.  Or, when the number of combinations is greater than the number of users who visit the page.  Personalization is usually perceived - and presented - as the holy grail of Web experience, but in my view it's unnecessary, unattainable and frequently unlikely to actually get off the drawing board. Why not try something that could give actual results, provide improved customer experience and could be set up this side of Christmas?




Tuesday, 28 March 2023

Non-zero Traffic

Barely a month ago, I wrote about a challenge I was having tracking the traffic on this blog.  I had identified that I wasn't seeing any visitors on mobile phones.  Not one.

I'd taken some steps to fix this, and I had been able to track me using my own phone, but only from organic search.  I was still not tracking actual traffic.

Then I found an article that explains how to connect Blogger to Google Analytics 4 (and this has become justification for me to move to GA4).  

All I had to do was to enter my GA4 ID number into the Blogger setting for tracking... and that was it.  It took me weeks to track down the solution, but since then, I've been tracking mobile traffic:

At the time of writing, I've had the fix live for three weeks, and this is how it's looking compared to the three weeks prior to the fix.

I've carried out a number of checks to make sure the data is valid: 

are the mobile and desktop numbers different (or am I double-counting users?)?

are the desktop numbers even numbers (another indication of double counting)?

are the mobile numbers cannibalising the desktop numbers, or are they additional (and thankfully they look good).

In all cases, the data look good, showing clear and distinct differences between the mobile and desktop traffic, but I'm still glad I was able to validate the data accuracy. 

Other articles I've written on Website Analytics that you may find relevant:

Web Analytics - Gathering Requirements from Stakeholders

Tuesday, 21 March 2023

Why Personalisation Programs Struggle

So why aren’t we living in a world of perfect personalisation? We've been hearing for a while that it'll be the next big thing, so why isn't it happening?

Because it’s hard.  There's just too much to consider, especially if you're after the ultimate goal of 1-to-1 personalisation.


In my experience, there are three areas where personalisation strategies come completely unstuck.  The first is in the data capture, the second is the classification and design of ‘personas’, and the third is in the visual design.

1. Data capture:  what data can you access?

Search keywords?
PPC campaign information?
Marketing campaign engagement?
Browsing history?
Purchase history?
Can you get geographic or demographic information?
Surely you can’t form a 1x1 relationship between each individual user and their experience? 
Previous purchaser?  And are you going to try and sell them another one of what they just bought?
Traffic source:  search/display/social?
What products are they looking at?
What have they added to basket?

2. Classification:  how are you going to decide how to aggregate and categorise all this data?  

Is it a new user?  Return user?

And the biggest crunch:  how are you going to then transfer these classifications to your Content Management System, or to your Targeting engine, so that it knows which category to place User #12345 into.  And that’s just where the fun begins.

And how do you choose the right data?  I'm personally becoming bored of seeing recommendations based on items I've bought:  "You bought this printer... how about this printer?" and "You recently purchased a new pair of shoes... would you like to buy a pair of shoes?" As an industry we seem to lack the sophistication that says, "You bought this printer - would you like to buy some ink for it?" or "You bought these shoes, would you like to buy this polish, or these laces?"

3. Visual Design

For each category or persona that you identify, you will need to have a corresponding version of your site.  For example, you’ll need to have a banner that promotes a particular product category (a holiday in France, the Caribbean, the Mediterranean, the USA); or you may need to have links to content about men’s shoes; women’s shoes; slippers or sports shoes. 

And your site merchandising team now needs to multiply its efforts for its campaigns. 

Previously, they needed one banner for the pre-Christmas campaign; now, they need to produce four, five or more instead.  This comes as they are approaching their busiest period (because that’s when you’ll get more traffic in and want to maximise its performance) and haven’t got time to generate duplicated content just for one banner.

Fortunately, there are ways of minimizing the headaches that you can encounter when you’re trying to get personalization up and running (or keeping it going).

Why not take the existing content, and show it to users in a different order?  Years ago, there was a mantra (with a meme, probably) going around that told us to 'Remember: There is no fold' but I've never subscribed to that view.  Analytics regularly shows us that most users don't scroll down to see our wonderful content lying just below the edge of their monitor (or their phone screen).  So, if you can identify a customer as someone looking for men's shoes, or women's sports shoes, or a 4x4, or a hatchback, or a plasma TV, then why not show that particular product category first (i.e. above the fold, or at least the first thing below it)?



4. Solutions

The flavour du jour in our house is Airfix modelling - building 1/72 or 1/48 scale vehicles and aircraft, so let's use that as an example, and visit  one of the largest online modelling stores in the UK, Wonderland Models.

Their homepage has a very large leading banner, which rotates like a carousel around five different images: a branding image; radio controlled cars; toy animals and figures; toys and playsets; and plastic model kits.  The opportunity here is to target users (either return visitors, which is easier, or new users, which is trickier) and show them the banner which is most relevant to them. 

The Wonderland Models homepage.  The black line is the fold on my desktop.

How do you select which banner?  By using the data that users are sharing with you - their previous visits, items they've browsed (or added to cart), or what they're looking for in your site search... and so on.  Here, the question of targeted content is simpler - show them the existing banner which closest matches their needs - but the data is trickier.  However, the banners and categories will help you determine the data categorization that you need to - you'll probably find this in your site architecture.

However, here's the bonus:  when you've classified (or segmented) your user, you can use this content again... lower down on the same page.  Most sites duplicate their links, or have multiple links around similar themes, and Wonderland Models is no exception. Here, the secondary categories are Radio Control; Models and Kits; Toys and Collectables; Paints, Tools and Materials; Model Railways and Sale.  These overlap with the banner categories, and with a bit of tweaking, the same data source could be used to drive targeting in both segments. 

As I covered in a previous blog about targeting the sequence of online banners, the win here is that with six categories (and a large part of the web page being targeted), there are thirty different combinations for just the first two slots, with six options for the first position, and five for the second.  This will be useful as the content is long and requires considerable scrolling.

The second and third folds on Wonderland Models.  The black lines show the folds.

Most analytics packages have an integration with CMS’s or targeting platforms.  Adobe Analytics has Target, which is its testing and targeting tool.  It's possible to connect the data from Analytics into Target (and I suspect your Adobe support team would be happy to help) and then use this to make an educated guess on which content to show to your visitors.  At the very least, you could run an A/B test.

5. The Challenge

The main reason personalization programs struggle to get going is (and I hate to use this expression, but here goes) that they aren't agile enough.  At a time when ecommerce is starting to use the product model and forming agile teams, it seems like personalization is often stuck in a waterfall approach.  There's no plan to form a minimum viable product, and try small steps - instead, it's wholesale all-in build-the-monolith, which takes months, then suffers a "funding reprioritization" since the program has nothing to show for its money so far...  this makes it even harder to gain traction (and funding) next time around.

6. The Start

So, don't be afraid to start small.  If you're resequencing the existing content on your home page, and you have three pieces of content, then there are six different ways that the content can be shown.  Without getting into the maths, there's ABC, ACB, BAC, BCA, CAB and CBA.  And you've already created six segments for six personas.  Or at least you've started, and that's what matters.  I've mentioned in a previous article about personalization and sequencing that if you can add in more content into your 'content bank' then the number of variations you can show increases exponentially.  So if you can show the value of resequencing what you already have, then you are in a stronger position to ask for additional content.  Engaging with an already-overloaded merchandising team is going to slow you down and frustrate them, so only work with them when you have something up-and-running to demonstrate.

Remember - start small, build up your MVP and only bring in stakeholders when you need to.  If you want to travel far, travel together, but if you want to travel quickly, travel light!





Saturday, 25 February 2023

Zero Traffic

I've mentioned before that it's always a concern when any one of your success metrics is showing as zero. It suggests that any part of your tracking, calculation or reporting is flawed, and there's no diagnostic information on why.

I have had an ongoing tracking problem with this blog, but hadn't realised until several weeks ago.  I use Google Analytics to track traffic, and the tag is included in one of the right-column elements, after the article list and some of the smaller images.  All good, lots of traffic coming in on a weekly and monthly basis.

Except, as I realised last November, none of my posts from 2021 or 2022 were showing any traffic.  Zero.

I was getting plenty of traffic for my older posts (some of them even rank on the first page of Google for the right search terms) and this was disguising the issue.  Overall traffic was flat year-on-year, despite me keeping up a steady flow of new articles each month.  And then I discovered two gaps in my data:

1. Zero traffic on mobile phones
2.  Zero traffic from social media

Which is obvious in retrospect, since I share most of my posts on Facebook, and my friends comment on my shares.  

In order to tackle these two issues, I've taken a number of steps (not all of which have helped).

a. I've moved the tag from an element in the right column to the middle column, under the content of the post.  The right column doesn't load in mobile devices, due to thr responsive nature of Blogger, so the tag never loaded.  And hence I never saw any of my mobile traffic.

This has worked: I've tested the tag on my own mobile phone and I can see my own visit.  Yay! An increase from zero to one is an infinite increase, and it means the tag is working.

b. It turns out that Facebook's own in-app browser doesn't fire the tracking tag.  At all.  I am in the process of adding the Facebook user agent to my code, and in order to do this, have upgraded to Google Tag Manager.  I'm still not seeing Facebook-referred traffic, but it's an improvement.

And I'm looking at moving to a different platform for my blog.  I've had this one for over 10 years, and it pre-dates my Facebook account.  Maybe it's time for a change?

Other articles I've written on Website Analytics that you may find relevant:

Web Analytics - Gathering Requirements from Stakeholders

Wednesday, 4 January 2023

The Parable of the 99 Sheep

The parable of the lost sheep/good shepherd is very well known, especially in church circles.  I learned the parable in Sunday school, and I've heard sermons on it many, many times from many different preachers and teachers.  It's a reminder to the church that God, the Good Shepherd, wants to gather as many people into the church as possible, and it's frequently used as part of what might be called a recruitment drive - time to evangelise to neighbours, friends and family who aren't part of the flock.  After all, the sheep are all equally valuable, and introducing more sheep to the flock is a good thing.

Here it goes:

"Suppose one of you has 99 sheep, and you decide you want to increase your flock by one.  Would you not leave the 99 sheep in the open country, and go out to find a hundredth sheep, and bring it home on your shoulders with rejoicing?  In the same way, there is more rejoicing over one sinner who repents than over 99 righteous people who do not need to repent."


As you can see if you check your Bible, that's not what the parable says.  

But when it's read out in church, the message that often accompanies the reading is the 'recruitment drive'.  It's as if the parable says we need to get the hundredth sheep because the hundredth sheep is equally important to the 99 already safe in the flock.  And: we the church need to get the extra sheep.  I'm not saying that evangelism is unimportant (it's crucial), but there's another way of reading this parable:  what does Jesus say?

Then Jesus told them this parable: “Suppose one of you has a hundred sheep and loses one of them. Doesn’t he leave the ninety-nine in the open country and go after the lost sheep until he finds it? And when he finds it, he joyfully puts it on his shoulders and goes home. Then he calls his friends and neighbors together and says, ‘Rejoice with me; I have found my lost sheep.’ I tell you that in the same way there will be more rejoicing in heaven over one sinner who repents than over ninety-nine righteous persons who do not need to repent.

Matthew 18:10-14; Luke 15:1-7; John 10

At the start of the parable, the shepherd already has 100 sheep in the flock.  And the truth is that sometimes, sheep wander off.  It's in their nature - they keep their nose to the grass, and they follow their instincts towards what they think is the next best grass... the next thing they know, they're not in the flock any more.  And we are just the same.  Yes we are.  We go to church every Sunday, we join house groups and we attend the prayer meetings.  We all think we're so clever, and we know what's going on in our lives, but we get comfortable, and then we get distracted from where we're supposed to be going.  And then suddenly, we're not sure where we are any more.

It happens.  Christians get criticised for being willing to identify with sheep, but we people aren't half as clever as we think we are, and we follow the crowd far more often than we'd like to admit. 

Sometimes, even members of the flock need to be found. And it's ok if that's you (it's been me).  If you read the parable, you'll notice that there is no blame attached to the sheep.  The sheep isn't berated or criticised, because sheep are sheep (that's why they need shepherds).  Also: it's the shepherd who goes to search and retrieve the 100th sheep, not some of the 99

The parable isn't described as the parable of the bad sheep, it's the parable of the good shepherd - who cares when a member of the existing flock wanders off and gets lost.  He doesn't shrug his shoulders and say, "Oh well, a 1% loss is acceptable for this year's performance, I still have the other 99 and that'll balance the books."  He's searching for even one who goes astray, just as much as for the ones who aren't yet part of the flock.  

Other articles I've written based on Biblical principles

10 things I learned from not quite reading the Bible in a year
Advent and a Trip to London
Advent: Names and Titles
Reading Matthew 1
My reading of Matthew 2
The Parable of the 99 Sheep
Why I Like Snow (it's not as crazy as you may think)

Wednesday, 28 December 2022

First Times of 2022

In what is becoming an annual tradition (here's the 2021 list), here's my list of 'things I did for the first time this year', which shows no sign of getting any shorter, even though I'm getting older.  

1. I taught someone how to tie a necktie.  It wasn't complicated, and my student was a very capable learner who simply hadn't needed to learn how to tie a tie before.  Took us about three minutes.

2.  I taught someone how to tie their shoelaces (because Velcro has been around for a while now, but hasn't taken over completely).  It took us five minutes: four minutes for me to analyse and work out how I've done it on autopilot for the last 40 years, and then one minute to demonstrate it step by step. 

3. I dressed up as Darth Vader.  Quite a few times, in fact, starting off with comic conventions initially, then a few charity events, but later in the year I also then attended a birthday party as an invited guest.  I mean, they weren't inviting me, they were inviting Darth Vader as part of my local Star Wars group and it would have been rude not to accept.  We attended a birthday party for a young man with cystic fibrosis, and for his friends, some of whom had other disabilities. 

And to complete the year, I attended a Christmas Carol service as Darth Vader, playing the role of King Herod, sharing the stage with a ballet dancer who played the role of the Angel Gabriel.  Not something I'd anticipated at the start of the year!


4. I spoke at my church on a Sunday morning.  I was invited to speak for 10 minutes on one of the Fruits of the Spirit, and chose patience (because people think I'm patient when I'm actually just very good at not speaking out). I've spoken at Sunday evening youth group meetings, but that was 20+ years ago, and this audience was a little more mature. I enjoyed it (I wrote and practised for weeks) and might get to do it again next year.

Here's the link to the video recording: Youtube Link

5.  I became a Trustee at my church.  This means I have responsibilities (legal responsibilities) for the finances and legal behaviour of the church.  I'm not the only Trustee - we have four in total, plus the senior minister- and the others have all been in the role for several years. I'm hoping to get up to speed pretty quickly.

6. I found, and completed, a South Korean "K-Drama" series which I selected.  As I mentioned last year, my wife introduced me to K-dramas in early 2021, and we watched "Crash Landing On You" which is one of the best drama series I've ever watched - her suggestion.  We also watched "My Love From The Star" which was good (after CLOY, the others tend to pale by comparison).  

This year, I found "Extraordinary Attorney Woo", which is set in a South Korean law firm. Attorney Woo has autistic spectrum disorder, and is a spectacular law student who's just graduated and started work practising law.  It's dubbed, but you soon forget that as the production and sound is exceptionally good.  I recommend it, it's heart-warming and life-affirming.

Here are some other K-dramas that we've watched and enjoyed on Netflix

Crash Landing On You - the original and best

My Love from the Star - an alien lands on Earth, and doesn't age.

Extraordinary Attorney Woo

7. I taught myself to solder.  Yes, I'm a late developer, but I taught myself out of necessity. I needed to fix my Darth Vader voice box, and didn't want to wait until I could get somebody else to do it.  I have since soldered a couple of other small electronics items, and only burned myself slightly once, on my thumb.

8. I taught Ben to play a piece of music on the piano. In early September, he came home from school with music homework: perform a piece of music to a backing track.  Ben won't mind me telling you that he has zero interest in music and hence no experience or musical knowledge.  However, by clever planning and careful choices, he learned to play firstly Twinkle Twinkle Little Star, and then the main theme from Star Wars on the piano, single-finger melody, in a weekend (and then practised it for the next two weeks ready for his music lesson).  

A piano will always play the same note when you hit the same key (unlike a violin, which requires skill just to extract a sound from it), irrespective of which finger you use or how close you get to the middle of the key.  This makes it ideal for a beginner who is going to play through a brute-force memorisation exercise. It was a triumph of perseverance and determination for both of us, but for Ben especially. Music is already one of his least favourite subjects at school (what other subject expects you to take the end-of-year test before teaching you the course material?).

I'm pleased and surprised at how I'm still learning, teaching and doing new things. I wish you a happy 2023 and many more new opportunities!

The Lists of Firsts

A first time for everything: 2018
2019 in reflection
First times in 2021 list
First times of 2022
First times in 2023
Things I did for the first time in 2024

Friday, 18 November 2022

The BBC Micro and sums of 2^n

Our first home computer was an Acorn Electron. Not as widely known as the Commodore 64 or the Sinclair Spectrum, the Electron is most easily described as a cut-down version of the BBC Micro (which was extremely common in schools).  The Electron ran BBC BASIC, which made it relatively user-friendly. There was a full BASIC manual in the box, along with a book containing some relatively simple games and programs, and using the two together it was relatively easy to enter and the customise the games.

In particular, it was possible to modify the games' graphics, and the character sprites.  Each component of the game (a gameplay character) was made either from a combination of simple ASCII characters >->  o<-< or from user-defined graphics.  And the way that you defined the sprites used some simple maths based on a grid and the powers of 2 (1, 2, 4, 8, 16, etc.).  The grid is 8x8 pixels, and each column has a value.  The sum of each row gives its overall value.

Here's an example:


In order to program one of the game sprites, you take each row one at a time. You identify which of the columns have been filled for that row, and then sum their values (based on the column heading).  The first row in the example above has the two central squares shaded, and these have the values 16 and 8; the sum is 24.  The next row has four squares shaded, and these are 32, 16, 8 and 4.  The next has the central six squares, where 64+32+16+8+4 = 126, and the fourth row has all eight squares, the sum is 255.

The heart shape has some new and some familiar combinations, but the same principle applies.

And this walking stick-man has an asymmetrical arrangement, but this is no problem as the same principles apply.

Admittedly I was 8-10 years old when I was programming these sprites, but it never occurred to me that each combination was represented ny a unique sum, and conversely, each total could only be shown by one combination of pixels.

Why? In base 10, each number can only be expressed as a unique sum of 10^0s, 10^1s, 10^2s... and so on.  We call these units, tens and hundreds, and each can hold a value between 0 and 9. So, 9 x 10^0 is 9, and if we want to show an additional unit, we have to add this as an increment to the next column, and have 1x10^1 + 0 x 10^0.  Each number can (and must) be represented by a unique combination of digits in the hundreds, tens and units columns.

The same applies in binary, base 2, which is the underlying basis of the pixel grid. Each pixel can be either 1 or 0, with 1 representing a pixel, and 0 representing a gap.  And every number can be represented by a unique combination of 1s and 0s - binary is just the same as decimal counting, its just the digits that are different!  This time, the values of each column aren't 10^0, 10^1, 10^2 and so on, but 2^0, 2^1, 2^2, 2^3, 2^4 and so on. 

Naturally, the Acorn Electron was also fluent in hexadecimal, but that's a whole other story.

Other similar posts that I've written

My Life in 10 Computer Games (including a few that I played on the Acorn Electron and BBC Micro)
Sums to Infinity and Refuelling Aircraft (based on a puzzle from a BBC Micro coding book)
And this post: The BBC Micro and Sums of 2^n