Campaigns
Review synced performance and use supported direct controls.
The Campaigns page shows synced performance and provider delivery status. A shared toolbar at the top lets you pick the provider, the advertising account, the date range, and refresh provider data; the view below is specific to the selected provider. If the table is empty, connect a platform and run a refresh first.
Switch between Current and Archive without mixing counts or selections. The views are two complementary parts of Noeryx's local projection: Meta owns what it reports about an object, while Noeryx records whether the local row is still current.
- Current holds the campaigns, ad sets, and ads Meta still returns, under a Current parent. For Meta, that includes active, paused, review, and other operational statuses; objects Meta reports as archived or deleted are not imported.
- Archive holds a row a complete refresh of its ad account no longer returned, and a row deleted on Meta from Noeryx. Archiving an object on Meta therefore moves it to Archive on the next refresh; a row Meta returns again moves back to Current with its history.
Archive keeps the same provider, advertising-account, hierarchy-level, date, column, and breakdown navigation. Daily, weekly, monthly, and breakdown performance stay attached to every archived row. It is read-only toward the advertising platform: it does not sync on open, fetch live previews, change On / Off, or delete objects on Meta. The Reason column says why a row is in Archive: No longer available from Meta after a complete refresh of its ad account stopped returning it, and Deleted on Meta after a delete Meta confirmed right away; a delete Noeryx confirms later shows No longer available from Meta.
A refresh changes lifecycle only from a complete answer of one ad account: a campaign, ad set, or ad that answer no longer holds moves to Archive, with its children. A refresh that failed, or read an account only in part, changes nothing, and no refresh deletes local history.
Working with the table
- Switch between the Campaigns, Ad Sets, and Ads levels.
- Choose a date range preset — Noeryx stores performance day by day and filters local facts for the range. Opening Current queues no sync, and Archive never fetches Meta on open; Refresh updates the last 28 days of that ad account.
- Reach and frequency are never added up from days. Noeryx stores them for one day, one week from Monday to Sunday and one calendar month, so This week, Last week, This month and Last month show stored figures. For any other period, Current reads reach from Meta once and keeps it for 15 minutes or until you Refresh. If Meta cannot be read, the reach columns show — and the line under the table says why. Archive shows reach only for the stored periods.
- The line under the table shows the ad account's own reach for the period. It counts each person once, so it is not the sum of the rows above it.
- Daily budget and Lifetime budget say where a budget lives. A campaign with one budget for all its ad sets (Meta calls it Advantage campaign budget) shows the amount on the campaign row, and each of its ad sets shows Campaign budget. A campaign whose ad sets each have their own budget shows Ad set budgets, and each ad set row shows its own amount. Sort by either column at both levels.
- Show or hide columns and save your own column presets. Presets are per workspace and per person, so your view doesn't change anyone else's.
Breakdowns
For Meta Ads, choose Breakdown next to the column presets above the table: None, Age and gender, Country, Region, Placement, or Hour of day. Each campaign, ad set, or ad with impressions in the selected dates shows its breakdown values in subrows underneath it. Those subrows describe performance; select or change the parent object instead. Sorting keeps those subrows with their parent. Your choice stays when you switch levels or ad accounts, change the dates, drill down, or open Archive. Age and gender and hour of day keep their natural order; country, region, and placement are listed by spend. Country and region show the 25 values with the highest spend, then one Other row that adds up the rest; the number in brackets says how many values it combines, for example Other (12). Impressions, clicks, and spend that Meta cannot match to an age, gender, country, region, or placement are shown with Unknown in place of that value instead of being left out.
The figures cover your selected dates. Hour of day combines the same hour across those dates in the ad account's time zone. Reach and frequency show — in breakdown subrows: people cannot be added up across days or values. For Age and gender, Country, and Placement, a day on which Meta reports no conversions for a value counts as 0, the same as in the ordinary daily figures, so these subrows always show a number of conversions. Region and Hour of day show — for website and app conversions, because Meta does not split them that way. Rates and costs are calculated from the combined figures, so they are not averages of the daily rates. Cost per conversion divides spend by conversions; with 0 conversions there is nothing to divide by, so it shows —, as it does for Region and Hour of day.
Over time, breakdowns fill in the same dates as the account's performance history, with two exceptions. An object that moved to Archive before its days were read has no breakdowns for those days. Meta returns hour-of-day values only for about the last 13 months, so an hourly day that was not read before it became older than that, for example during a long disconnect, stays empty. The first load reads the last 12 months of performance without breakdowns; breakdowns for those dates fill in gradually afterward. Noeryx then rereads the last 28 days of breakdowns twice a day and reads yesterday again after the ad account's midnight.
Refresh puts today's values of the breakdown you selected, at the level you are viewing, first in line, even when they were read a few minutes ago. The other breakdowns and levels follow as reading time allows: Noeryx spends only a little time reading breakdowns for each connection in any 15 minutes, and does not read the same breakdown at the same level again within 15 minutes. Sync now on the connection reads today's breakdowns of its ad accounts the same way, without putting one first. A very large account, a sync that is already running, a Meta rate limit, or a recent history load can still postpone any breakdown read, including the one you selected.
The note under the table describes the selected breakdown and level. In Current it can show:
- Breakdowns read 06:05 when the selected dates touch the last 28 days: the oldest completed read among the selected days that fall within those 28 days, in the ad account's time zone, with a date when that read was not today.
- Both times when today's read is more than 15 minutes newer than the oldest read of the other selected days: Breakdowns read 20:51 today, earlier days 06:05.
- Reading breakdowns… instead of the time once a Refresh or Sync now has started reading breakdowns and until it has read the selected breakdown at this level. While the rest of that refresh runs, and during scheduled reads, the last read time stays visible.
- Breakdowns for today are not read yet when the selected dates include today and today's values are still unknown. A completed read with no values means no reported impressions, rather than an unread day.
- Breakdowns for the selected dates are not read yet when none of the selected days from the breakdown start date through yesterday has a completed read, even if ordinary performance results are already visible. This line then also stands for an unread today.
- Breakdowns for some selected dates are not read yet when only some of those days have been read. The breakdown totals may be incomplete, including when a gap falls between dates already read.
- Breakdowns are loading, available from… when the selected dates begin before the earliest date with a completed breakdown read and breakdown history is still loading; otherwise the note names that date with Breakdowns start on…. Selected days before that date are described by this line alone, so a period that ends before it gets no unread line. The start date does not prove that every later date has been read, so a notice about unread selected dates can appear alongside it.
A period whose selected dates have all been read gets no unread or loading note merely because older, unrelated history is loading. The note always ends with what breakdowns do not split, such as Reach and frequency are not split by breakdown.; for Region and Hour of day it also names website and app conversions.
This note is separate from the account's Updated time at the top, which describes its structure and ordinary performance refresh. In Archive, the note can show only Breakdowns start on… and what breakdowns do not split; an object's last day before it disappeared from Meta may be incomplete.
Meta allows Noeryx to read approximately 13 months of hourly breakdowns and 37 months of the other breakdowns. These are limits on reading Meta again. Breakdown history already saved in Noeryx stays without an expiry, including in Archive. Delete from Noeryx removes an object's history; removing its ad account or deleting its connection or workspace removes the history owned there.
Delivery status
In Current, delivery status (for example, active or paused) refreshes automatically when you open or reload a level; Noeryx saves it only when Meta reports a different status. When the selected provider and connection support writes, each Current row exposes an On / Off control. This is an explicit operator command: Noeryx checks the current value and access again, queues the durable background operation, and then refreshes the synced result. If another change still holds the row — a change waiting for approval in Review, an approved change that is being applied, failed before it was applied, or is still being confirmed, a deletion, a rename, or another On / Off — Noeryx doesn't switch it and tells you which change holds it and what to do next. Archive preserves the last synced status and has no live status refresh or On / Off control.
If Meta doesn't confirm an On / Off, delete or rename, Noeryx reads the item again on its own and frees the row as soon as it knows — within a day at most. If it still can't tell, check the item in Meta Ads Manager.
Delete selected entities
When the provider supports entity deletion, select campaigns, ad sets, or ads at the current level and choose Delete. Noeryx asks for confirmation because provider deletion cannot be undone, then queues one durable command item for each selected entity. If Meta doesn't confirm a deletion, Noeryx checks it again on its own, as described under Delivery status.
Agent-proposed changes remain separate. Ask an agent to create a structured provider-action draft when you want an agent to propose a change. Noeryx validates that draft and creates an approval request. Drafts from Chat need your decision; Calendar tasks can use explicitly enabled automatic approval for eligible actions. Approved changes apply through a background task. The final result and audit receipt come from that approval lifecycle.
From Archive, Delete from Noeryx removes the selected archived campaigns, ad sets, or ads with everything under them and their reporting facts, at once. Noeryx refuses the delete if a selected row changed since you chose it. It also refuses while something under the row is active again in Meta, because that row belongs in Current, and while an approval request for the row waits for a decision in Approvals: approve, reject or let it expire, then delete. This action never calls Meta. If Meta returns a deleted object later, it appears again as a new row in Current, without the deleted history.
Provider-owned views
Each provider brings its own campaign view rather than forcing every platform into one universal shape. Meta Ads is the first implemented view; refresh, status projection, and direct operator controls appear only where a provider actually supports them. Agent-proposed writes stay in the agent and approval flow.