Category Archives: LLMs

Three cowboys standing in a Western town street, dressed in period attire with guns.

My experience buying ads in ChatGPT: the good, the bad and the ugly

When OpenAI dropped the minimum $50k spend on their ad platform, I thought I should give it a try for my seating planner app. Perhaps I can get some cheap and well targeted clicks, before all the corporate behemoths lumber in and push up the bid prices? This is a quick summary of my initial experiences.

The good

I had to wait about a week for OpenAI to decide I was worthy to give them money. After that it was all pretty straightforward. The setup is familiar to anyone with experience of PPC (Pay Per Click) advertising: campaigns, adgroups, ads, conversion tracking.

At the campaign level you set options such as:

The countries you want your ads to appear in, from the 7 currently available:

And the platforms you want to be shown on:

I’m only targetting web here, as PerfectTablePlan doesn’t run on mobile devices.

At the Ad Group level you set your maximum bid and ‘context hints’. This is where OpenAI differs from other PPC platforms. In Google Adwords you can choose which keywords to bid on. With OpenAI ads you provide a prompt saying how you want your ads targetted.

OpenAI will then use that (and, presumably, what it knows about your product) plus your bid, to decide when to show ads.

At the ad level you define one or more ads for each ad group. The ads are a 50 character maximum title, a 100 character maximum description and a small image:

So far I have 1 campaign, with 1 ad group, which contains 3 ads.

I set the conversion tracking to fire when the person who clicked on the ad arrives at the web page that gets shown when they install PerfectTablePlan on Windows or Mac.

It is all refreshingly simple compared to the lumbering monstrosity that Google Adwords has become.

Take the recommended bids with a pinch of salt (as with Google Adwords). I quickly started to get a clicks at a reasonable price, much lower than the recommend bid price. Click through rate is 7.9%, which is a bit lower than I manage with Google Adwords, but still decent.

The bad

Your ad show up in ChatGPT looking something like this:

The fact that they can arbitrarily truncate the text is not ideal.

The first few days, clicks reported by OpenAI did not match clicks reported in Google Analytics. I found out you have to add a utm_source tag to your website URL to track the traffic:

Choosing search keywords is pretty straightforward, but context hints less so. Guidance from OpenAI is vague and I have no idea if my context hint is any good.

There is no equivalent of negative keywords.

I have added an OpenAI tracking pixel, but it shows zero conversions. I’m not sure why. Several Youtube videos I watched reported 0 conversion events triggered from spending substantially more than me. So I have to rely on Google Analytics and utm_source for my conversion tracking.

When it comes to advertising, targetting is everything. But I have no idea who my ads are being shown to, or in what context. In Google Adwords I can at least see what search queries people typed and infer their intent from that. But in OpenAI ads, I have no idea what people were prompting ChatGPT before they clicked my ad. This requires me to trust OpenAI. But I really don’t trust them.

It should also be noted that OpenAI are not showing ads to customers on higher tier plans. This means that your ads are only being seen by cheapskates on Free and Go tier plans. Hardly an ideal market for paid software.

The ugly

Behold the engagement metrics from Google Analytics:

SourceAverage engagement time (s)Bounce rate (%)
Google organic4835%
Bing organic5429%
Google Adwords1646%
ChatGPT2738%
OpenAI Ads576%

5 seconds. That is horrible. Even worse than my experiment with Reddit ads. It is also noticeably worse than people clicking organic (non-ad) links in ChatGPT. It is hard to avoid the conclusion that the people clicking on my ads are either extremely poorly targetted or have clicked on the ad unintentionally. Or, putting my tin foil hat on, maybe are bots or AI agents.

But there is worse. According to Google Analytics, 857 clicks have resulted in exactly three completed installs. That is 0.35% click to install conversion ratio. This is an order of magnitude below what I need to just break even on the ads. For other sources PerfectTablePlan averages between 2% and 8% click to install.

Given that I have no information on the context my ads are being shown, I don’t think there is much I can do to improve the situation. I might try changing the context hint and reducing the bid. But it will be just trial and error guesswork. It feels like shovelling money into the void and it isn’t clear that this situation will improve.

I would be interested to hear what other people’s experiences are.

Investigating ChatGPT for advertising my software

There is a common pattern with paid digital advertising channels. New platforms appear with opportunities for cheap ads. Over time, more and more advertisers start to use the platform. Supply and demand drives up the price per click. The platform owners also do everything they can to nudge click prices ever higher. Consequently ad prices rise until companies selling inexpensive products (like mine) can’t afford to bid high enough to get any clicks. But usually a new platform comes along and the dance starts again.

I’ve seen this play out over the 20 odd years that I have been using Google Adwords. In the early days I could get a decent number of clicks at an affordable price. But the price has risen now to the point where I get very few clicks for any price I am prepared to pay. I need a new advertising channel. I tried advertising on Reddit, but that was a resounding failure. I wondered if it might be worth advertising in the new hotness, ChatGPT. So I did some investigating. Here is what I have found out so far, from reading their documentation and other sources.

ChatGPT advertising is structured in a similar way to Google Adwords, with campaigns, ads, auction bids and conversion tracking. But, instead of matching keywords in search terms, you describe contexts in which your ads should appear. This should be less hassle than defining hundreds of search keywords. But it is hard to know how well targetted the ads will be or how well they will convert into sales. Some experimentation is required to answer that.

The ad format is fairly simple: name, headline, short description and small a image.

You can currently only advertise to customers on free plans based in USA, Canada, Australia and New Zealand.

In their own documentation, ChatGPT says: “Advertisers can set custom max bids for their CPC campaigns. We recommend a starting max bid of $3-5 USD per click.”. Yikes. I know they have massive costs to subsidize, but there is no way I can make a profit at $3 per click for my $99 data wrangling software Easy Data Transform. Given a typical 1% conversion rate I would be paying $300 per sale. However, bid recommendations are always very self serving, and can be taken with a large pinch of salt. It is likely that you can get clicks much cheaper. Especially given that there are currently relatively few advertisers compared to the number of users.

So far, so good.

The fly in the ointment is the minimum spend. $50k (down from $250k!). Ah. Maybe not. That minimum commitment may come down over time. But, by the time it is low enough for me to experiment, the bids will almost certainly be too expensive for it to be profitable to someone selling $99 software licenses. The search for affordable advertising channels continues.

** Update 29-May-2026 **

The $50k minimum spend has now been dropped.

Is the golden age of Indie software over?

The concept of shareware appeared in the 1980s. Developers would use relatively primitive tools to create their software, then promote it via fanzines, user groups and bulletin boards to a niche audience of shareware fans. If you wanted to try the software, you would have to get hold of a floppy disk with it on. And, if you wanted to buy a licence, you would generally have to post a physical cheque to the developer. This was being an Indie developer in hard mode. A few people made a lot of money, but most vendors made modest returns on their efforts.

I started selling my first software product in 2005. This was a good time to start up as an independent software vendor. High quality compilers, IDEs, debuggers, version control systems and web servers were widely available and mostly free. The market for software was growing, as more and more people purchased PCs and Macs. Payment processors were starting to streamline online payments. But the real revolution was being able to distribute your software worldwide via an increasingly ubiquitous Internet. And getting noticed by potential customers, while never easy, was generally achievable through writing content for search engines to find, paid online ads (such as Google Adwords pay per click), download sites or even ads in physical magazines. With a lot of hard work and a bit of luck, it was quite possible to make a decent living.

Things have continued evolving at a rapid pace over the 20 years I have been selling software. Development tools have continued to improve. Mobile and web-based software has become mainstream. App stores have appeared. Outsourcing became a thing. Subscription payment models are increasingly common. Mostly these changes haven’t affected my business too much. But recently things have begun to feel noticeably harder.

LLMs have made a major impact. While I don’t worry that LLMs will do a better job than my seating planner software, data wrangling software or visual planning software any time soon (my main competitor remains Excel), everyone is noticing that their web traffic is falling. People increasingly read LLM summaries rather than clicking on search engine links or the accompanying ads. Maybe the LLM will include a link to the website that they ripped off the content from, but probably they won’t. So writing content in the hope of traffic from search engines is becoming less and less of a viable strategy to get noticed.

Other promotional channels are getting squeezed as well. Online ads are increasingly expensive and rife with click fraud. This makes it hard to get any chance of a return, unless lifetime customer value is hundreds of dollars. Google Adwords is a case in point. In the early days, I could get lots of targeted clicks at an affordable price. But Google have done everything they can to raise bid prices and generally enshittify Adwords, so they can grab more and more of the value in every transaction. I now get barely any clicks at bid prices I am prepared to pay.

One of the few useful promotional channels left is YouTube. But it is very time-consuming to produce videos and the amount of competition is huge. I fully expect generative AI to erode its value over time, as AI slop floods the channel.

Typically promotional channels start off great for vendors and become less great over time (the law of shitty clickthrus). But then new promotional channels appear and the dance starts again. But there just doesn’t seem to be much in the way of viable new channels appearing for Indie vendors like myself. My experiment with advertising on Reddit did not go well.

LLMs potentially also make software easier to write, which is a double-edged sword. It might help you code features faster, but it also lowers the barrier, so that more people can compete. Even if your new competition is bug riddled garbage, ‘vibe coded’ by someone who doesn’t know what they are doing, it still makes it harder for your product to get noticed.

The general cost of living crisis hasn’t helped either. The super-rich are making out like bandits, but everyone else has less disposable income. And that is only going to get worse when the current AI funding circle-jerk implodes.

Each of the different software platforms also have their own issues.

  • Downloadable software has fallen out of fashion and the market is shrinking as increasingly people expect software to be web-based. People are also wary about downloading software onto their computers, in case it contains malware.
  • Web-based software is more of a service than a product and is expected to be available 24×7. Expect to get lots of very unhappy emails if your server falls over. And woe betide you if your customer data is hacked. Disappearing off somewhere for a few days without an Internet connection is not really viable, unless you have employees.
  • Mobile-based software is expected to be free or, at best, very cheap. So requires huge scale to make any decent return. And that is tough when there are some 2 million apps in the iPhone app store. You are also at the mercy of app store owners, who really don’t have your best interest at heart.

The new wave of AI tools must be creating new opportunities, but it seems these opportunities are mostly there for big companies, not for Indie developers. And it is very risky to build your product as a thin layer on top of someone else’s platform. Ask people who built tools and services on top of Twitter.

It feels that it is getting harder for small software vendors, like myself, to make a living. Of course, this could be just the ramblings of a 50-something-year-old, looking back through his rose-tinted varifocals. What do you think? Has it got harder?

If you want to show indie software vendors some love, check out all the great indie software for Mac and Windows (including my own Easy Data Transform and Hyper Plan) on sale at Winterfest.