> For the complete documentation index, see [llms.txt](https://docs.moleculedata.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.moleculedata.com/launchpad.md).

# Launchpad

Bulk-launch Meta, Google (Demand Gen and Performance Max) and TikTok ads from your creative library in minutes.

**Launchpad** turns launching ads on Meta, Google and TikTok from a click-through chore into a spreadsheet-style bulk operation: load creatives, fill in the copy, pick the ad sets, and launch dozens of ads in one go.

Testing more creatives is the most reliable way to find ads that work, and the reason most shops do not do it is the time it takes to set each one up. Launchpad removes that cost. Creatives made in [BuilderPad](https://docs.moleculedata.com/builderpad) arrive in your library with one click — see [From idea to live ad](https://docs.moleculedata.com/running-your-ads/from-idea-to-live-ad) for the whole path.

{% hint style="info" %}
Launchpad supports **Meta (Facebook & Instagram)**, **Google Ads** (Demand Gen and Performance Max) and **TikTok**. Pick the channel at the top of the page. Meta ads are created in your ad account and set to Active; everything created in Google Ads is created **paused**; on TikTok you choose Active or Paused per ad, and new campaigns are created paused. The sections below cover Meta; Google and TikTok have their own sections: [Google](#google-ads-demand-gen-and-performance-max) and [TikTok](#tiktok).
{% endhint %}

## Connect and pick targets

1. Click **Connect** to grant Launchpad permission to create and manage ads for your Pages and ad accounts (Facebook Login for Business). You can disconnect at any time.
2. Choose your **Ad account**, **Default Page**, and **Default Instagram** identity — these pre-fill every new row.

## Build your launch

**Load creatives** opens your creative library — select existing assets or **upload** new images and videos, and each selected creative becomes a row in the launch table.

Each row is one ad (or several — see below) with columns for **Creative, Ad name, Page, Instagram, Ad set, Primary text, Headline, Description, Link, CTA, and UTM parameters**. Selecting multiple ad sets on a row creates one ad per ad set.

* **Bulk edit** — select rows and edit any field across all of them: **Set value** applies one value everywhere; **Find & replace** rewrites matching text with a per-row preview before saving.
* **Templates** — save your standard copy as **Ad Copy templates** (see below) and apply one to all or selected rows, field by field.

{% hint style="success" %}
Put your Molecule Data UTM parameters in your default Ad Copy template. Every new row then starts with them filled in, so each ad you launch is tracked from its first click and shows up as Valid on the [UTM Tracking page](https://docs.moleculedata.com/tracking-ad-channels/utm-tracking-page).
{% endhint %}

## Ad types: Single, Multi and Optimized

Every row carries a type chip in the last column — **Single**, **Multi** or **Optimized**. It decides what Meta builds from that row. Switching type keeps your copy; only the media handling changes.

| Type                 | What Meta builds                                                                                                                                   | Use it when                                                                                                          |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| **Single**           | One image or video, with your copy.                                                                                                                | The everyday ad — still the right choice for most launches.                                                          |
| **Multi** (flexible) | One ad carrying the same creative in several sizes, with you deciding which size goes to which placement.                                          | You have the ad cut to different aspect ratios and want Feed, Stories/Reels and in-stream each to get the right one. |
| **Optimized**        | One ad holding a pool of up to 10 images and videos. Meta mixes them with your copy and shows each person the combination it expects to work best. | You want to test several genuinely different creatives inside a single ad, instead of launching one ad each.         |

### Copy variations — on all three types

Every text field — **Primary text**, **Headline** and **Description** — has a **+ Add variation** link. Add up to **5 variations per field**. Meta rotates them against your media and settles on the combinations that perform.

Leave one value in a field and the ad behaves exactly as it always did: variations are additive, never required.

### Multi: which size goes where

On a Multi row each media tile gets a **ratio** dropdown — 1:1, 4:5, 9:16, 16:9 or 1.91:1. Launchpad sends each ratio to the placements that actually need that shape (square and 4:5 to the feeds, 9:16 to Stories and Reels, 16:9 to in-stream and search), and any placement you haven't supplied falls back to your first media.

That mapping is what keeps Ads Manager from flagging *"Your ad may not deliver to this placement"* — the warning you get when one shape is pushed everywhere.

### Optimized: media groups

On an Optimized row each tile also has a group dropdown, set to **No group** by default.

Pick **+ New group** for two or more tiles that are *the same design in different sizes* — a 1:1 and a 9:16 cut of one ad, say. Meta then treats them as a single creative available in several sizes rather than as separate options to test against each other, and shows them in Ads Manager as a media group. Tiles you leave ungrouped stay separate creatives, and a group with only one tile is ignored.

{% hint style="info" %}
Grouping only ever happens when you ask for it — nothing is bundled automatically. If a grouped ad looks wrong in the Ads Manager preview, set its tiles back to **No group** and relaunch; the ad is identical apart from the grouping.
{% endhint %}

### Which ad sets a row can accept

Ad sets that cannot take a row are greyed out in its **Ad set** picker. In practice there is one rule: an ad set you created in Ads Manager as a **Dynamic creative** ad set accepts **Optimized** rows only. Every other ad set works with all three types.

### New or duplicated ad sets

**New campaign / ad set** — in the toolbar, or **+ New campaign / ad set** at the bottom of a row's Ad set picker — creates a Meta campaign and ad set without leaving Launchpad, or a new ad set inside one of your existing campaigns. Everything it creates is **paused**.

**Objective and performance goal** — pick **Sales**, **Leads**, **Traffic** or **Awareness**. Sales and Leads optimize for a pixel event, so they ask for a pixel, a conversion event and attribution. Traffic and Awareness need no pixel; instead you choose a **Performance goal**:

* **Traffic** — **Maximize number of link clicks** (default), **landing page views**, or **daily unique reach**.
* **Awareness** — **Maximize reach of ads** (default), **number of impressions**, **ad recall lift**, or **ThruPlay views**.

With a reach or ThruPlay goal you can set a **Frequency cap** — the most times one person sees your ads, e.g. **2 times every 7 days** (1–90 each). It starts at 2 every 7 days for Awareness reach and once a day for daily unique reach; ThruPlay has no cap until you set one.

**Bid strategy** — the same four options as Ads Manager:

* **Highest volume** (default) — Meta gets as many results as it can for the budget.
* **Cost per result goal** — enter the average cost per result you want, in the ad account's currency.
* **Bid cap** — enter the most Meta may bid in any auction.
* **ROAS goal** — Sales only. Enter the minimum return on ad spend, e.g. **2.5**; the ad set then optimizes for purchase value rather than number of purchases.

If you add the ad set to an existing campaign that holds the budget, that campaign's bid strategy applies to all its ad sets — the picker is locked to it ("Set on the campaign") and you only enter the amount.

**Locations** — target whole countries, cities, or both. Under **Cities**, search for a city and click a result to add it; each result shows its region and country so towns with the same name are easy to tell apart. The radius next to the search applies to every picked city: **City only**, or **+17**, **+25**, **+40** or **+80 km** around it. An ad set needs at least one country or one city. Don't pick a city inside a country you've also picked — Meta refuses overlapping locations, so remove either the country or the city.

To copy an ad set you already have, choose **Use existing** for the campaign, then switch the ad set section to **Duplicate existing**. Pick the source ad set and give the copy a name (it is prefilled as "*source* - Copy"). Meta duplicates the ad set inside the same campaign with all of its settings — targeting, placements, bid strategy, budget, schedule and attribution — **paused and with no ads in it**. The copy is selected into the row you opened it from, so the ads in your table launch into it. Open it from a row that already has one ad set selected and that ad set is preselected as the source.

## Ad Copy templates

The **Ad Copy** tab manages reusable copy templates — name, primary text, headline, description, CTA, link, display link, and UTM parameters. Mark one as **default** and every new launch row starts pre-filled. Duplicate a template to iterate on variants.

Templates carry **variations** too: primary text, headline and description each take up to 5 entries via **+ Add variation**. Applying such a template to a row fills in all of them at once, so a full multi-variation ad is one click.

## Creative Enhancements

The **Enhancements** tab controls Meta's creative enhancement features per format (Image, Video, Carousel, Collection, Catalog Carousel, Flexible Ads). Whatever you enable here is applied to every ad you launch.

## Drafts

**Save draft** stores the whole launch table to come back to later — including each row's type, its media pool and groups, and every copy variation — and unsaved work is auto-restored if you navigate away. The **Drafts** tab lists saved drafts with their ad account and ad count.

## Launch and monitor

When every row is complete, hit **Launch N ads** and confirm. The **Launched Ads** tab tracks every launch with statuses **Queued → Processing → Live** (or **Partial / Failed / Stopping / Stopped**).

The launch detail page updates automatically while ads are being created, showing each ad's stage (uploading creative, processing video, publishing…) and any per-ad error from Meta. From there you can:

* **Stop launch** — halts after the current ad; ads already created stay live on Meta.
* **Retry failed rows** — re-launches only the ads that failed, as a follow-up launch.

## Creative library

The **Creatives** tab is your asset library: upload images and videos, see each asset's dimensions, size, and whether it has been launched yet, and delete what you no longer need. Creatives sent from BuilderPad's **Selects** tab land here too.

## Google Ads: Demand Gen and Performance Max

Click **Google** in the channel selector at the top of Launchpad to launch **Demand Gen ads** and **Performance Max (PMax) asset groups** the same way: one row per creative, filled in like a spreadsheet, launched in one go.

{% hint style="warning" %}
**Everything Launchpad creates in Google Ads is created paused** — campaigns, ad groups, ads and asset groups. Nothing spends until you switch it on in Google Ads.
{% endhint %}

### Before your first launch

1. Connect Google Ads under **Integrations**, then choose the **Google Ads account** at the top of the page.
2. Fill in the **Google brand** box once: **Business name** (up to 25 characters), a **Business description** (used to write copy), a **Square logo** (1:1, at least 144×144 — required) and, optionally, a **Wide logo 4:1**. If a logo is the wrong shape, **Pad to square** / **Pad to 4:1** adds a background around it — the logo itself is never stretched or regenerated. **Import from BuilderPad** copies your BuilderPad business name and logo.

### Rows

Choose **New rows: Demand Gen**, **PMax** or **both**, then **Load creatives**. Each row is one of:

* **Demand Gen ad** — one ad in the **Ad group** you pick. Rows with images become an image ad; rows with YouTube videos become a video ad. One ad cannot mix images and videos, so use two rows.
* **PMax asset group** — one asset group in the **PMax campaign** you pick, with an optional **Audience signal**.

Pick an existing ad group or campaign in each row, or create a new one with **+ New** (see below). If the campaign you pick has no Molecule tracking template, the row warns you: those ads would launch fine but attribution would not see them.

### What each row needs

|                         | Headlines                | Long headlines | Descriptions                          |
| ----------------------- | ------------------------ | -------------- | ------------------------------------- |
| **Demand Gen — images** | 1–5, up to 30 characters | —              | 1–5, up to 90                         |
| **Demand Gen — video**  | 1–5, up to 40            | 1–5, up to 90  | 1–5, up to 90                         |
| **PMax**                | 3–15, up to 30           | 1–5, up to 90  | 2–5, up to 90 (at least one up to 60) |

Enter one text per line; duplicates are not allowed. Every row also needs a **Final URL**, and Demand Gen image ads a **Call to action** (default **Shop now**).

* **Images** — PNG, JPG or GIF up to 5 MB, in 1.91:1, 1:1, 4:5 or (Demand Gen only) 9:16. Demand Gen needs at least one 1.91:1 or 1:1 image; PMax needs at least one 1.91:1 **and** one 1:1.
* **Resize to fit placements** — tick it and Launchpad uses AI to make the missing 1.91:1, 1:1 and 4:5 versions from your image. Generated images carry an **AI** badge; untick to remove them and go back to your original.
* **Videos** — paste YouTube links (up to 5 for Demand Gen, 15 for PMax). Uploading video files is not supported.

### Writing the copy

* **Suggest copy** on a row writes headlines, long headlines and descriptions that fit Google's limits. Under **Write copy from**, choose your **Business description**, one of your saved **Ad Copy templates**, or one of your **Meta drafts**, press **Generate**, tick the texts you like and **Add selected**.
* **Make Google draft** — on a Meta launch table or a Meta draft — turns it into a Google draft in one step: your images are reused, the Meta link becomes the Final URL and your Meta copy is rewritten to Google's limits. Pick the ad groups and campaigns, check the texts, and launch. (Videos are not carried over.)

### New campaigns

**New campaign** (or **+ New** on a row) creates a campaign without leaving Launchpad:

* **Campaign type** — Demand Gen, Performance Max, or both.
* **Daily budget per campaign**.
* **Bidding** — **Maximize conversions** (with an optional **Target CPA**) or **Maximize conversion value** (with an optional **Target ROAS %**, e.g. 350).
* **Countries** and **Languages**.
* For Demand Gen: the ad group name, an optional audience, and **Optimized targeting** (on by default — Google may reach people beyond your audience).
* **Tracking template** — Molecule's template is filled in for you, so ads in the new campaign are tracked from the first click.

Press **Validate** to have Google check the setup without creating anything, then **Create**. A PMax campaign needs the Google brand box filled in first.

### Launch and monitor

**Launch N** queues the rows and opens the launch page, where each row shows **Created (paused)** with its Google ID, or the error Google returned. **Retry failed rows** re-sends only the failures, and checks Google first so nothing is created twice. Google launches appear under **Launched** with a **Google** label, and Google drafts under **Drafts**.

{% hint style="info" %}
Suggest copy, Make Google draft and image resizing have daily limits per company. If you reach one, it resets the next day.
{% endhint %}

## TikTok

Click **TikTok** in the channel selector at the top of Launchpad to launch TikTok ads the same way: one row per ad, filled in like a spreadsheet, launched in one go.

### Before your first launch

1. Connect TikTok under **Integrations**, then choose the **TikTok ad account** at the top of the page.
2. **Link your brand's TikTok account to the ad account.** TikTok no longer lets ads run under a made-up name and logo — every ad posts from a real TikTok account. In TikTok Business Center, link the account to your ad account (or use **Connect account** in TikTok Ads Manager), then reload Launchpad.
3. Pick that account under **Ads post as**. Ads run in "ads only" mode — nothing is posted to the profile itself.

{% hint style="info" %}
If you connected TikTok before October 2026, reconnect it under **Integrations** once. The new connection lets Launchpad read your TikTok pixels, which the **Sales** goal needs.
{% endhint %}

### Rows

**Load creatives** adds one row per creative. Each row has **Creatives, Format, Ad name, Ad group, Text, Link, UTM parameters, Status** and a **Problems** marker that lists anything still missing.

* **Videos** — each video is its own creative, up to 500 MB.
* **Images** — TikTok has no single-image ads on its own app, so the images in a row become one **carousel** (up to 35 JPG or PNG images, between 9:20 and 20:9, at most 1242×2340 px, 50 MB each). TikTok adds the music to image carousels.
* **Text** — up to 100 characters. TikTok picks the call-to-action button itself, so there is no CTA field.
* **Link** — must start with `https://`. The **UTM parameters** start with Molecule's TikTok template, so the ads are tracked from the first click.
* **Status** — **Active** or **Paused** per row.

Each row has a format chip:

| Format     | What TikTok builds                                                                                   | Needs                  |
| ---------- | ---------------------------------------------------------------------------------------------------- | ---------------------- |
| **Single** | One ad: one video or one carousel, with one text.                                                    | Any ad group.          |
| **Multi**  | One ad with up to 50 creatives and 5 texts. TikTok mixes them and shows each person what works best. | A **Smart+** ad group. |

A Smart+ ad group takes at most 30 ads, so Launchpad stops you from sending more than 30 rows into the same one in a single launch.

The table works like the Meta one: tick rows (or **Select all**), then **Edit field…** to set an ad group, ad name, text, link, UTM parameters, status or Single / Multi across all of them; **Duplicate selected** and **Remove selected** act on the ticked rows. **Apply copy template** fills the text (from a template's primary texts) and link from one of your **Ad Copy templates** — Single rows take its first text, Multi rows up to five.

### New campaigns

**New campaign** in the toolbar (or **+ New campaign** under a row's ad group picker) creates a **Smart+ Web campaign** with automatic placements — **created paused**:

* **Campaign name** and **Daily budget** (in the ad account's currency).
* **Countries**.
* **Targeting** — **Automatic** (TikTok finds the audience), **Automatic + suggestions** (your age, gender and interests guide TikTok, but it may reach beyond them), or **Custom** (only those people — this can limit delivery). Search interests by keyword; the search language changes which interest categories TikTok returns.
* **Goal** — **Sales** optimizes for a pixel event: pick the **Pixel** and the **Optimization event** (a single pixel is picked for you, with **Complete payment** preselected). **Traffic** optimizes for landing page views and needs no pixel.
* **Ad group name** (optional).

The new ad group is put into the row you opened it from.

{% hint style="warning" %}
In the EEA, Switzerland and the UK, TikTok refuses a **Custom** audience smaller than 1,000 people. If you see "audience too small", add countries, ages or interests, or switch to **Automatic + suggestions**.
{% endhint %}

### Drafts and Make TikTok draft

**Save draft** keeps the TikTok table under **Drafts**, and unsaved work is restored when you come back. **Make TikTok draft** — on a Meta launch table or a Meta draft — turns it into a TikTok draft in one step: your videos and JPG/PNG images are reused and your Meta copy is rewritten to TikTok's 100-character limit. Converted rows start **Paused**. Pick the ad groups, check the texts, and launch.

### Launch and monitor

**Launch N** confirms which TikTok account the ads post as, then opens the launch page with each ad's TikTok ID or the error TikTok returned. **Retry failed rows** re-sends only the failures. TikTok launches appear under **Launched**, and TikTok drafts under **Drafts**.

## After the launch

Give new ads time to gather real spend, then judge them on the [Dashboard](https://docs.moleculedata.com/dashboards/dashboard) and the [Creatives](https://docs.moleculedata.com/dashboards/creatives) page — see [Decide and act](https://docs.moleculedata.com/running-your-ads/decide-and-act).
