Create campaign optimization
Create a new campaign optimization. Required permission: write:analysis.
Top-level optional field (Google Ads only):
promotion_type(optional): Optimisation intent. Values:Product,Service,Brand(case-insensitive). Stored ascampaign.intent(lowercase). Ignored for TikTok.
Google Ads enrichment: On creation, Jarvis fetches live
metadata from Google Ads for each asset group and stores it in
campaign.asset_group_info (ad strength, status, search themes
count, campaign name). The client only needs to send
asset_group_info with name; the backend fills the rest.
Campaign Field Structure (campaign JSON)
The campaign field is a free-form JSON object whose structure depends on the platform.
Google Ads (PMax):
Fields:
customer_id(string): Google Ads customer ID, format"manager_id/account_id"or"account_id".asset_group_ids(string[]): Asset group IDs selected for optimization.intent(string, optional): Optimization intent (product,service,brand). Set frompromotion_type.asset_group_info(object): Mapping of asset group ID to metadata. Enriched with live Google Ads data at creation:name(string): Asset group name.ad_strength(string): Google Ads enum —EXCELLENT,GOOD,AVERAGE,POOR,PENDING,UNKNOWN,UNSPECIFIED,NO_ADS.ad_strength_score(int): Numeric score — EXCELLENT=25, GOOD=20, AVERAGE=15, POOR=10, all others=0.ad_strength_max(int): Always 25 (max possible score).search_themes_count(int): Number of search theme signals currently on the asset group in Google Ads.campaign_name(string): Parent PMax campaign name.status(string): Asset group status —ENABLED,PAUSED,REMOVED, etc.
Use POST .../refresh to re-fetch asset_group_info from Google Ads without re-running the optimization pipeline.
TikTok:
Fields:
advertiser_id(string): TikTok advertiser account ID.campaign_id(string): TikTok campaign ID.ad_group_ids(string[]): Ad group IDs to optimize (non-empty).ad_group_names(object, optional): Mapping of ad group ID to ad group name. Supply this at creation time so the activation page can display names without making additional TikTok API calls.
TikTok campaign objects do not include asset_group_info or enrichment fields.
Body
ar- arda- dade- deen- enes- eseu- eufi- fifil- filfr- frhe- hehi- hihu- huid- idit- itja- jako- konl- nlno- nopl- plpt- ptro- rosv- svth- thtr- trur- urvi- vizh- zhzh-TW- zh TWzh-HK- zh HK
ar, da, de, en, es, eu, fi, fil, fr, he, hi, hu, id, it, ja, ko, nl, no, pl, pt, ro, sv, th, tr, ur, vi, zh, zh-TW, zh-HK Response
The created campaign optimization.
ar- arda- dade- deen- enes- eseu- eufi- fifil- filfr- frhe- hehi- hihu- huid- idit- itja- jako- konl- nlno- nopl- plpt- ptro- rosv- svth- thtr- trur- urvi- vizh- zhzh-TW- zh TWzh-HK- zh HK
ar, da, de, en, es, eu, fi, fil, fr, he, hi, hu, id, it, ja, ko, nl, no, pl, pt, ro, sv, th, tr, ur, vi, zh, zh-TW, zh-HK,