Skip to main content
See also: Creatives REST API reference for request/response shapes, status codes, and error semantics.

Overview

A creative is a content variant that defines how a specific offer is rendered on a specific channel. Creatives contain the actual messaging — subject lines, headlines, body copy, images, and calls-to-action — along with personalization variables and A/B test configuration. Each creative links one offer to one channel, allowing the same offer to have different presentations across email, push, web, and other delivery mechanisms.

Field Reference

Template Types

Content Object

The content object varies by template type, but common fields include:

Personalization Variables

Personalization variables inject dynamic values into the content at delivery time:
Use computed.* sources to inject dynamic computed values like personalized rates or custom pricing into creative content.

A/B Test Variants

Creatives support A/B testing by assigning each creative a variant label and traffic weight: Traffic is split according to the weight field on each creative. Weights are relative — if control has weight 50 and variant_a has weight 50, traffic is split 50/50.

A/B Variant Weight Resolution

At runtime, the decision engine normalizes variant weights to select which creative a customer sees:
  1. Collection — All active creatives for the same offer + channel are grouped.
  2. Normalization — Weights are summed and each creative’s probability is calculated as weight / totalWeight. For the example above: control = 50/100 (50%), variant_a = 30/100 (30%), variant_b = 20/100 (20%).
  3. Selection — A deterministic hash of the customer ID is used to pick a variant, ensuring the same customer always sees the same creative across requests.
  4. Fallback — If no abTestVariant is set, the creative is treated as a standalone (no A/B split). If all weights are 0, each creative receives equal probability.
A/B test results are analyzed in the Algorithms module under Experiments. KaireonAI calculates statistical significance using z-tests on conversion rates.

Constraints

These creative-level constraints work alongside contact policies which apply broader rules across offers, channels, and categories. Once your creatives are configured, set up decisioning gates to control which customers are eligible to see them.

Creating a Creative

1

Navigate to Creatives

Go to Studio > Creatives in the sidebar.
2

Click Create Creative

Click the + New Creative button.
3

Select offer and channel

Choose the offer this creative presents and the channel it will be delivered through. Optionally select a placement slot.
4

Choose template type

Select the appropriate template type for the channel (e.g., email_html for email, push_notification for push).
5

Write content

Fill in the content fields: subject, headline, body, image URL, CTA text, and CTA URL. Use {{variable}} placeholders for dynamic content.
6

Configure personalization

Add personalization variables that map placeholders to data sources with fallback values.
7

Set A/B variant (optional)

If running an experiment, assign a variant role (control, variant_a, variant_b) and traffic weight.
8

Set constraints (optional)

Configure frequency cap and cooldown hours for this creative.
9

Save

Save the creative. It is available for use in Decision Flows immediately.

API Reference

Create a Creative

Request body:
Response (201 Created):

List Creatives

Filter by offerId or channelId using query parameters.

Update a Creative

Pass the creative id in the JSON body alongside the fields to update.

Delete a Creative

Next Steps

Offers

Define the offers that creatives present to customers.

Channels

Configure the delivery mechanisms for your creatives.

Decisioning Gates

Control who is eligible to receive each offer.

Decision Flows

Build pipelines that select and rank creatives for delivery.