Skip to main content

How to Launch a Campaign with the API

This page walks through launching a banner campaign entirely through the Eskimi DSP API, from the creative to the first report. It is for developers and advertisers who already have an access token; if you don't, start with How to Use the API.

Every request below needs the header Authorization: Bearer {ACCESS_TOKEN}. All parameters are described in the API documentation: https://dsp-api.eskimi.com/docs/api/v1/

1. Look Up the IDs You Need

Campaign settings use IDs, not names. Get them from the reference data endpoints first, for example:

  • Countries: GET /country/get. Campaigns use the two-letter lowercase code, e.g. lt.

  • Operators: GET /operators/get/{country}

  • Device types, brands and operating systems: GET /device/types/get, /device/brands/get, /device/oses/get

  • Exchanges and sites: GET /exchanges/get, GET /sites/get

2. Create a Creative Set

POST /creative/sets/create with advertiserId and a title. The response returns the creative set ID.

3. Create the Creative and Upload Its Image

  1. Create the creative: POST /creative/create with advertiserId, creativeSetId and a title. The response returns the creative ID.

  2. Upload the image: POST /creative/banner/upload with advertiserId, creativeId and creativeFile, a base64-encoded zip of .png, .jpg or .gif files.

The API uploads banner and native assets. Video creatives are uploaded in the DSP first; a video campaign can then be created through the API.

4. Create the Campaign

POST /campaign/banner/create. To submit the campaign for review, send at least:

FieldExample
advertiserId, name1234, "LT_Spring_Sale_Banner"
dates{"from": "2026-11-01", "to": "2026-11-30"}
country"lt"
budget{"type": "total", "amount": 5000, "pacing": 1} (pacing: 1 = Even, 0 = None)
bidWithin the advertiser's minimum and maximum bid
creativeSetIds[5678]
clickUrl, adDomain"https://example.com/sale", "example.com"

Add targeting with the IDs from step 1. The response returns the campaign ID.

Not ready to submit yet? Send "status": "draft". A draft needs only advertiserId and name, and is not reviewed until it is completed.

5. Review and Approval

A submitted campaign has the status pending until it is reviewed. Check it with GET /campaign/status/get/{campaignId}. The possible statuses are pending, ready, active, stopped, rejected, daily_cap, limit_budget, expired_date and deleted. For what is reviewed and how long it takes, see Campaign Approval for Self-Service Accounts.

6. Start, Stop and Optimise

  • Start or stop the whole campaign: POST /campaign/start/{campaignId}, POST /campaign/stop/{campaignId}

  • Start or stop delivery on single exchanges, creatives, operating systems, browsers, operators, sites or apps, placements or packages: POST /optimisation/action, up to 10 campaigns per call. Each option must be enabled for the advertiser.

  • Change only the budget pacing: POST /campaign/{campaignId}/pacing with {"pacing": 1} (Even) or {"pacing": 0} (None). Not available for campaigns with a daily budget.

7. Pull the Report

Use GET /report/campaigns/get for daily delivery, the split reports (sites, exchanges, creatives and others) for detail, and GET /report/totals for period totals including reach.

Summary

Look up IDs, create the creative set, creative and image, create the campaign, wait for review, then manage and report on it through the API. To try each call without writing code, use the API Postman Template.