> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usestealth.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> What changed in Stealth for you, in plain language.

New features and visible changes, newest first. Changes to the webhook contract are always announced here.

**2026-10-31**

### Health

* A new screen, **Health**, lists the problems in the Google Ad Manager setup that cost revenue now or will from a date: a demand channel or a header bidding set that stopped, direct campaigns below goal, sponsorships ending with no renewal, line items that stopped delivering or have no creatives, partner accounts that are not ready, sites not approved and ads.txt files missing the network's line. Stealth checks once a day and never changes anything in Google Ad Manager. See [Health](https://docs.usestealth.dev/en/screens/health.md).
* Each finding says what happened, the revenue **losing** now or **at risk** from a date, and what to do next. Mark a finding as **Fixed**, **Expected**, **Snooze** or **Not a problem**.
* The **Health & Prevention** card on the **Panel** now shows the findings that need action, the money losing per day and the deadlines this week.
* On the Incidents card, the amount per hour now reads **losing** instead of **at risk**. Across Stealth, **losing** means lost now and **at risk** means lost from a date.

### Ad unit page

* Each ad unit now has its own page: whether it is fine, the open incidents and Health findings that reach it, its four Health groups, the last 28 days against the usual same weekday and the last 48 hours of requests against a week before. Open it from the client page, an incident, an Opportunities item or a Health finding. See [Ad unit page](https://docs.usestealth.dev/en/screens/ad-unit.md).
* An incident page shows **Likely cause (Health)** when a Health finding on the same client explains it, and an Opportunities item shows **Also open in Health** in the same case.

### Health and Opportunities alerts

* Health sends one morning summary at 9 AM with what is new or worse, and an email right away when an ad unit that earned is turned off. Opportunities can send one email a week with the new items. Turn each one on or off in **Control Center > Alerts**, and choose your channels in **Settings > Notifications**. See [Email and in-app notifications](https://docs.usestealth.dev/en/alerts/email-and-in-app.md).
* Health and Opportunities never send webhooks. The format of the webhook did not change.

**2026-10-30**

### Opportunities

* A new screen, **Opportunities**, lists the few clients and ad units that earn clearly less per ad request than the market explains. Each item has the likely cause, the value at stake per month as a range, and a confidence level. It is calculated once a week, needs 16 weeks of history in the network, and appears in the sidebar next to **Incidents**. See [Opportunities](https://docs.usestealth.dev/en/screens/opportunities.md).
* Open an item to see a chart against the level expected by the market, the figures before and now, the demand channels and what to check in Google Ad Manager. The team can record a verdict: **Makes sense**, **Does not make sense** or **Mark as applied**. Applied items are measured later, and the scoreboard shows how many delivered.
* The **Opportunities** card on the **Panel** now shows the top 3 open items from the same calculation.
* The format of the webhook did not change.

### Smaller fixes

* The format named **Video** is now called **Player**. It groups ad units in a player (such as a radio player), which serve display ads, not video.
* When more than one Google account is linked, **Choose networks to monitor** shows which account reads each network.
* In **Integrations**, a Google account with no networks now says **No networks found in this account** instead of leaving the line empty.
* **Check now** in the **Control Center** shows a single loading indicator while a check runs.

**2026-10-29**

### Network names in the normal color

* Network names no longer have their own color. They now show in the normal text color everywhere, and the color swatch in **Control Center > Networks** is gone.

### Incident page

* Each incident now has its own page, opened by clicking its type in **Incidents** or in the client page. It shows the key numbers, a chart of what happened against what was normal, whether the drop follows the market or the client, the possible causes with their evidence, other signals in the network and next steps. **Copy summary for support** copies a text summary for a ticket or a chat. See [Incident page](https://docs.usestealth.dev/en/screens/incident.md).
* Possible causes are estimates, not proof. Only changes to the incident's own ad units are ranked as possible causes. Other changes and line items on the network are listed separately, under **Other signals in the network**.
* The team can record a **Verdict** on each incident: the real cause, which possible cause it was and a note. It shows in **Incidents** and in the client page next to the reading.
* The link in an alert email about a single incident opens the incident page. **Activity** records each verdict change in the **Stealth** tab.
* The webhook payload did not change.
* A network tile in the **Control Center** now says **Incomplete data on N days** when Google Ad Manager reported more than Stealth stored on some of the last 7 days. Hover the info icon to see the dates. Figures that include those days may be off until the data is complete.

**2026-10-26**

### Clients, Networks, Formats and Incidents: sort, resize and pages

* The tables in **Clients**, **Networks**, **Formats** and **Incidents** work like the one in **Activity**: click a column title to sort by it and again to reverse, and drag the line between two titles to change a column's width.
* **Previous** and **Next** in **Clients** gave way to page numbers under the list. **Networks** and **Incidents** get them too when the list is long. See [Clients](https://docs.usestealth.dev/en/screens/clients.md).

**2026-10-22**

### Activity: sort, resize and pages

* Click a column title in **Activity** to sort by it, and again to reverse the order. An arrow next to the title shows the direction.
* Drag the line between two column titles to change a column's width, or use the arrow keys on it. Your widths stay in this browser.
* **Newer** and **Older** gave way to page numbers under the list. See [Activity](https://docs.usestealth.dev/en/screens/activity.md).

### More than one Google account

* An organization can now connect more than one Google account to Google Ad Manager, for networks split between accounts. **Integrations** lists each account with its networks and has **Add another Google account**. Each account has its own **Choose networks**, **Reconnect** and **Disconnect**. See [Connect Google Ad Manager](https://docs.usestealth.dev/en/getting-started/connect-google-ad-manager.md#add-another-google-account).
* A network two accounts reach is read once. When the account that reads it loses access or is disconnected, Stealth goes on reading it with the other account.
* In **Activity**, **How to fix** names the Google account that reads each refused network, so the steps say which account to add.
* **Switch Google account** is gone: to replace an account, add the new one and disconnect the old one. On the **Control Center**, **Activity** and the loading screens, the button is now **Connect another Google account**.

### AI Summary without client names

* The **AI Summary** on the **Panel** no longer repeats the **Clients with Problems** list below it: it names no client and no ad unit, and says what the problems have in common, such as the kind of drop, the network most of them sit on or a format several of them share.
* Summaries already generated are written once more in the new style.

See [Panel](https://docs.usestealth.dev/en/screens/panel.md#ai-summary).

**2026-10-20**

### Network colors

* Each network now has a color, and its name shows in that color wherever Stealth mentions it: the **Panel**, **Activity**, **Clients**, **Networks**, **Incidents**, the **Network** filter and the **Control Center**.
* Owners and admins choose the color in **Control Center > Networks**, from the swatch next to the network's name. **Automatic** gives back the color Stealth picked. Red, orange, amber and green stay reserved for status, so they are not offered.

### Your currency, saved with your account

* The currency of the **Panel** is now a preference of yours: choose **R$** or **US$** in **Settings > Profile**, under **Currency**, or in the new **Currency** filter at the top of the **Panel**, next to **Period** and **Network**. Both change the same preference, on every device. Until you choose, the **Panel** follows your browser language: reais for Portuguese, dollars for any other. See [Panel](https://docs.usestealth.dev/en/screens/panel.md#faq).
* The **⋯** menu of the **Panel** now holds only **Edit panel**.
* The notes about the PTAX rate next to the filters are gone. A converted amount still carries the **Estimated** badge, and its card's info icon says how it was converted and, in dollars, the rate and its day.

### Simpler filters and loading line

* **Incidents** opens on **Open** incidents. **All** still lists every incident.
* The line above the **Panel** while history loads is shorter, for example **Loading history · 19% · about 2 h**. The time left shows only once it can be measured, and the networks ready only while some are not.
* How far today's data runs is now in the tooltip of **Today**, no longer as text beside the period shortcuts.
* Every filter button (**Period**, **Network**, **Currency** and the **Clients** filters) now has the same filled look as the period shortcuts, with no outline.
* The organization logo in the collapsed sidebar is larger.

### Activity

* New **Activity** screen, in the sidebar under **Alerts**, with two tabs. **Google Ad Manager** lists every change Stealth read in Google Ad Manager in the last 90 days, with filters by period, network, field and who made it, related changes grouped in one row, and a page per change: before and after, impressions around the change, the item's current state, the incidents that followed and **Copy summary for support**. **Stealth** lists what members changed in Stealth: monitoring, alert rules, the Google Ad Manager connection, webhooks, members and organization settings, with the values before and after. See [Activity](https://docs.usestealth.dev/en/screens/activity.md).
* GAM changes are now kept for 90 days (it was 30).
* The networks Google Ad Manager does not let Stealth read now show as a short notice on **Activity**, with **How to fix**: the networks grouped by reason (API access turned off, or the connected Google account not a user of the network), the steps in Google Ad Manager, a link to Google's help and, for owners and admins, **Switch Google account** and **Stop reading this network**. **Why?** on the **GAM Changes** card opens it, and **Control Center** tiles show the same steps. See [Activity](https://docs.usestealth.dev/en/screens/activity.md#networks-google-ad-manager-does-not-let-stealth-read).
* The **Recent GAM Changes** card is now **GAM Changes**: click a row to open the change, or **See all** to open the screen.
* New **Changes in Stealth** card for the **Panel**, available in **+ Add cards**.
* **Changed by** now also shows the email of the Google Ad Manager user, since a name alone such as "Vinicius" can be more than one person: under the name on **Activity** and on a change's page (with a button to copy it), and when you point at the name on **GAM Changes**. **Copy summary** includes it, and the author filter and search match it. Only members of your organization see it. See [Privacy and data](https://docs.usestealth.dev/en/account/privacy-and-data.md).

### Clearer loading after connecting Google Ad Manager

* The **Control Center** now updates on its own while networks load, within about 30 seconds, with no reload. Before, it could stay frozen until the page was reloaded.
* After you connect, reconnect, switch the Google account or save the network selection, you land on the **Control Center** with a line that says what happened and how many networks Stealth is reading.
* While networks load, the summary counts them: ready, loading and without access from the Google account. **Check now** reads **Checking…** while a check is in progress.
* A network the reconnected Google account cannot see now shows **No access from this Google account** instead of **Connection revoked**, with **Stop reading** and **Switch Google account**.
* A network still waiting for its first check no longer shows **Delayed**.
* **Integrations** shows how many networks are monitored out of all the account's networks, and how many are out of reach of the account.

### Control Center in tabs

* The **Control Center** is now split into three tabs: **Networks**, **Clients** (with the monitoring defaults) and **Alerts**, so each part fits on the screen. The open tab stays in the address, so links and the back button return to it. See [Control Center](https://docs.usestealth.dev/en/screens/control-center.md).

### Networks in other currencies

* Networks that report in another currency, such as dollars, were added to the totals as if their amounts were reais. Stealth now converts them to reais at the latest PTAX rate before adding networks together: **Panel** totals, **Clients** and **Networks** rankings, **Formats**, the market reading, opportunities, the incidents banner, **Recovered** and the AI Summary. Those totals carry the **Estimated** badge. See [Panel](https://docs.usestealth.dev/en/screens/panel.md#faq).
* Select one of those networks and the **Panel** shows its amounts in its own currency, as Google Ad Manager reported them. **Clients**, **Networks** and a client's page show each network in its own currency too.
* If a rate cannot be read, the networks in that currency are left out of the totals and a note next to the filters says so.

### Panel cards easier to read

* **Clients with Problems** and **Health and Prevention** now always take the full width of the **Panel**, so their rows no longer wrap.
* **Recent GAM Changes** is now a table: when, network, item, what changed, source and who made the change.
* **Market** now draws the median eCPM over the weeks as a chart, with its three readings below it and the clients off the market as a list, each linking to the client.
* **Health and Prevention** opens with every check closed: each shows its count and the money at risk, and opens to list its items.
* Cards placed side by side on the **Panel** always have the same height, and each card adapts its layout when it is narrow, so amounts never break across lines. **AI Summary** now always takes the full width, and **Opportunities** takes two columns.
* In **Recent GAM Changes**, a change with no source or no author now says **Not provided** instead of leaving the cell empty.

### Panel in dollars

* The **⋯** menu on the **Panel** now switches its amounts between reais and dollars, under **Panel currency**. Dollars use the latest PTAX rate from the Banco Central do Brasil, shown next to the filters, and carry the **Estimated** badge. Your choice is kept on this browser. See [Panel](https://docs.usestealth.dev/en/screens/panel.md#faq).
* The **Compare with** options and the preview note left the menu: they never changed the numbers.

### Choose your networks and follow the loading

* After you connect Google Ad Manager, or switch the Google account and it sees new networks, Stealth asks which networks to monitor before reading anything. With up to 10 networks, all come checked. Change the list later in **Integrations > Google Ad Manager > Choose networks**. See [Connect Google Ad Manager](https://docs.usestealth.dev/en/getting-started/connect-google-ad-manager.md#choose-the-networks).
* The first check now starts within 5 minutes of your choice, and the 28 days of history load in hours instead of up to a day.
* While the data loads, the **Panel**, **Clients**, **Networks**, **Formats** and **Incidents** show the progress: networks ready, days of history loaded and, once it can be measured, about how much time is left. They no longer ask you to connect Google Ad Manager again.
* The bell tells every member when the **Panel** is ready and when the history is complete.
* The **Control Center** shows each network's refresh state (**Updating now**, the time of the last update, or **Delayed** with the next try) and lists the networks you left out under **Not monitored**. See [Control Center](https://docs.usestealth.dev/en/screens/control-center.md).

### Who made each GAM change

* Each row of **Recent GAM Changes** on the **Panel** now says who made the change: **Changed by** and the name of the Google Ad Manager user. Stealth keeps only the display name, never the email.
* On a network where the Google Ad Manager user connected to Stealth cannot see the change history, the changes still show, without the name. See [Panel](https://docs.usestealth.dev/en/screens/panel.md#recent-gam-changes).

**2026-10-19**

### Recent GAM Changes on the Panel

* A new **Panel** card, **Recent GAM Changes**, lists what changed in Google Ad Manager in the last 30 days on your direct line items, orders and ad units: what changed, which item, its network, when, and the app that made the change. Stealth reads the changes every hour. Google Ad Manager does not say which person made a change, so the card never shows it.
* **May be related**, with the **Estimated** badge, marks a change made up to 24 hours before an incident started on the same network. See [Panel](https://docs.usestealth.dev/en/screens/panel.md#recent-gam-changes).

### Line item checks on Health and Prevention

* The **Health and Prevention** card on the **Panel** now checks your direct campaigns (standard and sponsorship line items, delivering or ready) in Google Ad Manager once a day, in the morning: active line items with no impressions in the last 2 days, line items that end within 7 days below their goal, standard campaigns below 90% of their expected delivery, and line items missing creatives. Each check shows how many line items it found and the first ones, with their order and network.
* A network whose line items Google Ad Manager does not let Stealth read shows as not checkable. The ads.txt check arrives in a later release.

### Switch the Google account

* **Switch Google account**, on **Integrations**, replaces the Google account of the Google Ad Manager connection without stopping the monitoring or losing history. If the new account cannot see some monitored networks, Stealth lists them and asks before switching.
* The Google Ad Manager connection on **Integrations** now shows its state (connected, connection failed or access revoked), the Google account, how many networks it reaches and when Stealth last read them.

See [Connect Google Ad Manager](https://docs.usestealth.dev/en/getting-started/connect-google-ad-manager.md#switch-the-google-account).

**2026-10-16**

### Arrange your Panel

* **Edit panel**, in the **⋯** menu next to the **Network** filter, lets each person choose which cards appear on their **Panel** and in what order: drag a card, use **Move up** and **Move down**, hide a card from its menu or bring it back with **Add cards**. Your arrangement is saved only for you.
* Resize a card by dragging its bottom right corner, or with **Size** in its menu. While you move or resize a card, the grid shows in blue where it will land.
* **Owners** and **Administrators** can mark a card as **Required for the team**. A required card cannot be hidden by anyone in the organization.
* Two new cards on the **Panel**: **Average eCPM** (revenue per thousand impressions) and **Fill Rate** (the share of ad requests that received an ad), each against its normal for the selected period. The eCPM is shown for closed days only: on **Today**, revenue is still an estimate.
* The **Period Summary** card is now called **AI Summary**.
* When there are open incidents, a banner at the top of the **Panel** shows how many, the projected loss per hour and the largest one, with a shortcut to **Incidents**. It follows the **Network** filter, cannot be hidden and disappears when no incident is open.
* Revenue, Loss, Average eCPM, Fill Rate and Recovered now sit side by side in one card, **Key Metrics**. Choose which ones it shows in its menu and drag them to reorder. If you had arranged your **Panel** before, the metrics you showed stay, in the same order, and the others wait in its menu.
* New **Recovered** metric, in **Key Metrics**: an estimate of the loss avoided by the incidents resolved in the selected period. For each one, its projected loss per hour counts for every hour between the fix and 24 hours after it started, the time a drop is assumed to go unnoticed without Stealth. It follows the **Network** filter.
* New **Opportunities** card: ad units selling well below others of the same format in the same network over the last 28 days, by low fill rate or low eCPM, with an estimated monthly gain range for each and in total. It follows the **Network** filter.
* New **Health and Prevention** card: ad units that stopped receiving requests, from the open incidents, with the projected loss per day and a shortcut to each incident. Checks for line items and ads.txt show as not checked yet and arrive in a later release. It follows the **Network** filter.

See [Panel](https://docs.usestealth.dev/en/screens/panel.md).

**2026-10-15**

### Identity confirmation works again

Exporting your data, leaving or deleting an organization, transferring ownership, deleting your account and changing your email ask for a code sent to your email. That code was being refused; it is now checked by Stealth and works. One confirmation lasts 10 minutes.

**2026-10-14**

### Collected reports are deleted when you leave

* Disconnecting Google Ad Manager now deletes the reports already collected 30 days later, unless you reconnect the same network before then. To have them deleted sooner, send a request to [contato@usestealth.dev](mailto:contato@usestealth.dev).
* Deleting the organization deletes its collected reports within 1 hour.
* **Disconnect** in **Integrations** now asks for confirmation and says what happens to the data.

See [Privacy and data](https://docs.usestealth.dev/en/account/privacy-and-data.md).

**2026-10-13**

### What's new inside Stealth

The **What's new** screen, in the user menu, now lists these changes in your language, newest first. A dot on the menu marks changes you have not seen yet on this device.

### Organization settings

* Administrators can now change the organization's name, time zone and logo, not only the Owner. See [Team and roles](https://docs.usestealth.dev/en/account/team-and-roles.md).
* A resolved or closed support ticket no longer blocks deleting the organization. Only a ticket that is still open or in progress does.

### Disconnecting also removes the permission at Google

Disconnecting Google Ad Manager in **Integrations** now also removes Stealth's permission on Google's side, besides deleting the networks, clients, ad units and incident history of the connection. Deleting the organization does the same. The permission stays when another Stealth organization is still connected with the same Google account. See [Connect Google Ad Manager](https://docs.usestealth.dev/en/getting-started/connect-google-ad-manager.md).

### No recent data notice

The **No recent data** notice now goes out only when Stealth cannot read a network's Google Ad Manager reports for more than 3 hours. A network with little traffic, where some hours have no ads at all, no longer triggers it. An ad unit or client that stops serving is still reported by the revenue alerts. See [Alerts and notifications](https://docs.usestealth.dev/en/alerts/overview.md).

### Security improvements

* Turning off two-factor authentication, changing your email and deleting your account now always require your second factor when it is on.
* **Remove photo** now deletes your profile photo, not only its link.
* A user can own up to 5 organizations. Contact support if you need more.

**2026-10-11**

### Stealth becomes a revenue monitor for Google Ad Manager

Stealth now watches the revenue of every ad unit of your Google Ad Manager networks and alerts your team when something stops or drops.

* **Connection to Google Ad Manager** with read access to reports, and the [Control Center](https://docs.usestealth.dev/en/screens/control-center.md) to choose which networks and clients are monitored.
* **Panel** with revenue against normal, estimated loss, clients with problems, market signals, portfolio, daily and hourly charts, and a summary written by AI.
* **Clients**, **Networks**, **Formats** and **Incidents** screens.
* **Six kinds of detection**: ad unit stopped, no ads served, client lost traffic, client fill rate dropped, revenue per request dropped and revenue trending down, with one severity scale (Light, Attention, Critical). See [Alert kinds](https://docs.usestealth.dev/en/detection/alert-kinds.md).
* **Organization alert rules** with minimum severity, mandatory alerts and exceptions per network, client, format or ad unit.
* **Personal preferences** for in-app and email alerts, with a daily summary at 08:00.
* **Webhooks**, contract `v1`, signed with HMAC-SHA256. See [Webhooks](https://docs.usestealth.dev/en/alerts/webhooks.md).
* **Demand source reading** that tells whether a client's drop is likely the market or the client itself.
* **Formats** keep the format of each ad unit even after it stops receiving traffic.
* New email layout for every alert and account email, in English and Portuguese.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.