Track Offline Advertising with Custom Campaigns
Not every lead comes from a click. Custom Advertising lets you record offline media — newspaper, radio, hoardings, TV, flyers, events and more — as campaigns with dated spend, so those channels appear in the same unified report as your digital ads and get an automatic Cost Per Lead. There is no ad platform to connect: you manage the campaigns and spend by hand, and the CRM does the attribution.
Before you start#
Custom Advertising must be enabled once for your organization. Open Settings → Integrations → Custom Advertising (also reachable from Ad Channels) and press Enable Custom Advertising. A few things to know up front:
Enabling is org-scoped and has no OAuth — once on, it is always active and participates in the unified report. There is no in-page disable.
Currency is set per campaign, not per organization — each campaign can track its own currency.
Analytics sync lives elsewhere — manual "Sync Now" and cross-campaign KPIs are on the unified Advertising Analytics page; this screen is for managing campaigns and spend.

Create a campaign#

A campaign is a lightweight parent that groups your spend records. Press Create Campaign and complete:
Campaign Name — required, and unique per organization. Reusing an existing name is rejected and the dialog stays open with the error surfaced.
Currency — required; defaults to your organization's currency. Every spend under this campaign inherits it.
Description — optional notes.
The campaign's total spend, leads and cost per lead are all calculated from its spend records — you never type them on the campaign itself.
Add spend records#

Open a campaign (click its name, the View details eye, or the Add spend receipt icon) and use Add Spend in the Spend History table. Each spend represents one dated buy against one or more lead sources:
Spend Amount — required; must be greater than 0. It is recorded in the parent campaign's currency.
Lead Source — required; pick one or more sources. Leads are attributed by matching your CRM contacts to these sources.
Ad Type — optional. Choose from Newspaper, Hoarding, Radio, TV, Flyer, Event, Magazine, Local Promotion or Other.
Specify Ad Type — appears only when Ad Type is Other; type a short custom label (up to 64 characters).
Ad Start Date — required. It cannot be older than 60 days or in the future, and it drives the daily analytics.
Ad End Date — optional; may run into the future for an ongoing buy, but cannot be before the start date.
Impressions and Clicks — optional delivery figures; blank is stored as 0.
Notes — optional free text.
Leads and CPL are derived on the server from your CRM contacts and shown inline per spend — they are never entered by hand.

Manage the campaign list#
The campaign table gives you the whole picture at a glance and tools to keep it tidy:
Search — filter campaigns by name.
Date filter — narrow the list by campaign created date, with presets or a custom range.
Columns — Campaign Name, Description, Total Spend, Total Leads, Created By and Created Date, with show/hide and pagination.
Row actions — View details, Add spend, Edit and Delete.
How it feeds the unified report#
Every spend you add generates a row in the shared ad-performance history under the platform Custom. That means offline campaigns show up right next to Meta in Advertising Analytics, with the same Spend / Leads / CPL columns, and can be filtered or grouped alongside your digital channels.
Good to know#
If Custom Advertising was disabled, the detail page shows a "Custom Advertising is off" empty state with an Enable button — no data is lost, collection simply pauses.
Because currency is per campaign, keep a separate campaign per currency if you buy media in more than one.
A brand-new campaign with no spend shows zeros until you add its first record.
Ready to implement this?
OpenAI Engage and apply what you just learned to your own workspace.
Open AI Engage CRM