Smileline
Marketing

Ad campaigns

Create supported Meta campaigns, manage campaigns imported from every connected ads platform, and let external edits win.

Open Ads → Campaigns. This page manages real advertising campaigns on Google Ads, Meta, TikTok and ChatGPT — creating supported campaign types, going live, schedules, targeting and creatives — while Smileline keeps the risky levers automated. Campaign management is part of the SEO & Ads add-on; your practice always pays the ad platforms directly.

Two tabs split the list:

  • Managed — campaigns Smileline created or has adopted.
  • External — campaigns found in your ad accounts that were created directly in an Ads Manager. Each has an Adopt button.

Every campaign row links to the platform's own Ads Manager — Smileline never locks you out of the native tools.

Who can do what

Drafting, pausing and creative work need the manage level of the Ads permission group. Anything that starts or raises spend — going live, resuming, budgets, schedules — needs Set campaigns live & change ad spend. Both belong to owners and managers; front-desk members and analysts can view campaigns and results.

Campaign types

TypeWhat it does
Google SearchSynced from Google Ads Manager; creating a new campaign in Smileline is not available yet.
Google Performance MaxSynced from Google Ads Manager; creating a new campaign in Smileline is not available yet.
Meta — website bookingsCreate in Smileline or sync from Meta Ads Manager. Sends people to your booking page.
Meta — instant formsCreate in Smileline or sync from Meta Ads Manager. Uses an instant enquiry form, so no website is needed.
TikTok Smart+ lead genSynced from TikTok Ads Manager; creating a new campaign in Smileline is not available yet.
ChatGPT — chat cardSynced from OpenAI Ads Manager and available for adoption. Create the campaign and set its lifetime budget and conversion goal in OpenAI Ads Manager. See ChatGPT Ads.

Create new Google Search, Performance Max, TikTok Smart+ and ChatGPT campaigns in the platform's Ads Manager for now. They appear under External after the next sync and can then be adopted. OpenAI's campaign API accepts a lifetime spend limit, while Smileline currently models daily campaign budgets, so ChatGPT creation and budget editing stay in OpenAI Ads Manager. Smileline only offers creation types whose current provider payload and reviewed inputs are verified.

Create a campaign

Click New campaign. The wizard walks through seven steps:

Platform — choose one of the campaign types currently available for creation.

Account & locations — pick the Meta ad account and Facebook Page, name the campaign, and set a radius (1–100 km, 10 km by default) around each practice location the campaign should cover.

Services — list the treatments to advertise, e.g. "Dental implants". Smileline generates the ad groups and asset structure from them.

Budget — set the Meta daily budget. The wizard shows the resulting monthly projection and requires you to tick I understand roughly this much per month can be spent before continuing.

Audience — set an optional age range and target cost per lead. Everything else (placements, bids, audiences) stays automated. On Meta, narrowing the range beyond 25–65 switches Advantage+ audience expansion off for that ad set, as Meta requires.

Creatives — set the destination URL (not needed for instant forms), add a headline, description and primary text per service, and optionally attach an approved image from the Creative studio. Google headlines are limited to 30 characters and descriptions to 90 (a double-width character counts as two) and TikTok ad text to 100 characters with no emoji; the launch refuses longer text rather than trimming it. Meta creatives launch with Advantage+ text rewriting switched off, so the copy you approved is the copy that runs.

Review — check the summary and click Launch paused. On Google, the campaign's conversion goal (Booking or Lead) is applied as a separate change right after the campaign is created, reusing the account's existing goal for that conversion action, so it appears in Change history as its own entry; if Google rejects it, or conversion feedback is not provisioned yet, the campaign stays paused and you can re-apply the goal from Optimize on leads / bookings.

Budget minimums

Each platform has a floor the wizard enforces per day:

PlatformGBPUSDEUR
Meta£5$5€5

Meta technically allows less, but below roughly £5 a day the learning phase never completes, so Smileline holds a practical floor. Set Google and TikTok daily budgets, and ChatGPT lifetime budgets, in their Ads Managers. A practice-level monthly spend cap can also apply — a budget whose projection exceeds it is refused.

Launch paused, go live deliberately

Launching builds the campaign on Meta in a paused state. Nothing spends until someone with publish permission explicitly sets it live. Before launching, Smileline checks that:

  • the Meta connection is healthy and carries campaign-management permission — Meta may ask for a one-time reconnect to grant it;
  • conversion tracking has finished provisioning (it usually takes a few minutes);
  • Meta campaigns have a connected Facebook Page;
  • every attached creative passes the ad policy check.

When you're ready, click Set live. The confirmation is explicit: "This is the moment spend starts. The campaign begins its learning phase." A previously live campaign, or a paused campaign adopted from the platform, shows Resume instead.

Day-to-day controls

The campaign page keeps the useful levers one click away — pausing is always available to managers, while anything that restarts or raises spend asks for publish permission:

  • Pause — stops delivery immediately.
  • Daily budget — shows the new monthly projection and requires I confirm the monthly projection above before saving. ChatGPT campaigns have lifetime budgets, so change those in OpenAI Ads Manager.
  • Schedule — start and end dates.
  • Destination URL and Location/radius targeting (including the age range where supported).
  • Review & apply creative changes — batch your ad text and image edits, review them together, and apply them as one change. Editing live Meta creatives restarts Meta's learning phase, so that batch requires an explicit I understand this restarts Meta's learning phase.
  • Optimize on leads / bookings — available where the provider supports changing the goal. OpenAI makes a ChatGPT campaign's objective and selected conversion event immutable after creation, so set that goal in OpenAI Ads Manager when creating the campaign.

Pause, Resume, Budget and Adopt are also one click away on each campaign row of the platform's dashboard (Ads → Google Ads, Meta Ads, TikTok Ads or ChatGPT Ads), beside Open — the campaign page, for schedule, destination, targeting, creatives and goal — and Ads Manager. Budget asks for the same monthly-projection confirmation as the campaign page and is not offered for ChatGPT, whose budgets are lifetime. A change queued there goes through the same Change history: the row shows a pending badge — Pausing…, Resuming…, Adopting… or Budget change queued — and its actions stay disabled until the platform confirms, at which point the page refreshes on its own.

TikTok status, budget, schedule and creative-text changes use the Marketing API. Change TikTok destinations and locations in TikTok Ads Manager for now: a destination edit needs the provider's complete creative snapshot, and location targeting needs TikTok geo IDs. Smileline refuses an unsafe partial update rather than overwriting fields it cannot reconstruct.

Every change is recorded in the campaign's Change history, including changes the platform rejected. OpenAI reviews ChatGPT ads after creative changes — in review, approved or rejected. Keep OpenAI's Text customisation switched off in Ads Manager: it can rewrite headlines outside Smileline's policy check.

Set in the wizard, fixed after launch: the services advertised and the target cost per lead shape the generated campaign structure, so they can only be edited while the campaign is still a draft.

Never exposed: manual bids, placements and custom audiences. These are the levers that quietly burn budget, so Smileline leaves them automated — and leaves the door open via the Ads Manager link if you want them anyway.

Adopt an existing campaign

Campaigns you created directly on a platform appear under External after the next sync, and on the platform dashboard's campaign table. Click Adopt in either place to manage one from Smileline. Adoption changes nothing on the platform — the campaign's current settings simply become the state Smileline manages from then on. A ChatGPT campaign with a lifetime budget shows Total budget set in Ads Manager and cannot be adopted: give it a daily budget in OpenAI Ads Manager first. Once adopted, status, schedule, destination, targeting and creative controls are available in Smileline, while budget and conversion-goal changes remain in OpenAI Ads Manager.

External edits always win

Smileline syncs campaign structure hourly. Anything changed in an Ads Manager — a budget, a name, a status — is adopted as the new intended state, never reverted, and the campaign is badged Edited externally. You can always work in both tools without them fighting.

For Google campaigns, sync also refreshes the linked budget so Daily budget works after adoption. If a previously imported Google campaign's budget change failed, click Sync now on the Google Ads settings page, wait for sync to finish, then submit the budget change again.

If syncing stops

If a platform keeps rejecting the sync — an expired login, a closed ad account — Smileline stops retrying rather than hammering the platform, and a warning appears on Campaigns, Spend & results and the platform's own dashboard: Data for [platform] stopped syncing. Nothing is lost; the numbers simply stop refreshing while the pause lasts.

Anyone with the manage level can click Resume to restart syncing straight away. If the underlying problem is still there — for example the connection needs a reconnect on the platform page — the retries are used up again and the warning returns.

How managed campaigns optimise

Managed campaigns optimise towards booked consultations, powered by conversion feedback — Google gets Booking as the primary goal with Lead secondary, Meta website campaigns optimise on Schedule, and TikTok uses its standard Schedule event. ChatGPT continues sending conversion feedback to the event selected when the campaign was created; changing that event requires a new OpenAI campaign. Instant-form campaigns optimise the platform's native lead event instead.

On this page