Ad platform sync & lead capture
Beyond tracking links, Product & Marketing can pull spend data from connected ad accounts and receive leads straight from ad lead forms. Both are optional and off by default.
Ad platform sync is off by default and only works with providers actually connected in Integrations. TikTok is not supported yet.
When to use
Use this when you run paid ads on Meta or Google and want cost and lead data to flow into campaigns automatically instead of typing costs by hand.
Before you start
- Permissions:
channels:readto see the available ad providers;channels:writeto test a connection and run a sync. - Toggle:
business.ad_platform_sync(default Off) must be on for the nightly data sync. - A Meta or Google Ads connection must exist in Integrations. Without it the provider shows as not connected.
- Receiving Meta Lead Ads leads needs the Meta webhook to be set up for your tenant.
Step by step
Connect the ad account
Connect Meta Ads or Google Ads in Integrations. Credentials are stored encrypted.
Link a channel to the external campaign
On Marketing Channels (/prod-mkt/channels), open a channel and test the connection, then choose the external campaign it corresponds to.
Turn on the sync
Enable business.ad_platform_sync. A nightly job then loads the ad insights into the campaign’s daily metrics ledger.
Review the numbers
Open the campaign (/prod-mkt/campaigns/[id]) and check spend, clicks, and cost per lead. Rows in a different currency are excluded and reported.
Receive leads from ad forms
Meta leads arrive through the webhook, and Google lead forms are polled. Each lead is created once, matched to its channel, and added to the campaign as a member with a form-submitted touchpoint.
Tips & common mistakes
- If a sync fails, the channel stores the last error; read it before reconnecting.
- A duplicate lead is skipped, so do not worry about the same form submission arriving twice.
- Manual costs still work and are kept in the same ledger; do not enter the same spend twice.
- Do not expect TikTok data; use a tracking link channel for it instead.