Get Google Ads campaign launch draft

Changed on

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Returns a Performance Max campaign the builder chat prepared for someone to review before launch.

The chat saves a draft when you ask it to set up a campaign and choose a budget. It holds the copy, pictures, budget and locations as the chat left them. Nothing in it is checked against Google until launch, so a draft can be incomplete: a missing logo or landing page is common. Review it, fill in what is missing, and use its fields to build the request for Launch Google Ads campaign.

launched_at only records a launch from the draft's review page in the builder. Launching through the API doesn't mark the draft, so launched_at stays null and nothing stops the same draft from being launched again. Keep track of which drafts you have launched yourself.

Only a draft for the app in the path is returned. Any other ID returns a 404.

This is limited to 120 requests a minute per app, shared with List Google Ads advertising languages. Some workspaces have a different limit.

<Note>This endpoint accepts a personal API key from anyone who can view the app, including a read-only key. Workspace API keys are not authorized for it and are rejected with a 403.</Note>

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>

get/api/apps/{app_id}/google-ads/campaign-launch-drafts/{draft_id}

Request

  • Base URL: https://app.base44.com
  • URL: https://app.base44.com/api/apps/{app_id}/google-ads/campaign-launch-drafts/{draft_id}
  • Auth: HTTP bearer

Path parameters

app_idstring required

ID of the app to advertise.

draft_idstring required

ID of the draft. The builder chat returns it as draft_id when it saves a launch draft, and its review link carries it as ?draft=.

Response

The draft as the builder chat saved it.

idstring required

ID of the draft.

app_idstring required

ID of the app the draft is for.

campaign_namestring required

Name for the campaign. Empty when the chat did not choose one.

business_namestring required

Business name to show in the ads. Empty when the chat did not set one.

landing_page_urlstring required

Page the ads send clicks to. Empty when the chat did not set one.

phone_numberstring required

Phone number for a call button, in a form Google can place. Empty when there is none, including when the chat suggested a number Google couldn't place.

daily_budget_microsinteger required

Daily budget in micros of currency_code, so 15000000 is 15.00.

currency_codestring required

Currency of daily_budget_micros, the currency the account is charged in, as a three-letter ISO 4217 code. It can differ from the currency of the Google Ads account's own budget.

headlinesstring[] required

Headlines, up to 15.

long_headlinesstring[] required

Long headlines, up to 5.

descriptionsstring[] required

Descriptions, up to 5.

geo_targetsstring[] required

Locations to target, as Google geo target constants. Empty means everywhere.

languagestring required

Two-letter code of the language the ads are written in.

launched_atstring date-time nullable

When someone launched a campaign from this draft's review page in the builder, or null while nobody has. Launching through the API doesn't set it.

created_datestring date-time required

When the chat saved the draft.

Example response

{
  "id": "68c2d1e5f8a92e004d56b2a3",
  "app_id": "6820f3a4e7b91d003c45a1f2",
  "campaign_name": "Spring sale in Berlin",
  "business_name": "Oakline Furniture",
  "landing_page_url": "https://oakline.base44.app",
  "phone_number": "+493012345678",
  "daily_budget_micros": 15000000,
  "currency_code": "EUR",
  "headlines": [
    "Handmade oak tables",
    "Built in Berlin"
  ],
  "long_headlines": [
    "Solid oak dining tables, made to order in Berlin"
  ],
  "descriptions": [
    "Visit our showroom or order online with free delivery."
  ],
  "images": [
    {
      "field_type": "MARKETING_IMAGE",
      "url": "https://storage.base44.com/gads-assets/b7f3a1c8-landscape.png"
    }
  ],
  "logos": [
    {
      "field_type": "MARKETING_IMAGE",
      "url": "https://storage.base44.com/gads-assets/logo.png"
    }
  ],
  "geo_targets": [
    "geoTargetConstants/1003854"
  ],
  "targeted_locations": [
    {
      "name": "Berlin",
      "resource_name": "geoTargetConstants/1003854"
    }
  ],
  "language": "de",
  "launched_at": "2026-09-14T10:20:00Z",
  "created_date": "2026-09-14T10:02:00Z"
}

Changes