How I got a click-through rate of 16% on Twitter Ads

And it was a cinch I tells ya

Twitter Ads are a bit of a dark art, nobody has written the book, so a lot of people are giving them a wide berth. As I started, I went to visit a chap doing PPC at a large and well-respected ad agency. He told me, “I can’t make Twitter ads work. I’m giving up.”


The thing is, I actually had a lot of success. To elaborate, 16% CTA (and over 17% engagement) is kind of a big deal.

Before starting Twitter Ads for the first time I thought it might be a good idea to record my day-to-day learnings for myself, and to share internally for the team. When I started having success, I thought I should write it up.

The aim for my ads was the same as nearly all PPC campaigns - generate traffic to a landing page, and from there, turn them into customers.

Selecting @handles for a promoted tweet campaign

I wanted to find back-end developers online and send them to this great headhunting platform the team had built called Hire My Friend. To be clear, I do not want -

- more followers

- replies or retweets

I just want them to click the URL included in my tweet. Anything else would be a failure (because Twitter would charge me for the undesired engagement).

I need to find Twitter users who are only followed by developers, as those are the only people I’m interested in attracting to the site for this campaign. I’m using two types of the possible targeting:

 - handles (advertise to the followers of the selected accounts)

 - location: United Kingdom (only Twitter users who say they are based in the UK)

4 campaigns for 4 audience types

While testing the different audiences, I also iterated on the language of the tweet I was going to promote, to see which language resonated best. I did this with ‘limited delivery’ tweets, meaning only people I advertised to would see it.

Don’t be afraid to be direct

I tried different variations on what we deemed to be the benefits to users of the platform; initially in quite jokey, irreverent ways. I soon learnt an important lesson: don’t be afraid to be direct!

The tweet above which was the most direct in its language performed the best, but still not quite well enough to call it a roaring success. The messaging is broadly right, so based on this, and some tests with language on the website using Optimizely, I created three very similar tweets that I thought might get me a little closer.

A subtle change in language makes all the difference

There’s one clear winner, with an engagement rate of 6.95% and $0.31 per engagement. We can get some useful insight about what language is important, and how that language should flow. This is like testing and iterating on your company tagline! Here’s what resonates, in order of importance:

#1 No recruiters

#2 amazing startups

#3 get headhunted/get headhunted directly

Day 7 - $250 spent so far 

I duplicated my best performing campaign - the tweet with the best language, and targeting UK-based followers of UK developer brands.

The engagement rate varied between 4% and 8% for the different handles, with an average of 6%.

@railsberry has an engagement rate of 6.9%! 

This is quite a big Rails conference, as opposed to the Scottish Ruby conference, and the other hackathon/meetup handles I had added. I had had over 12,000 impressions so I thought it time to start afresh.

My next experiment will be hitting up more European back-end language conferences.


Around this time I had a different thought; I was successfully promoting a product called Hire My Friend, and while giving an account of its best features, I hadn’t mentioned ‘hire/hired’ or ‘friends’ other than in the handle that the tweets are coming from. But I was having a lot of success.

Hmm, maybe we should pivot our proposition… (but more on that another time).

The next test: similar_to

1. Target handles using:

- >

(because @railsberry was giving me the best engagement rate).

2. Using this tweet:

No recruiters. Just amazing startups looking to headhunt you directly. [www.]

I fed this into a new campaign, picking out eight handles that had a lot of followers and didn’t follow many people (‘influencers’, if you must):

After 2 days (half way through the test, at a cost of $100), I duplicated the campaign, but chopped down the handles I’m targeting to just the best performing. 

Remember now, these are not handles I’ve identified myself, I’m only targeting handles Twitter has told me are similar to ones I’ve had success with. 

Another day, $350 total spend and a new high later:

I’ve got an engagement rate of 7.65%! Where 6.99% of people who see the ad actually click it:

3 more days: a 16.1% CTA!

Left for a couple more days, the engagement for just the handle @newrelic peaks at 17.14%, or a click-through rate of 16.1%!

I’m going to up the budget to $40 a day to get a little closer to making some decisive conclusions about these handles.

When the data is a bit more conclusive, I’ll split out the campaigns by high performing handles. Perhaps /similar_to/newrelic might be worth a look.

Splitting out by handles again

After 4,500 impressions, and a 7.57% rate, I’m going to do just that. I’m pausing this campaign and splitting it out:

The goldmine that was @newrelic has subsided slightly, but finding what Twitter deems to be similar handles is still paying off: 

It seems likely I can maintain campaigns that hover just below 10% engagement rates with a little spring cleaning every few days.


It had been my plan to keep moving and freshening up my campaigns every few days by finding new handles, but Twitter have now killed off 

This was confirmed by a Twitter rep who didn’t know why, and was just as surprised as me as they found it very useful. This means you’re back to the drawing board if you’re starting out using Twitter Ads and trying to find new audiences for your product or brand.

The best alternative for now is the “Expand your reach…” button below the “Add @username"s box. I’ll be experimenting with this and recording my progress.

Photo Credit: Drift Words via Compfight cc