Category Archives: article

Signing Qt applications for Mac OS X 10.9.5 and 10.10

I have written previously about signing Qt applications for Mac OS X. It all worked fine until I upgraded to Mac OS X 10.9.5, which broke my signing script. Those Apple chaps do love to break stuff. Grrr.

The problem appears to be that the directory structure of the app bundle has changed and the Qt4 macdeployqt command does not conform to the new layout (I believe this is also the case for Qt5). Oh joy. I managed to work out how to get it working again after a bit of digging around. The good news is that Apple have also made the codesign command easier with a --deep option to traverse and sign the whole bundle in a single command. About time.

So here is the basic process to build and sign your Qt .app on the latest versions of Mac OS X:

# deploy Qt frameworks into .app bundle
$QTDIR/bin/macdeployqt .app -verbose=1
# optionally delete unwanted framework and plugin folders, e.g.:
# rm -f -r <your_app>.app/Contents/Frameworks/QtDeclarative.framework
# rm -f -r <your_app>.app/Contents/PlugIns/sqldrivers
# correct .app bundle structure
python rebundle.py $QTDIR <your_app>.app
# sign .app bundle (including frameworks and plugins)
codesign --deep --force --verify --verbose --sign "Developer ID Application: " .app
# the 2 lines below are just for verification/diagnostics
otool -L <your_app>.app/Contents/MacOS/<your_app>
codesign --verify --verbose=4 <your_app>.app

(Sorry about the small font, but I wanted to avoid confusing line wraps).

I then invoke DropDmg to create a .dmg image file complete with licence and background image. This is all stuck it all in a bash script, which I can pretty much forget about it (until Apple break something else).

In the above rebundle.py is a Python script  written by some public spirited individual that can be downloaded from github (thank you, ‘kingcheez’). Note that you can just find and replace all the ‘5’ characters in the script by ‘4’ if you are still using Qt4.

The first time I ran my script I ended up with a whopping 50MB .app file. It turns out that the cp -r commands in my script don’t preserve symbolic links. So you end up with 3 copies of each framework library. You can avoid this by using cp -R instead.

On the subject of signing for Mac, Apple recently sent out an email stating:

Signatures created with OS X Mountain Lion 10.8.5 or earlier (v1 signatures) will be obsoleted and Gatekeeper will no longer recognize them. Users may receive a Gatekeeper warning and will need to exempt your app to continue using it. To ensure your apps will run without warning on updated versions of OS X, they must be signed on OS X Mavericks 10.9 or later (v2 signatures). … Apps signed with v2 signatures will work on older versions of OS X.

So you are going to have to start signing using 10.9, whether you like it or not.

Are you wasting your AdWords budget on in-app ads?

2 out of the last 3 AdWords campaigns I have looked at for consulting customers were spending substantial amounts of money on worthless in-app ads, without even realising it. Feast your eyes on the following:

in-app placement ads$1,071.04 spent on clicks from a single game app, that resulted in 0 trials of the software product being advertised. Hardly surprising given that it was a B2B app that cost around $1000. On further investigation this company was spending a substantial percentage of its AdWords budget on completely useless clicks from in-app ads. Ouch.

And this is from a different AdWords account for another B2B software company:

in-app display ads

Many of the apps in the iOS and Android app stores are now funded by in-app advertising. The creator of the infamous Flappy Bird game claimed to be making tens of thousands of dollars per day like this.

Flappy Bird In-App ads

(Note that the ad shown in the screenshot is not related to either of the two companies I mentioned above).

At least the ad is well away from the ‘play’ button. Some, less scrupulous, app makers place the ad in such a way that it is easy to accidentally click on it.

Who would want to pay for in-app ads, knowing that most of the traffic will be accidental clicks from frustrated gamers (many of them children) just trying to get to the next screen? If you run ads on the Google display (content) network, it might be YOU. Google started showing display ads in apps some time ago and it seems that all existing display campaigns were automatically opted in. Worse still, the apps they are advertising in appear to have no relevance at all to your content campaign keywords.

App makers get some money, the public gets free apps and Google makes mega bucks. The advertiser is financing the whole thing and getting (in many cases) nothing in return. But don’t feel too smug. If you have a display campaign that you aren’t carefully monitoring, you might also be throwing away money. To find out:

  • Log in adwords.google.com.
  • Click on All online campaigns.
  • Choose a sensible time frame, e.g. the last 6 months.
  • Click on the Display network tab.
  • Click on Placements.
  • Click on the Cost column to order from highest to lowest cost.
  • Look down the Placement column for entries that start with Mobile App.

Adwords display placements report

While you are there, it is also worth checking the relevance to your product of the other sites you are running display ads on.

Hopefully no horror story awaits you. If it does, you can exclude the offending placements to stop your ads appearing there again.

exclude AdWords placement

But this is a bit like playing whack-a-mole, as you will be continually excluding new apps (I haven’t found a way to opt out of in-app ads wholesale). Alternatively, just pause your display campaigns. Personally I gave up on display ads some time ago. The conversion ratios were so miserable (much lower than search ads) that I could never make any money on them.

If you have been stung for hundreds or thousands of dollars, it may be worth complaining to Google, to see if you can get any money back on the grounds:

  • You never explicitly opted in to in-app ads.
  • The apps your ads appear in bear no relationship to the search terms in your content campaign.

I have no idea if that will be successful, but it might be worth a try.

Google are continually changing the rules of the AdWords game and you would be naive to assume they are doing so with your best interests at heart. If you are running an AdWords campaign you must monitor it continuously or bad things will happen.

Related articles:

Why have my sales dropped?

why have my sales dropped?If you spend as much time as I do hanging around forums for independent developers, you will often see questions of the form “I only made X sales today/this week/this month, has something gone wrong?”. There are two distinct possibilities:

  1. Something has changed (e.g. your website is broken); or
  2. It’s a statistical fluctuation.

Rather than guessing, we can use some stats to work out the probability that a drop in sales is just a random fluctuation.

The Poisson distribution gives us the probability of a given number of discrete events occurring in a fixed interval of time (or space), if these events occur with a known average rate and independently of each other. It can be used to investigate the accuracy of v1 flying bombs, the number of 19th century Prussian soldiers kicked to death by horses and the number of South Africans attacked by sharks. It can also be used to calculate the probability of getting <= n sales per day/week/month, if we average N sales per day/week/month.

Poisson distribution

A comparison between the number of PerfectTablePlan sales per day over 90 days (blue histogram) vs predicted by the Poisson distribution (red histogram). We would expect the prediction to become more accurate with more data, assuming nothing else changes. Obviously things do change over the lifetime of a software product, hence the relatively short time span chosen.

Using this online Poisson distribution calculator we can work out some example probabilities:

expected
number of sales
over period
Probability of drop in sales of: 5 10 50 100
>= 20% 44% 33.3% 8.6% 2.3%
>= 40% 26.5% 13% 0.2% 0%
>= 60% 12.5% 2.9% 0% 0%
 = 100% 0.7% 0% 0% 0%

(0% = too small for the calculator to display)

For example:

  • If we average 5 sales per week, the chance of a 40% or more drop in sales (i.e. a week with 3 or less sales) is 26.5%.
  • If we average 50 sales per week, the chance of a 40% or more drop in sales (i.e. a week with 30 or less sales) is 0.2%.

So the less sales we make (or the shorter the period we look at), the bigger the random fluctuations we can expect. If I was averaging 5 sales per week, I wouldn’t be too worried about a drop of 40% in sales for one week. In fact, I would expect it to happen approximately one week in every 4 (running a business that averages 5 big B2B sales a year, must be very stressful!). But if I was making 50 sales per week, a 40% drop in sales should only happen by chance approximately once every 10 years. I would definitely check for other causes.

Assuming it isn’t just a statistical blip, the most likely cause of non-random change is an issue with your website. Rather than waiting for a problem, I suggest you set up continuous monitoring that emails or SMSs you if a problem occurs. There are various services for this. I use free pingdom.com and siteuptime.com accounts. Using 2 different services protects you against one of them silently failing.

If your website is up, what else have you changed recently? Check your analytics for changes and your Google webmaster tools account for warnings. Has traffic dropped (perhaps you been slapped by Google)? Has the number of downloads/trials dropped while the traffic stayed the same (perhaps there is a problem with downloading/signing up)? If you have made a new release, double check there are no major bugs in the installer or software. “It works on my development machine” doesn’t cut it with customers, so check it on a non-development machine or a clean VM.

Don’t assume that random strangers on the Internet will email you to tell you that something is broken. Perhaps 1 in a hundred or a thousand will. The rest will just click the back button. You can improve your odds by having loyal and engaged customers and a clearly displayed email address and/or phone number. But still don’t depend on it. When is the last time you noticed an issue on a website and took the time to report it?

Also some seasonal variation in sales is likely. The pattern depends on your market. Many businesses see a drop in sales in the northern hemisphere summer. But my wedding table plan software sells better in the summer. Hopefully you will know the pattern for your product after a year or two.

Random fluctuations and the lack of visitors to report issues means that it is hardest to tell whether a drop in sales is real when you start out. This is  when you need the sales most, both financially and emotionally. It gets easier as your traffic and sales improves. No one said that life was fair.

Twitter Demographics Are Bullshit

twitter demographicsI have been experimenting a bit with promoting my software using promoted tweets. You can target people based on their interests or the Twitter handles they follow. I have chosen the latter approach with the aim of getting people to a) click through to my website and b) retweet (in the hope of more click throughs).

The results haven’t been great, with only 25% of the ‘engagements’ I paid for resulting in clicks through to my website. Here is a direct comparison between traffic from AdWords and Twitter ads to my seating planner software website (data from Google Analytics).

AdWords search
campaign
Twitter sponsored
tweet
Bounce rate 43% 78%
Av. pages visited 3.10 1.48
Av. time on site 1:51 0:40

Ouch. Then factor in that the Twitter traffic cost me 2.5 times as much per click through as the AdWords traffic. Double ouch. But that’s fine. You have do lots of experiments to find out what works. Most of them won’t be successful. This experiment only cost me £150.

However I was a bit puzzled by the ‘interests’ report from Twitter. Here are the top 10 ‘interests’ of the people that were shown my sponsored tweet, as reported by Twitter ads.

twitter demographicsBear in mind that I was targeting various Twitter handles related to the events and wedding industry for Twitter users in the UK, USA and Canada. According to the report:

  • 72% of them are interested in ‘Politics’.
  • 69% of them are interested in ‘Hip hop and rap’.
  • 62% of them are interested in  ‘NFL football’.
  • ‘Weddings’ is way down the list at number 55 with 15%, between ‘Leadership’ and ‘Dogs’.

Hmm, something is a bit fishy here.

I ran some more campaigns to promote my UK training course for people who want to create commercial software products. The ticket price for my course is higher than for my seating planner software, so I thought it was worth persevering a bit more with Twitter ads. Here are the top 10 ‘interests’ for the 3 campaigns I ran.

twitter demographics twitter demographics twitter demographicsBear in mind that this time, I was targeting various Twitter handles related to software development, marketing and entrepreneurship for Twitter users in the UK. We love our comedy in the UK and most of us could stand to lose a few pounds. But I can confidently state that the vast majority of people in the UK know almost nothing about NFL (American) football and care even less. ‘Computer programming’ and ‘Startups’ were waaay down all 3 lists.

Twitters says:

We infer interest from a variety of signals, like the accounts users follow and the Tweets they engage with.

I emailed them to point out that the interests seemed to be highly suspect, but I didn’t a substantive reply.

I can only conclude that either Twitter isn’t doing a very good job of the targeting or (more likely) it really doesn’t understand the interests of its customers and is doing a very poor job at guessing. Consequently I would urge you to be very wary of paying for promoted tweets on the basis of ‘interests’.

The psychology of successful bootstrappers

the psychology of successful bootstrappersI am curious about how the people who bootstrap software businesses are different to the general population, and to each other. I investigated this using a standard (‘big 5′) personality test. I think the results make for interesting reading.

I asked a number of software company founders to complete an online personality test and send me their results. 18 of them did (19 including me). You have probably heard of some of them, however I promised anonymity. We are all founders of bootstrapped (i.e. not VC funded) software product companies and have been involved in programming a significant portion of our products. Most of us are solo founders. Some of us (including myself) are lifestyle programmers, others have employees. We are all successful to the extent that we make a living from our software product sales. None of us are billionaires (Bill Gates probably wouldn’t return my email).

The test measures personality across 5 major axes of personality identified by psychologists:

  • Extraversion (outgoing/energetic vs. solitary/reserved) – how much you derive satisfaction from interacting with other people.
  • Conscientiousness (efficient/organized vs. easy-going/careless) – how careful and orderly you are.
  • Neuroticism (sensitive/nervous vs. secure/confident) – how much you tend to experience negative emotions.
  • Agreeableness (friendly/compassionate vs. analytical/detached) – how much you like and try to please others.
  • Openness (inventive/curious vs. consistent/cautious) – how much you seek out new experiences.

See Wikipedia for more details.

For each personality axis I have created a histogram of the results, showing how many founders fit in each 10% ‘bin’ compared to the general population. For example, for extraversion: 0 bootstrappers were in the 1-10 percentile (i.e. least extrovert 10%) of the general population, 1 founder was in the 11-20 percentile, 2 were in the 21-30 percentile etc.

extraversionconscientiousnessneuroticsmagreeablenessopenness

Extraversion Conscientiousness Neuroticism Agreeableness Openness
average (mean) 59.9 61.7 37.6 48.3 50.3
standard deviation 23.0 21.9 23.1 21.1 23.2

If bootstrappers were like the general population we would expect each bar to be the same height, with a bit of random variation, and the average score to be 50. Clearly this is not the case.

We are more extrovert on average than the general population. Although programming is stereotypically a profession for introverts and quite a few of us work alone, you need to get yourself noticed and interact with customers and partners to be a successful bootstrapper.

We are more conscientious on average than the general population. Shipping a software product requires a lot of attention to detail.

We are less neurotic on average than the general population. You need a some self belief and a thick skin to weather the ups and downs of being a bootstrapper.

We are about average for agreeableness. However the scores are not evenly distributed. Only 1 scored above the 70 percentile. Perhaps being too ready to please, rather than following your own vision, is a handicap for bootstrappers.

We are about average for openness. But the scores are clumped around the centre. Initially I was a bit surprised by this result. I expected bootstrappers to be inventive/ideas people and to score well above average. But perhaps the people who score very highly on openness are easily distracted (squirrel!), and never get anything finished.

The 5 personality traits are supposed to be orthogonal (not correlated). Picking some random pairs of traits and drawing scatter plots, that does indeed appear to be the case. For example extraversion doesn’t appear to be correlated with conscientiousness:

extroversions vs conscientiousnessI am aware that this survey suffers from some shortcomings:

  • The test is fairly simplistic. It doesn’t begin to capture what unique and precious little snowflakes we all are. However I don’t think I would have any results at all if I asked people to complete a massive survey. We are busy people.
  • Any survey suffers from selection bias. I am more likely to know other founders who are extroverts (the introverts probably go to less conferences). It is also likely that the people who responded were more conscientious and agreeable than those that didn’t!
  • 19 is a small sample size.

Correlation doesn’t imply causation. So these results don’t prove that high levels of conscientiousness and extraversion and low levels of neuroticism make you proportionally more likely to succeed at bootstrapping a software company. But, given that personality is considered fairly stable over time, it seems unlikely that the success caused the personality traits. However both could be correlated to some underlying factor, e.g. these traits could conceivably make you more likely to try starting a software business, but no more likely to succeed. Or the correlations could conceivably be a statistical fluke. I leave it as an exercise for an interested reader to work out the exact level of statistical significance of these results. It would be interesting to compare these results with those who tried to bootstrap business, but failed. However such data might not be easy to come by.

Given what I know about the trials of starting your own software business I think an above average level of conscientiousness and extraversion and a low level of neuroticism are a real asset. However it is also clear that the personalities of individual founders vary a lot. So don’t be disheartened if you don’t fit this profile. There are successful bootstrappers who don’t fit the profile. Personality is not destiny. And you can always partner with or employ someone who has complementary personality traits. But if you are a slap-dash, neurotic, who doesn’t like talking to other people, perhaps bootstrapping a software company isn’t for you. A career in government funded IT projects might be more suitable.

I sent a draft of this post to Dr Sherry Walling for feedback. Sherry is particularly well qualified to comment as she is both an adjunct Professor of Psychology and married to well know bootstrapper/micropreneur Rob Walling. Her response (paraphrased a bit) was:

“Your standard deviations are quite large which indicates that there is quite a lot of variability in your data. You would much rather have standard deviations between 0-10 when working with this kind of scale.

From my perspective, the only domain where I would expect significant difference is Conscientiousness. Conscientiousness is an essential bootstrapper trait. I am not sure how a solo founder could be successful if he/she is not naturally conscientious.

There are so many ways to be a successful bootstrapper. A neurotic person can fuel his sensitivity to negative emotions into hard work. A less neurotic person may not have enough anxiety to get up early and get to work. On the other hand too much neuroticism can be very debilitating. I don’t think there is a formula. The combination of factors could vary tremendously with each person, but conscientiousness is the one that seems essential.”

If you want to do your own analysis, the anonymised results are available to download as a CSV file here.

Many thanks to everyone who took part in the test.

You can do the test yourself. You don’t have to give your email address or answer the additional questions at the end. How do you compare?

Coding my way around 100 countries

Running a software company from a laptop while travelling the world sounds like a dream lifestyle. But what is it really like? Steve McLeod was kind enough to share his experiences as a nomadic software entrepreneur.

Running a one-person software company while travelling doesn’t work. And yet I’ve been doing it for years. I’m writing this in Patagonia, in a hotel lobby. There’s pop music playing too loud to fully concentrate. The Internet connection is sketchy; in fact I’m writing this now because the Internet is unavailable again. The chair is not good for my posture. The table is too high for comfortable typing. My productivity is abysmal.

I’m partway through adding a new feature to my software, and doing it in this environment is unproductive. There is a big glacier an hour’s drive from here that I’d rather be viewing. I know that tomorrow or the next day, when I see the glacier, I’ll come back to the hotel too exhausted to code or to deal with customer support.

What does this mean for my business? Low productivity and poorer-than-intended customer support response times, which lead to lower sales. My alternative to spending a decent part of each year travelling would be to stay in my home city, working better, selling more software and earning more money.

Here are some real problems I’ve faced working on the road:

  • In Ukraine my MacBook Pro’s screen stopped working. I didn’t intend to return home for another week. I had to choose between returning home earlier; trying to get the computer serviced promptly in a foreign country; supporting customers for my Mac software for the next week on Windows computer in Internet cafes; or buying a new computer and trying to get all my development tools on it.
  • In Turkey, YouTube was blocked. Which was mostly a good thing for productivity, but as my video demo was hosted on YouTube at the time, I couldn’t monitor it.
  • In Syria, Facebook was blocked. Okay, that was incontrovertibly good.
  • In Turkmenistan there was no Internet in my hotel. Or any hotel, just about, except on age-old computers in one hotel’s inaccurately-named “business centre”. No WiFi in cafes. For a few days my company was getting no attention.
  • Travelling in a shared taxi for hour after hour between obscure locations in Iraq (true story!) left me utterly spent. All I wanted to do after getting into a hotel is to relax. But that customer support backlog is nagging, nagging, nagging at me.
  • Skype is blocked in Qatar and in some other countries. This really ruins the conference call you had planned.
  • In Lebanon I needed to update my product with a critical fix. The Internet at the time in Beirut was so bad, it would take an hour to upload my 20 MB software. An hour! During which time I’m hoping not to get a network disruption, from one of Beirut’s daily 3-hour power outages. My 2-minute scripted solution for building and uploading updates, followed by a 5-minute smoke test turned into a 2-hour task, during which time I need to keep ordering coffees so as to keep the staff happy in the cafe supplying me with WiFi.
  • Coding while sipping a cocktail in a beach-side bar in the Caribbean is difficult. The brilliant midday sun makes the laptop screen hard to read. Actually that doesn’t sound too bad at all.

A very real risk includes getting my computer stolen, which, by some miracle, has not happened yet.

How do I make this running-a-one-person-company-while-travelling thing work? Here’s some things I do:

  • I keep everything in multiple online places. I use DropBox for documents and code. I use GitHub too. Without excuse, everything needs to be recoverable without drama if the computer breaks or gets stolen.
  • I set aside frequent rest periods where I can get through a backlog of harder customer support issues and work on new features or bug-fixes. It is actually nice sometimes to not climb Andean glaciers nor to see orang-utans in Borneo, and instead to do something prosaic like working for a day or two.
  • I try to be disciplined in keeping my customer support inbox empty. When I arrive at a new hotel after a long, dusty trip, before rewarding myself with an ice-cold beer, I’ll force myself to tackle the inbox.
  • In recent months I’ve been outsourcing customer support. I pay my support representative a monthly fee in return for which she deals with what she can handle herself each day. This helps so much.
  • I aim to spend my months in my home city in high-intensity bouts of feature-adding, taking advantage of having a good work environment.
  • I produce desktop software. Not SaaS, which would be terrible to support and monitor in these environments.
  • Moving source control from Subversion (which needs an Internet connection to be usable) to Git has helped a lot.
  • I concentrate on keeping my software as solid as I can, and the user experience as smooth as possible. These two things help reduce the customer support load.
  • I try to keep things in perspective. Yes, getting my computer stolen would be a minor catastrophe. Yes, a sketchy Internet connection is annoying. Yes, some customers might get irritated at the occasionally slow support. But here’s the other side: Three years ago the city I grew up in was destroyed by two earthquakes, killing hundreds and destroying a significant amount of the city. A year before that I suffered a terrible personal tragedy. Do other things matter so much that I should sit at home to keep customers as satisfied as possible?

Although my lifestyle might seem enviable, it can be lonely at times. You don’t realise how nice it is to be able to regularly catch up with the same friends for dinner or a drink until you can’t do this for long periods. Luckily, I often manage to find someone I know well to join me for part of each trip. Here in Patagonia and beyond, my girlfriend is travelling with me for two months or so. I’d not be travelling for so long anymore without companionship.

On the other hand, my one-person software company has enabled me to reach a goal I’ve long had: to travel to more than 100 different countries. I earn a decent income from my work and thousands of customers love my software. And that is enough for me.

Photos copyright Steve McLeod.

Steve McLeod runs Barbary Software, a one-person software company. Barbary Software’s main product is Poker Copilot, hand history analysis software for online poker players on Mac OS X.

Further reading:

Adwords vs Twitter vs LinkedIn ads, a small experiment

I am running a course for people who want to create their own commercial software products. Promoting the course has been a challenge. How do you reach a programmer, sitting in his cubicle, dreaming about making a living from selling his own software? In particular, how do you reach ones who might pay to attend a weekend  course in the UK in March? Most of the attendees of the last course came via this blog. But I also want to try to reach people who have never heard of this blog. So I have been experimenting with paid ads via Twitter, LinkedIn and Adwords. Crucially, all 3 of them allow me to restrict my advertising to people in the UK. I thought the initial results were interesting, so I am sharing them here.

Adwords

Google Adwords allows you to show your ads alongside organic (non-paid) search results when people type relevant phrases. But it is hard to think of phrases my target audience (and only my target audience) might be searching on. Terms such as “software marketing” and “software sales” are too vague. In the end I came up with about 200 phrases, including  “sell my software”, “software startup”, “start a software company”, “name software product” and “sell software online”.

One of my Adwords ads (I tested several).

One of my Adwords ads.

But there just aren’t a lot of searches on these phrases. Bidding between £0.25 and £1 per click (depending on relevance) for UK searches over the last 47 days I have managed a meagre:

  • Impressions: 1.7k
  • Clicks: 20
  • CTR: 1.13%
  • CPC: £0.31

Looking at the Dimensions>Search terms report to see the phrases typed by the people who clicked, the clicks seem fairly well targeted. And my impression share is >25% for the majority of the adgroups, so I don’t think increasing my bids is going to make a big difference to the amount of traffic. Adwords just doesn’t work that well unless there are unambiguous phrases your potential customers are actively searching on. I haven’t tried display (content) ads, as these have never worked well for me in the past.

LinkedIn

I also tried running LinkedIn ads targeted at people who are based in the UK and list programming skills such as “Programming”, “SaaS”, “Subversion”, “Git”, and “C++”. The minimum bid per click is $2.00 (ouch), so I bid $2.05 per click.

linkedin-ad

One of my linkedIn ads.

The result over 12 days have been:

  • Impressions: 133k
  • Clicks: 54
  • CTR: 0.04%
  • CPC: $2.00
  • Leads: 2

That is a good number of impressions, but a horrible CTR. Looking at the breakdown of clicks by industry and job function in the reporting, the clicks seem fairly well targeted. A ‘lead’ is where someone expresses an interest and LinkedIn allows you to send them a message. But you don’t get their email address and it appears you can only message them through LinkedIn once.

Twitter

I paid to put a sponsored tweet in the timeline of Twitter users in the UK, based on who they follow. I picked the Twitter handles of 4 other people who blog about bootstrapping.  Note that Twitter claims they won’t show ads to all the followers of these Twitter handles, but to people who are interested in similar things to the people who follow those Twitter handles. That seems a rather hair-splitting distinction, but I guess it allows them to claim they aren’t exploiting the popularity of their customers directly. I bid a maximum of £0.75 per ‘engagement’ (click, retweet or follow). I didn’t include an image with the tweet as I couldn’t really think of anything relevant at the time (a classroom?). The text of the sponsored tweet was:

Sell your own software. Be your own boss! 2 day course, 22/23 March, Wiltshire, England. Full details at: http://successfulsoftware.net/software-business-training-course/

The result of this 1 sponsored tweet over 2 days has been:

  • Impressions: 5.8k
  • Clicks: 174
  • CTR: 3%
  • CPC: £0.29
  • Favorites: 7
  • Retweets: 2
  • Follows: 1

Given the small number of favorites, retweets and follows, it is hard to know how well targeted this was. I guess a 3% CTR implies it was fairly targeted. The fact that the CPC was a lot less than my maximum bid may be down to Twitter ads being a relatively new medium, without too much competition (yet).

The reports have left me confused. Twitter report 3,112 impressions and 106 clicks for followers of my own Twitter handle @successfulsw.

twitter-reportingBut:

  • I didn’t tick the Also target your followers check box, as it seems idiotic to be paying for tweeting to people that I can tweet to for free.
  • I don’t have 3k Twitter followers.
  • I direct messaged a few of my Twitter followers based in the UK and they said they hadn’t seen a sponsored tweet from me.

This was the response when I queried Twitter support:

Thanks for the information. We have investigated this issue and we can see that your handle is in your @handle section of your campaign, this is because implicit targeting was enabled (targeted followers with similar interest as your followers), that is why your handle is showing there. We have confirmed you have a nullcasted Tweet and this Tweet is not showing to your followers. We realize this may be confusing and we’ll work with our product team to improve how this looks on the user interface.

The reporting of the interests of the people that engaged doesn’t make sense either. It says that of the 5.8k impressions, 4.7k were to people interested in “Hip hop and rap” and 4.5k to people interested in “NFL football”. We don’t even play NFL football in the UK!

twitter reporting interestsThis was the response when I queried Twitter support:

I understand it’s confusing, and I’ll share this feedback with my team. What you’re seeing is a cumulative total of paid/earned/organic engagements. This total also considers secondary account signals eg a users prime interest is photography, and a secondary interest in baseball. I can assure you that you paid for primary interests only, and organic/earned and secondary engagements were not charged for.

I am still none the wiser about the “NFL football” result. It does make me wonder how accurate their ‘targeting by interest’ option is.

Conclusion

This is obviously only a very small experiment and it is hard to judge exactly what the quality of the traffic was like (I was sending traffic to a wordpress.com page and I am not able to measure detailed analytics, such as bounce rates or time on page). But I even these limited results are still illuminating.

I like Adwords, particularly the fact that it shows your ad to people at the point they are searching for a solution to their problem. It has worked pretty well for my table planner app over the last 9 years, despite bid price inflation. But Adwords is only effective when there are well defined phrases with reasonable search volumes you can target. That doesn’t seem to be the case for my course.

LinkedIn is a good way to target people according to their skills or job function. There are lots of different targeting options and the traffic volume was better than Adwords. But the clicks are very expensive. Given an industry standard 1% conversion rate I can afford to pay $2 per click to promote a £600 course. But forget it if you are selling less expensive products.

Twitter ads seem quite promising. There are lots of targeting options and you can get a lot of traffic quickly for a relatively low price per click [but see update, below]. I could have got a lot more clicks by targeting more Twitter handles and/or increasing my bid. But its not something you can leave running continuously like Adwords or LinkedIn. You have to keep sending new sponsored tweets. Also the reporting is confusing and of dubious veracity. Finally it feels slightly grubby to be targeting the followers of your peers and/or competitors so directly. But I think it shows promise. If you are going to try it, I recommend you do so soon. The law of shitty clickthroughs means that it is sure to be a lot less cost effective in a few years time.

**** Update ****

I noticed that the clickthroughs to the URL in my sponsored Twitter post was only about a third of the clicks reported by Twitter. When I asked Twitter about this they replied:

Twitter Ads measures engagements which we define as “clicks” within the Promoted Tweet Dashboard are defined as follows: clicks on the URL, hashtag, Tweet copy, avatar and username, or the expand button. It’s likely that the other analytics you are seeing are tracking link clicks.

So I am paying for someone to just click the Tweet copy (text)! The cost for a clickthough to my site is actually around 3 times the CPC reported by Twitter. That makes it around £1 per clickthrough, which is much less attractive.