Three lines of code to avoid being creepy

I like to read papers detailing how targeted marketing is Terminator’s SkyNet, or at least getting there. The wild speculations in there make SciFi features like the ‘Enhance’ button rather petty. They are very revealing of targeting mistakes and misunderstandings. For instance, those are too common and widely spread not to correspond to something commonly shared by people who have no idea what is happening, hence, they must actually adress a very sensible issue. Not sophisticated vector forests with asymptotical Barnard hyper-spheres, but something my mother would notice and perceive and not-human. One day, playing with a client’s ad platform, I figured it out.

What is the creepiest thing you can do to someone? Bible readers would know that: flogging righteous people, killing babies, sleeping with family members… Nope: All that is horrid and disgusting, and certainly what Terminator’s SkyNet has in mind for us but it’s not creepy. The breathing red light in T2000 eyes is creepy: that simple rhythm of an LED smells of betrayal and partially human. One of the creepies moment in the Gospel is at the end. It’s read on the Friday just before Easter, after Jesus was arrested. A woman asks Peter: “I recognise you. You were with him!—No I wasn’t!” What a jerk. But then she asks again. And he denies again, swears. And again: it goes on three times like this. He denies his faith and savior three times in a row, and goes with his repeated denegations from a coward and a jerk to the worst traitor possible. That’s actually an echo to his boasting about his faith three times, just hours before (and a cock singing three times just an instant after that).

The feeling triggered by the repetition if incredibly tragic. Humans know this — well, not severely autistic humans do: autism comes of as nothing but very passionate traits, and yet, that single repetition feature makes their entire behaviour come off as machine-like. Despise for repetition can be felt in many contexts: haggling, asking for clarification or swearing: you can repeat a question if you are incredulous, but not twice, and certainly not more. You can lower price, but three times because that would be perceived as indefinitely. Communication is considered broken otherwise. There would be no soul between your ears, you would have perceived how uncomfortable that is and changed the message sooner.

“I’ve tried three times and it didn’t change anything” is one of the most commonly heard complaints at tech held desk—in spite of the well-known definition of madness by Einstein: expecting something different (from an inanimate object). Computer prompts are frustrating like that, and marketing campaigns too. Far too much, especially for such well-controlled events. I often explain: if you want to make targeting, predictions and recommendations make sense, understand those as questions from a presumed human operator to a client. Your friends can ask if you are gay if you just mentioned liking Abba—without the implied joke and prejudice on their current fans, it would be deeply wrong to say, e.g.: from your entire profile, you probably want to join that gay dating website. But an inference, even implied by “People who bought this also…” that’s human.
However, exact repetition even of a legitimate question is creepy, and not processing a refusal as a definite No, not letting that clear cut end of that discussion is probably hurting your campaign efficiency. Probably — let’s not assume, and let you measure.

For that, here are three very simple lines of SQL to help you plot how your campaign efficiency is dropping when becoming insistent (and creepy). I assume that you have a table named, say, ‘Ads’ with every screen appearance of:

  • a given ad copy, or maybe campaign (uniquely identified with a ‘CID’);
  • shown to a certain viewer, cookie or user (uniquely identified as ‘UID’);
  • a ‘DateTimeId’ for the horo-date, and
  • ‘Click’, a binary information about whether that ad lead to a click-through.

%% First line takes every combination and figures out which time the user first clicked and how many times he had to see that particular copy of that ad.

Select UID, CID, Min(Rank(Clicked = TRUE by UID, CID order by DateTimeId)) as ConvRanking, Count(*) as TotalViews
from ‘Ads’ into #Views Group by UID, CID as Repeats

%% Please note that, ‘ConvRanking’ can be null if the user didn’t click through.

%% Second and third line aggregates by campaign and user

Select Count(Distinct CID, UID) NbPairing, ConvRanking from #Views Group by ConvRanking,

Select Count(Distinct CID, UID) NbPairing, TotalViews from #Views Group by TotalViews

%% For a big operator, that table might be split by dates: I trust you know how to merge the temporary tables.

Plot both curves to represent how many repetitions (abscisse) you needed to convert someone (NbPairing as ordinate for ConvRanking), and how many times you tried and paid for it (NbPairing as ordinate for TotalViews): one has to be above the other. If both are close, you efficiently repeat and stop when the user is converted. If ConvRanking is below but not to the left, you conversion rate is low but your repetition relevant. If ConvRanking is to the left, then you repeat views of your copy too much, either already converted users, or not interested ones. Creepy and clueless either way.

I won’t breach confidentiality and share exactly how those curves looked like for clients, but I can tell you this: I have yet to find a client where the conversion rate does not drop at an alarming rate, revealing a large share of their marketing effort very easily filtered out: repetition beyond the Xth. Repetition does look like it deepens their inventory, without having to find more partners, however the curb that you just drew proves how pointless that can be.

Of course, now they have to encode counters in their platform, a surprisingly unplaned and hard thing to add. Now, the developer tasks for that hates you; bring chocolate. More importantly, a priority budget to do it most likely just revealed itself.

This goes again the usual carpet-bombing that most old-school advertising agencies liked, because it was so efficient—efficient because it saved creative effort and struggle to reach an agreement with their advertising clients, and maximised their share of buying space. However, it matches Google approach. It also gives an efficient tool to curb re-targeting perceived violence: imagine your assistant saying “By the way, you mentioned you wanted to buy this” one — that’s an appropriate and smart reminder; imagine that every time you come across said assistant… I hope you got my point.

I’m positive with a proper classification or either, more nuanced things can be done, but this is not post about “How 30 lines of code can prevent you from being creepy.” That would be almost too hard.

About Bertil

I'm a PhD student in Digital Economics, and I love viennoiserie. Je suis un doctorant en économie (numérique) et j'aime la viennoiserie.
This entry was posted in Uncategorized and tagged , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s