This article will cover the following:
What Is an Offer?
An offer is the central building block of CAKE. It represents a campaign an advertiser wants affiliates to promote — defining the destination URL, payout structure, tracking parameters, and eligibility rules that govern how affiliates earn commissions. Every conversion, click, and impression in CAKE traces back to an offer.
Think of an offer as a job posting: the advertiser lists what they need done and what they'll pay, and affiliates apply to take on the work.
How to Create and Configure an Offer
To create an offer, navigate to Offers in your CAKE dashboard and click Add Offer.
- Name your offer. Use a clear, descriptive name affiliates will immediately understand — e.g. "US Health Insurance Lead — Desktop" rather than "Offer 47."
- Set the payout. Choose a flat CPA rate or percentage of sale. You can also set different payout rates for individual affiliates later.
- Enter the offer URL. The destination where affiliate traffic lands. Make sure it is live and tested before activating.
- Configure expiration (optional). Set an end date for seasonal promotions. CAKE automatically moves the offer to Expired status when the date passes.
- Add a description and creative assets. Include allowed traffic sources, geographic restrictions, and any promotional guidelines.
- Set status to Active when ready for affiliates to apply and send traffic.
Always test your offer URL before activating. A broken destination means lost traffic and damaged affiliate relationships.
Offer Statuses
| Status | What it means | Affiliates can apply? | Traffic allowed? |
|---|---|---|---|
| Active | Offer is live and open for promotion. | Yes | Yes |
| Paused | Temporarily stopped. No new conversions recorded. | No | No |
| Expired | End date has passed or manually expired. | No | No |
| Pending | Created but not yet live. | No | No |
How Affiliates Find and Apply for Offers
- Browse the Offer Marketplace or Offer List in your affiliate portal.
- Review the offer details — payout amount, allowed traffic sources, geographic restrictions, and creative assets.
- Click Apply or Request Access. Some offers auto-approve; others require manual review.
- Once approved, CAKE generates your unique affiliate tracking link. Use this link — not the raw offer URL — in all your promotions.
- Monitor performance from your Reports dashboard.
Always use the tracking link CAKE provides. Bypassing it means your conversions won't be recorded and you won't receive credit.
Offer Caps
Offer caps limit the number of conversions or total payout an offer will accept before automatically stopping traffic. They are the primary budget-protection tool for advertisers.
| Cap Type | What it limits | Common use case |
|---|---|---|
| Daily cap | Conversions per day. Resets at midnight. | High-volume campaigns needing daily spend control. |
| Monthly cap | Conversions per calendar month. | Budget-controlled monthly campaigns. |
| Overall cap | Lifetime conversions for the offer. | Limited-run or fixed-budget promotions. |
| Revenue cap | Total payout amount rather than conversion count. | CPA campaigns with fixed advertiser budgets. |
API: Offers Endpoints
Use the Offers API to create, retrieve, and update offers programmatically. All endpoints require your api_key as a query parameter.
List Offers
| Parameter | Type | Required | Description |
|---|---|---|---|
| offer_id | integer | No | Filter to a single offer by ID. |
| offer_status | string | No | Filter by status: active, paused, or inactive. |
| vertical_id | integer | No | Filter by vertical category. |
| advertiser_id | integer | No | Filter by advertiser. |
| start_at_row | integer | No | Row offset for pagination. Default: 0. |
| row_limit | integer | No | Max offers to return. Default: 25. |
Sample request
GET https://yourdomain.cake.com/api/2/offers.json
?api_key=YOUR_API_KEY
&offer_status=active
&vertical_id=3
&start_at_row=0
&row_limit=25Sample response
{
"request_status": "Success",
"offers": [{
"offer": {
"offer_id": 12345,
"offer_name": "Premium Credit Card Signup",
"offer_status": "active",
"advertiser_id": 88,
"payout": 45.00,
"payout_type": "CPA",
"revenue": 55.00
}
}],
"total_rows": 1
}Create Offer
| Parameter | Type | Required | Description |
|---|---|---|---|
| offer_name | string | Yes | Display name for the offer. |
| advertiser_id | integer | Yes | ID of the advertiser who owns this offer. |
| vertical_id | integer | Yes | ID of the vertical category. |
| offer_url | string | Yes | Destination URL. Supports CAKE sub ID macros. |
| offer_status | string | No | Initial status: active, paused, or inactive. Default: inactive. |
| payout | decimal | No | Flat payout amount per conversion. |
| payout_type | string | No | CPA, CPC, or CPM. |
| revenue | decimal | No | Revenue amount billed to advertiser. |
| session_hours | integer | No | Cookie window in hours. |
| expiration_date | date | No | Offer end date. Format: YYYY-MM-DD. |
Sample request
POST https://yourdomain.cake.com/api/2/offer.json
{
"api_key": "YOUR_API_KEY",
"offer_name": "Premium Credit Card Signup",
"advertiser_id": 88,
"vertical_id": 3,
"offer_url": "https://acmefinancial.com/apply?sub_id={sub_id}",
"payout": 45.00,
"payout_type": "CPA",
"revenue": 55.00,
"session_hours": 24
}Sample response
{
"request_status": "Success",
"offer": {
"offer_id": 12346,
"offer_name": "Premium Credit Card Signup",
"offer_status": "inactive"
}
}If you have any questions, please reach out to your dedicated CAKE Client Success Manager/Account Manager or contact the CAKE Support Team at support@getCAKE.com.