campaigns

Create a campaign

Creates a campaign in the active Space. New campaigns start PAUSED and stay local until a sync pushes them to a platform, so creating one never spends money.

Required: name and budget (a daily amount in currency). Set businessId to link the campaign to a business, and _platformBudgets to choose which platforms it runs on; with no split it exports to every connected platform at the full budget.

adSchedule accepts a preset name or a structured weekly schedule (see CampaignAdScheduleField). For human-friendly schedule input use Set the ad schedule after creating.

The response is the stored campaign, including delivery and deliverySummary.

Errors

  • 400 VALIDATION_ERROR: the body failed validation; details.issues[] names each field.
  • 400 AD_SCHEDULE_TOO_MANY_WINDOWS: more than 84 schedule windows.
post/api/v1/campaigns

Request

  • Base URL: https://api.growomat.com
  • URL: https://api.growomat.com/api/v1/campaigns
  • Auth: HTTP bearer

Headers

X-Space-Idstring

The Space to work in, for example spc_8f3aK2. Omit it to use your personal Space. List your Spaces returns the ids. A Space that does not exist returns 404 SPACE_NOT_FOUND; one you are not a member of returns 403 NOT_A_MEMBER.

Request body

_nativeNativeExtensions

Settings that exist on one platform only, keyed by platform id (for example google-ads). Each value is a free-form object that is stored and returned exactly as sent; keys Growomat does not know are kept. Absent by default.

Keys read by platforms whose ad is a post (on the ad, with the campaign as fallback): postType (TEXT or IMAGE), postTitle, postBody, callToAction, imageUrl, videoUrl, videoThumbnailUrl, carouselCards ([{ imageUrl, destinationUrl }]), communities, interests.

Delivery keys read on the campaign: objective, goalType, startTime, endTime, optimizationGoal, conversionPixelId.

_platformBudgetsPlatformBudgets

Which platforms this campaign runs on, and how much of the budget each one gets, keyed by platform id (reddit-ads, microsoft-ads, and so on). This is how a campaign is scoped to a platform.

Absent is not zero. A campaign with no entries here exports to every connected platform at the full campaign budget: a 30-a-day campaign on three platforms authorises up to 90 a day. Set an entry for each platform you actually want to run on.

percentage is computed from amount on every write; sending it is ignored. The split is checked against the campaign budget and rejected when it exceeds it.

namestring required

Campaign name, shown in the app and on the platforms.

budgetnumber required

Daily budget, in currency.

currencystring

ISO 4217 currency code of budget, for example EUR or USD.

status'DRAFT' | 'ENABLED' | 'PAUSED' | 'REMOVED'

PAUSED (the default) is safe: the campaign exists on the platforms after a sync but does not serve. ENABLED serves after the next sync. DRAFT is an unconfirmed build from the app's campaign builder and is never synced until it is confirmed.

type'SEARCH' | 'DISPLAY' | 'VIDEO' | 'SHOPPING' | 'PERFORMANCE_MAX'

The campaign type. It decides which ad formats and which asset roles apply.

networksstring

Platform network setting, as the platform names it.

languagesstring

Language of the audience, as a language code.

businessIdstring

The business this campaign advertises. Generated copy and the brand voice come from it.

goalstring

What the campaign should achieve, in your own words. Used when Growomat drafts ads and keywords for it.

locationIntent'PRESENCE' | 'PRESENCE_OR_INTEREST'

Who counts as being in the targeted places. PRESENCE (default): people who are in, or regularly in, those places. PRESENCE_OR_INTEREST: also people elsewhere who search about them. The second is wider and much less qualified; it is the platforms' own default, which this API deliberately does not inherit.

customLabelsstring[]

Up to ten free-form labels for your own grouping and reporting.

adScheduleUseSearcherTimeZoneboolean

Interpret the ad schedule in the searcher's local time zone instead of the account time zone, on platforms that support it (Microsoft Advertising). Ignored elsewhere.

trackingUrlTemplatestring

Tracking template applied to every ad in the campaign, for example {lpurl}?src=ads.

finalUrlSuffixstring

Query string appended to every final URL in the campaign.

urlCustomParametersobject

Custom {_name} parameters available to tracking templates.

Response

OK. The result is in data. List responses also carry meta with nextCursor and total.

dataunknown required

Changes

No recorded changes to this operation across all 1 revision of this API.