Skip to main content
POST
/
api
/
ads
/
generate-draft
curl -X POST "https://app.neariq.io/api/ads/generate-draft" \
  -H "Content-Type: application/json" \
  -H "Cookie: <dashboard session cookie>" \
  -d '{
    "platform": "google",
    "mode": "simple",
    "creativeAudio": {
      "voice": "warm",
      "music": "upbeat",
      "speechPace": "normal"
    }
  }'
Ads endpoints power the dashboard campaign builder. They use the signed-in app session, not X-NearIQ-Key. Ad campaign creation requires a plan with ad campaign access. Drafts are saved for review; users remain in control before publishing.
NearIQ drafts campaign structure, copy, budgets, and targeting from stored business and competitor context. Users should review and edit all ad content before publishing.

POST /api/ads/generate-draft

Generates an ad campaign draft for a selected platform and mode.
curl -X POST "https://app.neariq.io/api/ads/generate-draft" \
  -H "Content-Type: application/json" \
  -H "Cookie: <dashboard session cookie>" \
  -d '{
    "platform": "google",
    "mode": "simple",
    "creativeAudio": {
      "voice": "warm",
      "music": "upbeat",
      "speechPace": "normal"
    }
  }'
platform
string
google or facebook. Defaults to google.
mode
string
simple or advanced. Defaults to simple.
creativeAudio
object
Optional voice and music preference for video creative.
{
  "draft": {
    "platform": "google",
    "name": "Austin Pilates Intro Offer",
    "objective": "Drive bookings for intro classes in South Austin.",
    "keywords": ["pilates austin", "reformer pilates near me"],
    "headlines": ["Try Pilates Today", "Austin Reformer Class"],
    "descriptions": ["Book a starter class with coached support."],
    "dailyBudget": 25,
    "duration": "2 weeks",
    "targeting": "5-mile radius around South Austin"
  }
}

GET /api/ads/google/campaigns

Lists saved Google campaign drafts for the active business.
curl "https://app.neariq.io/api/ads/google/campaigns" \
  -H "Cookie: <dashboard session cookie>"
{
  "campaigns": [
    {
      "id": "fb079bd8-2671-4f2c-965f-a6f0a05254b8",
      "platform": "google",
      "name": "Austin Pilates Intro Offer",
      "daily_budget": 25,
      "created_at": "2026-05-30T18:00:00.000Z"
    }
  ],
  "configured": true,
  "accountConnected": false
}

POST /api/ads/google/campaigns

Saves a Google campaign draft.
curl -X POST "https://app.neariq.io/api/ads/google/campaigns" \
  -H "Content-Type: application/json" \
  -H "Cookie: <dashboard session cookie>" \
  -d '{
    "name": "Austin Pilates Intro Offer",
    "headlines": ["Try Pilates Today", "Austin Reformer Class"],
    "descriptions": ["Book a starter class with coached support."],
    "keywords": ["pilates austin", "reformer pilates near me"],
    "dailyBudget": 25,
    "targetingLocation": "Austin, TX"
  }'
{
  "status": "draft_created",
  "configured": true,
  "accountConnected": false,
  "message": "Campaign draft saved. Connect your Google Ads account to publish.",
  "campaign": {
    "id": "fb079bd8-2671-4f2c-965f-a6f0a05254b8",
    "platform": "google",
    "name": "Austin Pilates Intro Offer"
  }
}

GET /api/ads/meta/campaigns

Lists saved Facebook and Instagram campaign drafts for the active business.
curl "https://app.neariq.io/api/ads/meta/campaigns" \
  -H "Cookie: <dashboard session cookie>"
{
  "campaigns": [
    {
      "id": "79a5ec3e-006d-407a-85c7-4cd5775d9f09",
      "platform": "facebook",
      "name": "New Member Trial",
      "daily_budget": 20
    }
  ],
  "configured": true,
  "accountConnected": false
}

POST /api/ads/meta/campaigns

Saves a Facebook or Instagram campaign draft.
curl -X POST "https://app.neariq.io/api/ads/meta/campaigns" \
  -H "Content-Type: application/json" \
  -H "Cookie: <dashboard session cookie>" \
  -d '{
    "name": "New Member Trial",
    "headlines": ["Start Strong This Week"],
    "descriptions": ["Join a coached small-group class near you."],
    "dailyBudget": 20,
    "targetingInterests": ["fitness", "wellness"],
    "placements": ["facebook_feed", "instagram_feed"]
  }'
{
  "status": "draft_created",
  "configured": true,
  "accountConnected": false,
  "message": "Campaign draft saved. Connect your Meta Business Manager to publish.",
  "campaign": {
    "id": "79a5ec3e-006d-407a-85c7-4cd5775d9f09",
    "platform": "facebook",
    "name": "New Member Trial"
  }
}

GET /api/ads/google/performance

Returns stored Google ads freshness and performance summaries for the active business.
curl "https://app.neariq.io/api/ads/google/performance?refresh=1" \
  -H "Cookie: <dashboard session cookie>"
{
  "platform": "google",
  "status": "fresh",
  "metrics": {
    "impressions": 4200,
    "clicks": 188,
    "spend": 260
  }
}

GET /api/ads/meta/performance

Returns stored Facebook and Instagram ads freshness and performance summaries for the active business.
curl "https://app.neariq.io/api/ads/meta/performance?refresh=1" \
  -H "Cookie: <dashboard session cookie>"
{
  "platform": "meta",
  "status": "stale",
  "metrics": {
    "impressions": 3200,
    "clicks": 101,
    "spend": 180
  }
}

Errors

StatusMeaning
400Invalid JSON or missing campaign fields
401Missing dashboard session
403Plan does not include ad campaigns
404No active business found
500Draft generation or save failed
503Connected ad account support is not configured