Appearance
The Banner Post Type
Advertisers submit ads by filling in a normal Voxel post type. Voxel Ads watches that post type and mirrors every submission into AdRotate.
Create the post type
In Voxel → Post Types, create a post type with the key ad-banner. You can use a different key — just tell Voxel Ads about it in Settings → Voxel Ads → Voxel CPT key.
Add at least three custom fields:
| Field | Type | Default key | Required |
|---|---|---|---|
| Desktop creative | Image | desktop-banner | Yes |
| Mobile creative | Image | mobile-banner | No |
| Destination URL | URL | destination-url | Yes |
The keys must match what's set under Settings → Voxel Ads. If a banner reaches AdRotate with an empty image, mismatched field keys are almost always why.
Recommended creative sizes
Leaderboard (desktop): 1456 × 180. Rectangle (mobile): 600 × 500. These are what the AI Banner Generator produces, and what the responsive swap is tuned for. Other sizes work — they scale — but mixing wildly different aspect ratios across one group makes feeds look uneven.
How the two creatives are used
If you supply both, the ad automatically swaps between them:
- Wide containers get the leaderboard.
- Narrow containers get the rectangle.
This is measured from the container the ad actually lands in, not the viewport — so an ad in a narrow sidebar column gets the rectangle even on a large desktop screen. No per-theme configuration is needed.
If you only supply a desktop creative, it is used everywhere.
Attach a listing plan
Voxel Ads takes the ad's schedule from the listing plan attached to the banner post:
- The plan's duration becomes the AdRotate schedule window.
- The plan's key selects the AdRotate group — see Plans, Groups & Pricing.
- The plan's price drives CPC and CPM in reporting.
A banner with no plan gets the Default duration (days) from settings — 84 days out of the box.
Plans that never expire
Plans with no expiry date use the Never-expire sentinel year (2099 by default) as their end date. AdRotate needs some stop time, so this stands in for "forever". It has to be a future year.
What happens on submit
When an advertiser publishes a banner:
- Voxel fires its post-created event, and Voxel Ads creates a matching AdRotate advert.
- The desktop and mobile creatives become the advert's markup, wrapped in the click-through link.
- The plan's duration becomes an AdRotate schedule.
- The plan's key maps the advert into an AdRotate group.
The advert should appear in AdRotate → Manage Adverts within a second of publishing, and the post-edit screen gains an "AdRotate Statistics" panel.
Editing the banner later re-syncs it. This also works when you save from the WordPress admin rather than the front-end form.
Post status
| Voxel post status | AdRotate advert |
|---|---|
| Published | Active (within its schedule window) |
| Draft / pending / private | Disabled |
| Trashed | Disabled |
| Deleted | Disabled, or fully removed — see Deletion behaviour in Settings |
Existing banners
If you're adding Voxel Ads to a site that already has banner posts, run Settings → Voxel Ads → Maintenance → Bulk re-sync once. It walks every existing banner post and creates the matching AdRotate adverts. See Maintenance.

