I've spent $25k on X ads as an indie dev
My side project nslookup.io (a free online dns checker) got out of hand. I quit my job to work full time on it 3 years ago. I've since launched a DNS course (on Black Friday sale right now) for which I've run €21k (about $25k incl. VAT) worth of X ads.
Here's everything I've learned about running ads on X.
I spent $25k on X ads as an indie dev.X ads can work if you're an indie dev
Clearly I wouldn't have spent $25k if they weren't profitable. Over 1000 people bought my course, and most of them discovered it through the ads.
You only need $70 to test if ads can work
Start with 1 week on a $10 a day budget. That should give you an indication if X ads are potentially viable for your project. Less than 0.5 ROAS (revenue / ad spend)? Probably not going to be worth it, even after optimisation. Positive ROAS? Experiment, optimize and ramp up!
You can't run profitable ads for a bad product
But that doesn't mean your product is bad if ads don't work. There are many factors that influence the successfulness of an ad campaign. But the quality of the product certainly is an important one.
Your sales page matters a lot
Another is the sales page. I made mine before recording any lessons for the course. I wrote the course outline with these things in mind:
- How would I teach this?
- What problems do developers have with DNS?
- How do I make sure they get a foundational understanding of DNS, rather than a superfluous understanding of random facts? I then made the sales page using this outline and the answers to these questions. I showed I'm the right person to teach this, and justified the price. A good sales page can make all the difference when running ads.
Use 5-10 different ad texts and images
Give the algorithm something to work with. You may think one type of ad copy will work well, but something else might do better. So, when starting out, add a broad range of ad copy and images to test what works best.
Show passion and legitimacy
My best converting ads were the ones that show I'm passionate about DNS. I know. I'm a nerd 😅. These ads also showed my legitimacy as a maker for the course. Make sure you show your passion and legitimacy, not just tell them you are.
My best performing ad.Write ads that feel like normal tweets
Or better yet, promote your regular tweets to ads. People are much more likely to click when they feel like they're interacting with a human rather than a marketing machine. I regularly retweeted my ads because I would have tweeted that anyway.
Use broad targeting at first
In my case, I've targeted all countries and followers of quite a few large developer accounts. X will be able to figure out which types of people are most likely to engage with the ad. So let it do its thing. Ones you get a decent amount of sales, you can narrow it down to stop wasting money on countries that barely convert.
Check which countries your payment provider supports
I've made this mistake. I showed ads to people who can't even buy my course because my payment provider doesn't support payments from those countries. Yes, some people are basically locked out of online purchases simply because they live in a conflict zone.
Stop looking at stats all the time
I couldn't stop looking at the stats at first. You're spending money, so you want to make sure they're doing all right. That, and the dopamine, of course. But it really isn't productive. So make it a rule to check in on your ads at most once a day.
Diminishing returns are real
X tries to show your ad to the people who are most likely to engage with your ad. So if you increase your ad spend, that extra money will go to people who are less likely to engage than those you were already showing ads. Or alternatively: it will show the same ad more often to the same people, decreasing your reach per dollar.
Slowly ramp up
So don't increase your ad spend by 10x once you've got profitable ads. Increase it by 50-100% a week instead. See how much extra revenue that brings in compared to the increased ad spend and adjust accordingly.
X ad platform is buggy
Oh, man... Even if you run a browser without any plugins (ad blockers can interfere), the X ads dashboard just doesn't work half of the time. You need to refresh every couple of clicks just to get another chance for it to load.
An all too familiar sight.Reupload ads that get stuck
One of the issues I encountered was that new ads could get stuck in the 'pending' state for days. Reuploading them got them through immediately.
Change budget by setting up new ad groups
X once spent my entire day's budget in 2 minutes when I changed the daily budget. Poof. Gone. I barely got any clicks in those 2 minutes. No idea what happened, but from then on, whenever I'd change anything, I'd create a new ad group and schedule it to go live the next day and disable the current ad group at the same time.
You need to babysit your ads
Check in on your ads a couple of times a week. Sometimes the same ads just don't perform well and after copying and disabling the old ones they shoot up. It's weird.
Refresh ads weekly
An X sales rep told me that recency is one of the features used in determining which ads get shown. So even if you don't change anything, you'll likely see an uplift if you reupload the same ads every once in a while. I've settled on once a week.
Use the X pixel
By default, X optimises for engagement. But you can tell it when you made a sale and get it to optimise for that instead. That's a lot better, because it demotes people that are interested but don't convert for whatever reason.
X doesn't use sale value to optimise
When setting up the X pixel, you can tell it how much revenue each sale made. However, this is only used in reporting, and not for optimising the ads themselves. So there's not much use in setting it up.
Be prepared to get hate
Your ads get shown to millions of people. A small minority is bound to work through mental issues and may not be in a good spot in life. Regardless of your product, your ads and yourself, you'll get hateful replies.
Report spam and block hate
Guard your ads and your mental health. Your ads will get political and commercial spam. Report those replies. And block people who are unfairly hateful.
Reply to comments
But don't block criticism. Use it to improve your product, and reply constructively. It'll show you care and are looking to improve. Reply to all (or most) comments for that matter. You might just make some new friends or get them to buy your product. An ad where the maker replies to comments is a much better look than one where they don't.
Your notifications will be useless
You'll get so many likes, retweets and comments that your notifications will become useless. There will always be 20+ notifications, even if you check multiple times a day. Try to scan them for replies so you don't miss them.
Check replies periodically
Even if you check your notifications carefully, you'll miss some replies. I'm pretty sure not all of them end up in your notifications. So go to your ads dashboard once a week and open a new tab for every running ad. Check which replies you haven't seen yet and respond to those.
You'll gain followers by running ads
This surprised me, but people actually like and retweet ads. They can also follow you. My follower count grew from ~600 to over 6000 during the time I ran ads, and I didn't post a lot besides those ads.
Use your personal account
So use your personal account to run ads if you want to grow your own follower count. Another benefit is that ads from an account with a face look more organic than those from a business account. So if you're an indie dev yourself, I'd recommend using your own account. Keep in mind that some people mute or block accounts that run ads, though.
Analyse sales data to optimise targeting
Once you've made over 100 sales, you can download an export of ad spend per country and revenue per country. Do some spreadsheet magic and you'll find which countries are poor performing. Exclude those from your targeting.
Use follower lookalikes
You can massively increase the pool of potentially targeted accounts by enabling follower lookalikes. This tells X to target people similar to those following accounts your ad group already targets. X is pretty good at weeding out accounts that aren't likely to convert. So it's generally fine to have a big potential audience.
Try retargeting
X can remember who visited your site, and target only those people. I figured this out when my ROAS had been dropping for a while, so I haven't tried it myself before disabling my ads altogether. You do need to create an 'audience' on the X dashboard first, so do that early to start collecting data. Remember to exclude people who already bought your product.
Get business verified for free
Business verified costs $2.500 / $12.000 a year and include the same amount of ad credits. So once you know you'll spend that amount on ads the next year, you can get business verified for free.
X sales reps can help you — a little
Once you hit a certain total ad spend, an X sales rep will reach out to you. They'll ask for a video call to help you avoid some common mistakes and optimise your ad campaign. Take the call. Worst case, you'll lose 30 minutes. Best case, you'll increase your revenue by 10-50%.
Ramp down when ROAS drops
Ads inevitably wear down. Even if you renew the ad copy and images periodically. It'll peak early and slowly become less effective to run ads. So monitor how much money you're making and spending on ads. When ROAS approaches 1, half your ad spend. This might just improve ROAS by the power of the law of diminishing returns.
Shut down early
My biggest mistake was keeping the ads running for too long. I was still making more money than I'd put into ads, but I didn't realise that I was now getting most that revenue regardless of the ads. When I started, I didn't get any organic sales. But after running ads for a while, it had picked up. So shut down your ads well before ROAS hits 1, just to gauge how much revenue you're getting without ads.
Reach has second order effects
One thing I didn't expect was that the massive reach X ads got me had second order effects. People reached out to me to talk on podcasts, companies emailed me to buy ads on Nslookup, and I met up with old friends who reached out after seeing my ads.
Congrats on reaching it to the end! Don't forget that my course is on Black Friday sale today ;)