Multichannel ads: connect, audit and approve changes
Connect Meta, Google, YouTube, TikTok, LinkedIn and 7 other ad channels, compare performance, audit the accounts and approve the suggested changes.
Updated on
The Ads screen brings together in one place the campaigns from 11 channels: Meta, Google, YouTube, TikTok, LinkedIn, Microsoft, Apple Search Ads, Amazon, Reddit, Pinterest and X. There you connect the accounts, see spend, CRM leads and results side by side, run an audit with a score from 0 to 100 and approve the changes the audit or an AI agent suggests. Nothing changes in your campaigns without a person's approval.
The channels
Each channel shows as a card, with the status badge and what XBASE can do on it:
| Badge | What it means |
|---|---|
| Connected | the account is linked and syncing |
| Error | the platform refused access (password changed, permission removed). Click Reconnect |
| Pending | authorization started and did not finish. Click connect again |
| Not connected | ready to connect |
| Waiting for app credentials | the XBASE team is still setting up the platform's app credentials, which every new channel needs to connect. Meanwhile, import the CSV |
The card's pills show Read (verified, when it was proven on a real account, or test) and Write (enabled or blocked). Today writing is enabled on Meta Ads and Google Ads (YouTube included): on the other channels XBASE reads, compares and audits, and the change is made in the platform's manager.
YouTube Ads uses the Google Ads connection: the account's Video and Demand Gen campaigns show on the YouTube card, separate from the others.
How to connect
You can connect from two places, and it is the same connection:
- Ads → Channels, in the side menu;
- Integrations, in the Ads tab (Meta Ads is there too, on its own card).
To connect:
- On the channel card, click Connect (on YouTube, Connect through Google Ads).
- Log in to the platform account and authorize access. On Meta Ads, Meta asks which businesses and ad accounts XBASE can use: choose only the ones for this workspace. Only those show up in XBASE.
- You go back to Ads → Channels with the channel connected notice. Meta Ads connected from the Ads screen also goes back there.
- Click Sync on the card to bring in the numbers now. The accounts show up in Ad accounts; on Meta Ads, they show up after the first sync. After that, XBASE syncs on its own every hour.
Apple Search Ads does not use a login: click Connect with API key and enter the organization ID, Client ID, Team ID, Key ID and the private key (PEM) you generate in the Apple account. The key is stored encrypted and is not shown again.
If XBASE is not ready yet to store a channel's credentials securely, the connection does not start and the screen shows the reason.
Connecting, syncing and disconnecting requires a role with Manage integrations. Disconnecting Meta Ads requires being a workspace admin.
Accounts and syncing
- In Ad accounts, the In sync switch decides which accounts enter the automatic sync. On Meta, only the account chosen in the connection starts on.
- The card's Sync only brings that channel. If no account of the channel is in sync, the button is off and the card says what to do. Sync all, at the top of the Channels tab, brings all accounts that are on.
- If a workspace sync is already running, XBASE warns you and does not start another one.
- The first sync brings the last 30 days. After that, XBASE updates yesterday's and today's numbers every hour and, four times a day, redoes the last 7 days, because platforms update late conversions.
- Each account shows when it last synced and the error, if there was one. An account with an error does not block the others.
- Disconnect stops the channel's sync. The history already synced stays in Overview and in the audits.
Import CSV
A channel whose API is not enabled yet (or that you prefer not to connect) can come in by CSV:
- In the platform's manager, export the campaign report with date, campaign, spend, impressions, clicks and conversions.
- In Ads → Channels, click Import CSV, choose the channel and the file (up to 10 MB and 50,000 rows). Account name, ID and currency are optional.
- The numbers go into Overview and Audit.
For a larger file, export a shorter period and import it in parts. An account imported by CSV is read-only: the audit can suggest changes, but you make them in the platform's manager.
Overview
The Overview tab shows what happened with your ads in the period and what changed compared to the previous period.
Period and comparison. Choose Today, Yesterday, 7 days, 14 days, 30 days or 90 days. Dates follow Brasília time and each account's numbers follow its own time zone and currency. Each period is compared with the previous one of the same length: Today with yesterday, 7 days with the 7 days before them. The comparison period shows right below the buttons.
Indicators. Spend, Leads (CRM), Cost per lead, Clicks, CTR and CPC, each with the change against the previous period: green when it improved (more leads and clicks, higher CTR, lower cost per lead and CPC) and red when it got worse. Spend has no color: spending more is neither good nor bad on its own. Accounts in different currencies show in separate blocks; leads show only once, added up.
CRM leads and platform conversions.
| Leads (CRM) | Platform conversions | |
|---|---|---|
| Who counts | XBASE: each CRM conversation that came from an ad | each platform, its own way (attribution window, model, what counts as a conversion) |
| Sum across channels | yes | no |
| Where it shows | indicators, campaigns, by channel and by day | campaigns and by channel, with the platform's CPA and ROAS |
Adding up conversions from different platforms would give a number that does not exist: compare CPA and ROAS within each channel. To compare channels with each other, use leads and cost per lead. Conversations from ads of accounts that are not synced are left out of the total, and the screen tells you how many.
What changed. A short list of what stood out in the period: a campaign that brought leads and almost stopped, spend with no leads at all, budget that moved between campaigns, falling CTR, more expensive clicks, spend above budget, active ads without delivery and the ad that brought the most leads. Each item has the Critical, Warning, Info or Good badge and, when it is about a campaign, the View campaign button, which opens the campaign in the table below. They are only observations: nothing changes in the accounts. With nothing out of the ordinary, the list says so.
Campaigns (since 10/22/2026 in the Campaigns tab, see below). The table shows each campaign with its status (Active, Paused or Removed), daily budget, spend and leads with the change, cost per lead, clicks, CTR, CPC and platform conversions. Click a column title to sort. Open a campaign to see the ad sets and, inside each ad set, the ads, with the same columns. An active campaign with no active ad set gets the no active ad set warning: it cannot deliver (on Google Ads the warning does not show, because Performance Max does not use ad sets). On mobile, the table scrolls sideways and the name stays fixed on the left.
Propose a change from the table. On campaigns, ad sets and ads of a channel with writing enabled, the ⋯ button also proposes a draft to pause, activate or change the daily budget. You write the reason, with at least 10 characters, and, for the budget, the new amount. The draft goes to Alerts: nothing changes in the account until a person approves and applies it. To change it right away, use the quick actions in the Campaigns tab (see below).
By channel and by day. The By channel table shows spend, leads, cost per lead, clicks and the platform's conversions, CPA and ROAS. The Spend per day chart shows each day's spend; hovering over or tapping a bar shows each channel and the day's leads.
Updates. XBASE updates the numbers every hour. The Data from line says when the most outdated account was last updated and turns yellow when an account has gone hours without syncing. People with Manage integrations can click Update now: the screen follows the sync and reloads the numbers when it finishes. If a sync is already running, XBASE warns you.
When the period has too many rows to show, the screen warns you. The totals stay complete; to see every day in the chart, choose a shorter period.
Campaigns
The Campaigns tab shows the list of campaigns in the period, with a sub-tab for each channel with data (All, Meta Ads, Google Ads…). Choosing the sub-tab is the same as choosing the channel at the top of the screen. The period is the same as in Overview. Open a campaign to see the ad sets and the ads; the settings icon opens the details (placements, bid and value rules). In Overview, the View campaign button in What changed opens this tab right on the campaign. The old Meta Manager, which used to be in Creatives, moved here.
Also what had no numbers. New, paused or in-review campaigns, ad sets and ads show in the same table, at zero, with the no delivery in the period badge. Deleted ones do not show.
Quick actions. On an account connected through the API of a channel with writing enabled, people with Manage integrations change things right away, at all three levels:
| Action | Where | How |
|---|---|---|
| Turn on and pause | the on switch in the row | on Meta, an ad set or ad paused only through the campaign (or the ad set) stays on: the Delivery column shows Campaign off |
| Daily budget | click the value in the Budget/day column or the ⋯ | a campaign with its own budget changes the campaign; a Meta campaign with budget at the ad set level lists the ad sets and changes each one |
| Rename | ⋯ → Rename | campaign and ad set; ad only on Meta |
| Delete (Meta) | ⋯ → Delete | type the name to confirm. It cannot be undone: a campaign takes its ad sets and ads with it, and an ad set takes its ads |
Every quick action goes through the same record as approvals: it stays in Alerts with who did it and the previous state, and the budget respects the change limit per update (default 50%). If the platform refuses, the screen shows the reason. Without Manage integrations, the actions show disabled, and the ⋯ still proposes changes for approval.
On Meta. The Delivery columns (how Meta is delivering: Active, Off, In review, Campaign off…) and Reach (unique people in the period, read live from Meta). At the ad level, the thumbnail and the name open the creative preview in large size, with the text and the button.
Create campaign. On Meta Ads (or in All), the Create campaign button has two options: With the assistant, which builds the whole campaign (audience, creative and budget), and Empty campaign, which is created paused and without ad sets, with name, objective, budget (at the campaign or ad set level) and special category; it is recorded in Alerts and already shows in the table. On Google Ads, people with Manage integrations create a Search campaign with New campaign.
Link tracking (UTM). Every Search campaign created through XBASE goes out with tracking parameters, so the website knows which channel, campaign, keyword and ad each visitor came from. The Tracking parameters (UTM) field in New campaign comes filled in and follows the campaign name: utm_source=google, utm_medium=cpc, utm_campaign with the campaign name and, on click, the keyword and the ad. You can edit it; Use the default brings the filled value back, and clearing it turns tracking off. The same goes for a new Meta ad with a Website destination: the link goes out with utm_source=meta, the campaign, the ad set and the ad. Ads that open WhatsApp do not need it: the source comes from the conversation itself.
Campaign details
Click a campaign name in the Campaigns tab to open its page, in the same period. There you find:
- Header: status with the on/pause switch, editable daily budget and name and, on Meta, the Open in Ads Manager button;
- Period and numbers: Today, Yesterday, 7, 14, 30 or 90 days, compared with the previous period: spend, impressions, clicks, CTR, CPC, CRM leads, cost per lead and platform conversions, plus the daily spend chart;
- Ad groups and ads (on Meta, Ad sets and ads), each with the on/pause switch;
- Settings: on Meta, the targeting, schedule and delivery of each ad set; on Google, the type, bidding, networks, locations, languages and the final URL suffix (UTM), which you can edit;
- History: the changes made through XBASE on this campaign, with the status and who requested them.
On Google Ads you also get the Keywords tab (with Quality Score; add several at once, pause, enable or remove), Negatives, Search terms (with the Exclude and Add as keyword shortcuts) and Ad texts, where you edit the headlines (3 to 15, up to 30 characters), descriptions (2 to 4, up to 90 characters) and final URL of responsive ads.
People with the Manage integrations role change things right away; everyone else makes a request that goes to Notices waiting for approval. For accounts imported from CSV or channels without writing enabled, the page only shows the numbers.
Creatives
The Creatives tab opens directly on the creatives of the account chosen in the dropdown at the top of the screen, which combines channel and account: All channels, and in each channel All accounts and its accounts (in Creatives it is always one account). The chosen account also filters the Overview numbers and the list in the Campaigns tab. Choose the account and the screen shows its creatives:
- Meta Ads account: the Performance, Indicators and Ranking sub-tabs, with preview, ranking and indicators. Key terms and remarketing audiences are in Marketing → Audience since 10/25/2026 (the old link opens the new screen). Turning on, pausing, budget, name, deleting and creating campaigns are in the Campaigns tab. Connecting, reconnecting and disconnecting Meta Ads are also in this list.
- Another channel's account: the ads that came in through the sync or the CSV, with spend, impressions, clicks, CTR, conversions and CPA for the last 30 days. If there are none yet, the screen explains how to bring them in: connect and sync the channel or import the CSV in Channels.
Each creative shows the channel icons:
| Icon | What it means |
|---|---|
| Filled | where the creative is published |
| Outlined and faded | where it can be published, based on format and aspect ratio |
Hovering (or with a screen reader) shows the channel name. Vertical video (9:16) can go to Instagram Reels and Stories, Facebook Reels, TikTok, YouTube Shorts and Pinterest; square or 4:5, to the Facebook and Instagram Feed, LinkedIn, Pinterest and X; horizontal video (16:9), to YouTube, LinkedIn and X; carousel, to Meta and LinkedIn. When XBASE cannot tell the aspect ratio, it only shows where the creative is already published.
The screen keeps everything in the address: reloading the page or sending the link to someone opens the same account, sub-tab, period, filters and the creative that was open. The old Creatives screen address still works and opens this tab.
Ad set targeting and schedule (Meta)
In the Campaigns tab (settings icon on the ad set row), each ad set opens the Ad set details panel. Besides delivery (optimization and bid), placements and value rules (see below), it has targeting and schedule. It opens a panel with what is in effect right now on Meta:
| Part | What you choose |
|---|---|
| Devices | Mobile, Desktop or both |
| System | All, iOS or Android (applies to phones) |
| Locations | cities, states and countries, through the search with the City, State and Country tabs. Each city has a radius from 10 to 80 km |
| Age | minimum and maximum, from 18 to 65+ |
| Schedule | Always on or Only at set times: up to 7 time slots, each with days of the week, start and end on the hour. An end before the start finishes the next day (e.g. 22:00 to 02:00) |
Click Save to Meta. Only what you changed goes to Meta, right away, and the change is recorded in Ads → Alerts with who made it. Changing requires a role with Manage integrations; without it, the panel is read-only.
How the schedule works on Meta:
- Daily budget (the most common): Meta does not accept ad scheduling with a daily budget, and the budget type cannot change after the ad set is created. XBASE creates automated rules in your Meta account that turn the ad set on at the start and off at the end of each time slot, in the ad account's time zone. They show on Meta with names starting with
XB | Horário. They apply from the next on or off time. When you go back to Always on, XBASE deletes these rules and turns the ad set back on if it was turned off by the rule. - Lifetime budget: XBASE uses Meta's own ad scheduling.
Changing the Locations replaces the ad set's whole list of locations. If the ad set also has ZIP codes or map pins, the panel warns you: they are removed when you change the locations here. Audiences, placements and the rest of the targeting stay as they are.
The other channels do not have this editing through XBASE yet: do it in the platform's manager.
Placements and value rules (Meta)
Meta is removing manual placement selection from many accounts (for example, "Instagram only"). The way out is to use value rules: you tell Meta how much less a placement is worth and it lowers the bid there. The maximum is lowering by 90%: the placement becomes expensive for Meta, but does not disappear completely.
Where to see it. In the Campaigns tab, the settings icon on the campaign row opens Campaign details: each ad set with its placements, optimization, bid and applied value rules. The Value rules button, at the top of the table, opens the same panel for the whole account.
Prioritize Instagram in one click: the Prioritize Instagram everywhere button creates the rule set, applies it to every ad set without rules and makes it the account default: from then on, ad sets of new campaigns get the rule on their own, within an hour (on each account update). In Default for new ad sets you change the default or turn it off. If you remove the rules from an ad set, the default respects that and does not apply them again there.
Or step by step:
- Click Prioritize Instagram. XBASE builds the XB | Prioriza Instagram rule set: a 90% lower bid on Facebook Feed, Stories, Reels, Marketplace, Search and Video and on Audience Network.
- Check it and click Create on Meta.
- Choose the rule set on each ad set, or use Apply to all.
| Rule | How it works |
|---|---|
| Criteria | placement, device, system, gender and age (location and audience label, created in Meta's Ads Manager, show and are kept) |
| Adjustment | lower by 1% to 90% or raise by 1% to 1000% |
| Limits | up to 6 rule sets per account, 10 rules per set and 4 criteria per rule |
| Order | when a person matches more than one rule, only the first one applies |
| Bid | Meta only applies rules to ad sets with lowest-cost bidding; XBASE warns you when that is not the case |
Do not raise the Instagram bid on an ad set that already only shows there: raising everything together does not change where the ad shows and makes the result more expensive.
Editing a rule set immediately changes the bid of every ad set that uses it: the screen tells you how many. To delete it, remove the rule set from the ad sets first. Every change goes straight to Meta and is recorded in Ads → Alerts; changing requires a role with Manage integrations.
Audit
In the Audit tab, click Run audit. XBASE reads the last 30 days of the accounts that are on and checks measurement, structure, delivery, budget and creatives, with the controls from claude-ads, an open ad audit method. The audit only reads: nothing changes in the accounts.
The result has:
- A score from 0 to 100 per account and for the portfolio.
- Evidence coverage: how many of the controls had data to evaluate.
| Rating | Coverage | What it means |
|---|---|---|
| Normal | 80% or more | the score is reliable |
| Provisional | 60% to 79% | the score is an indication and may change with more data |
| Insufficient evidence | less than 60% | no score: sync or import the full CSV and run it again |
The portfolio score weighs each account by its spend in the period. When the accounts are in different currencies (or without a currency), or the spend cannot be compared, each account weighs the same and the portfolio score is Provisional, even with full coverage. What was left out of the score shows in Notes on the score.
Each account's findings come in Issues, No data to evaluate, In order and Not applicable, each with what was seen and what to do. When the finding suggests a change (for example, pausing a campaign that spent without converting), the Create draft button sends the suggestion to Alerts. The button only shows on an account connected through the API of a channel with writing enabled; on the others, the screen tells you to make the change in the platform's manager.
Alerts: inbox and approvals
The Alerts tab is the ads inbox. It gathers what needs your attention: changes waiting for approval or application, changes that failed and the What changed notices from the last 7 days (for example, a campaign that spent with no leads), with the most serious first. The number on the tab counts the drafts waiting for approval and the Critical and Warning notices not archived yet.
Archive. Already saw a notice or resolved a change? Click Archive: the item leaves the inbox for the whole team and goes to Archived, from where it comes back with Unarchive. Archiving does not change anything in the accounts. A change waiting for approval or application cannot be archived: approve, reject or apply it first. The Overview's What changed also has Archive. The Waiting for approval, Approved, Applied, Rejected, Failed and All filters show the history of changes.
Approve and apply in one click. On a channel with writing enabled, the draft has a single button, Approve and apply: the change goes to the platform right away, without a confirmation window, and the record keeps who approved and applied it. Reject and the deletion of a campaign, ad set or ad still ask for confirmation, because they cannot be undone.
Under the hood, every change goes through three steps:
- Draft. An AI agent, someone on the team or the audit suggests: pause, activate, change the daily budget, rename or (on Meta) delete a campaign, ad set or ad, create an empty campaign on Meta, or change an ad set's targeting and schedule. Only a channel with writing enabled accepts drafts.
- Approval. In Ads → Alerts, a person with Manage integrations sees the before and after, the reason and who suggested it, and clicks Approve or Reject. Rejecting is final. An AI agent does not approve.
- Application. With the change approved, click Apply. XBASE makes the change on the platform; if the platform refuses, the change is marked Failed, with the reason.
Each change shows who created it, who approved or rejected it and who applied it, with the date. In targeting and schedule changes, each part shows with the before and after (for example, Devices: Mobile and desktop → Mobile only).
Rules:
- Apply is only active on a channel with writing enabled. On the others, the button shows disabled and the change is made in the platform's manager.
- The daily budget respects the budget change limit per update (default 50%), checked already in the draft. To change more, do it in steps.
- If the application gets no response for more than 15 minutes, the change goes to Failed as interrupted. Check in the platform's manager before trying again.
- The only creation is Meta's empty campaign, which is created paused and without ad sets. No change creates an ad or turns something on by itself.
- What you save in the Targeting and schedule panel and the quick actions in the Campaigns tab are already applied and show here as a record.
AI agents and MCP
AI agents follow the same rules through the XBASE MCP. The ads tools are:
| Tool | What it does |
|---|---|
ads_list_channels | lists the channels and the status of each one |
ads_list_accounts | lists the ad accounts |
ads_get_performance | brings performance and CRM leads by channel, account, campaign, ad set, ad or day, compared with the previous period |
ads_get_insights | brings the period's "What changed" |
ads_list_entities | lists campaigns, ad sets and ads with 30-day metrics |
ads_get_entity_settings | shows an ad set's current targeting and schedule |
ads_list_value_rules | shows the account's value rules and, on each ad set, the placements, bid and applied rule |
ads_search_locations | searches cities, states and countries for targeting |
ads_run_audit and ads_get_audit | run and read an audit |
ads_get_playbook | brings a channel's audit guide and best practices |
ads_list_mutations | lists the change queue |
ads_draft_mutation | creates a change draft, including targeting, schedule and value rules |
ads_apply_mutation | applies a change already approved by a person |
ads_create_campaign | creates a Google Search campaign, always paused |
The agent reads, audits, creates paused campaigns and change drafts. Turning a campaign on or applying a change always depends on a person, in Ads → Alerts.
Applying through MCP only works for a change already approved, when the person who created the token has Manage integrations and when the token was created explicitly listing the ads_apply_mutation tool. A token created with all tools does not apply changes.
Frequently asked questions
See also
Remarketing audiences
Create custom audiences on Meta in one click, send CRM segments as customer lists and follow ready-made remarketing strategies.
Campaign assistant
The assistant reads the Meta account: history overview, campaign built and created paused, X-ray with suggestions and traffic or sales diagnosis.