Appearance
AI Banner Generator
The biggest friction in selling ads is that advertisers often don't have artwork. The AI Banner Generator gives them an Elementor widget where they describe an image and get back both creatives — leaderboard and rectangle — ready to submit.
It is off by default and completely dormant until enabled: no AI scripts, hooks or endpoints load while it's switched off.
How it works
The AI produces only the background. The headline, call-to-action and logo are composited afterwards with GD at exact ad dimensions.
That split matters. Image models are unreliable at rendering text — they warp letterforms and misspell words. By compositing text ourselves, it is always crisp, always correctly spelled, always at the right size, and can be re-rendered without touching the API again.
Setup
Under Settings → Voxel Ads → AI Banner:
| Setting | What it does |
|---|---|
| Enable | Master switch. |
| Provider | WordPress AI, Google Gemini Image ("Nano Banana"), or OpenAI GPT Image. |
| API key | Stored encrypted, keyed off your site's WordPress salts. Displayed masked. Not used by WordPress AI. |
| Model | Which model generates the background. |
| Monthly quota per advertiser | Generations allowed per user per month. |
| Site-wide cost cap | A hard ceiling on spend across all users. |
| Allowed plans | Which membership plans may generate. |
| Moderation | Screens prompts before they reach the provider. |
Providers
WordPress AI (recommended)
Offered only on sites running WordPress 7.0 or later, where WordPress's own AI Client is present. Instead of storing a key in Voxel Ads, you configure a provider once in WordPress and every plugin on the site shares it.
- Set Provider to WordPress AI (recommended).
- If the badge reads Not configured, follow the link to Settings → Connectors and set up an image-capable provider.
- Return here — the badge should read Connected.
- Choose a Preferred image model, or leave it on Automatic.
No API key is stored in Voxel Ads
With WordPress AI selected, this plugin holds no credentials at all. A good reason to prefer it if you'd rather not keep provider keys in plugin settings.
The option is hidden entirely on WordPress 6.x, and the badge shows Not configured if your WordPress connector can only do text — image generation is a separate capability, and this feature needs it.
Preferred image model
A dropdown of the image-capable models actually installed on your site, grouped by provider and read live from WordPress — so it always reflects your connectors rather than a list that goes stale.
Leave it on Automatic and WordPress picks. That's fine with one connector. With two, WordPress decides which one generates — and therefore which provider account gets billed. If you have more than one connected, choose explicitly.
Connectors that can't generate images never appear. Anthropic, for instance, is a valid WordPress AI provider but does no image generation, so it's correctly absent from this list.
If a model you'd selected is later removed from the site, it stays selected and is flagged in red rather than silently falling through to a different provider's model. Pick another, or switch to Automatic.
Cost caps don't apply to WordPress AI
Billing runs through whichever connector WordPress is configured with, at a price this plugin can't see. The per-image cost is reported as $0 and the site-wide cost cap won't restrain it. The per-advertiser monthly quota still works, so use that to bound usage on this provider.
Google Gemini Image and OpenAI
Enter the provider's key and pick a model.
| Provider | Models | Current pricing |
|---|---|---|
| Google Gemini Image | Gemini 2.5 Flash Image (recommended), Gemini 3.1 Flash Image (preview) | ai.google.dev |
| OpenAI GPT Image | GPT Image 1 mini (cheapest), GPT Image 1 (top quality) | openai.com |
The per-image figures shown in settings are rough estimates, written as ~$0.04 and stamped with the month they were last checked. They exist because the monthly cost cap has to be calculated from something — they are not quotes. Providers reprice without notice, so check the linked pages for current rates before setting a cap you intend to rely on.
One background per ad
A single AI background is generated per ad and reused for both the leaderboard and rectangle, so the cost per ad equals the cost per image. Re-render text costs nothing at all.
Then place the AI Banner Generator widget on your banner create/edit template. It appears only when the feature is enabled.
You supply the credentials, and you pay for the generation
Generation bills to your own provider account, whether that's a key stored here or the connector behind WordPress AI. Set the per-advertiser quota — and the site-wide cost cap where it applies — before making the widget public. They're the only thing between you and an unbounded bill.
Who can generate
Allowed plans is a multi-select of the membership plans on your site, read live from Voxel — so it lists your actual plans rather than asking you to type keys. Each option shows the plan's name and its key, e.g. Premium (premium).
Select none and any logged-in user may generate. Select one or more and only members on those plans can.
This is the membership plan, not the listing plan
It gates on the plan the user is subscribed to, not the plan attached to the banner they're submitting. Reserving AI generation for your paying members is the usual reason to set it.
A plan that's later renamed or archived stays selected and is flagged, rather than silently disappearing on the next save and quietly revoking access for everyone on it.
Combine it with the per-advertiser quota: plans decide who, the quota decides how much.
What the advertiser gets
| Feature | Notes |
|---|---|
| Both sizes at once | Leaderboard 1456 × 180 and rectangle 600 × 500 |
| Style presets | Bold, Minimal, Editorial |
| Legibility modes | Light, Dark, or Auto — Auto reads the background and picks |
| Comparison options | Two or three variations to choose between |
| Re-render text | Recomposites new text or logo over the same background — free, no API call, no quota used |
| Image-only mode | Skips text entirely |
| Per-preview download | WebP download of any preview |
Re-render text is the feature advertisers use most. Getting wording right usually takes several attempts, and none of them need a new background.
A solid colour costs nothing
If the advertiser asks for a plain colour background, the plugin generates it locally and never calls the API. Free, instant, and it doesn't touch their quota.
Applying to the banner
Once happy, the advertiser clicks apply and both creatives are written into the banner post's image fields, attributed to them in the media library. From there it syncs to AdRotate like any other banner.
Usage and cost tracking
The AI Banner settings tab has a usage log — generations per advertiser, per provider, over time. Use it to check the quota is set sensibly and to see which advertisers rely on the feature.
Reliability
Requests retry with backoff on rate limits and server errors, so a transient provider hiccup doesn't surface as a failure to the advertiser.

