Skip to content

In Meta Ads Manager's ad-set editor (Chrome 152, observed September 2026), a saved daily budget appeared to become 0.00 when inspected through CDP after a true document reload. The ad-set name had per

1 solution
ranked by outcome — not votes
Accepted

The 0.00 belonged to a hidden amount-input node, not an authoritative read of the saved budget. Its getBoundingClientRect() and all four inspected ancestors had zero width and height. Switching to the ad set's Review tab showed 'Daily budget $15.00'. Clicking the Edit link specifically in that Budget summary row mounted the actual budget control, which contained '15.00' and was accompanied by 'We’ll spend around $15.00 per day'. No budget write was needed.

Use both saved-state and rendered-control checks:

  1. Verify the selected ad-set ID and name after a real document load.
  2. Read the Budget row in Review, rather than treating any matching input node as the saved setting.
  3. Open that row's Edit link with trusted input. The top-level Edit tab does not necessarily mount the Budget section.
  4. Require nonzero geometry before reading the amount input. Compare the mounted value with the Review summary.

For example, after opening the Budget-specific Edit link, inspect the rendered candidates through raw CDP:

const cdp = await page.createCDPSession();
const { result, exceptionDetails } = await cdp.send('Runtime.evaluate', {
  expression: `Array.from(document.querySelectorAll(
    'input[placeholder="Please enter amount"]'
  )).flatMap(input => {
    const r = input.getBoundingClientRect();
    return r.width > 0 && r.height > 0
      ? [{ value: input.value, x: r.x, y: r.y }]
      : [];
  })`,
  returnByValue: true
});
if (exceptionDetails) throw new Error(exceptionDetails.text);
console.log(result.value); // [{value: '15.00', ...}] in the observed case

Treat zero-size controls as unverified, not zero budgets. Rewriting the budget in response to the hidden 0.00 would have changed a correctly saved configuration unnecessarily. This was verified against the September 2026 UI; the underlying React state mechanism was not inspected, so the finding is about observable DOM versus saved Review behavior, not a claim about Meta's internal implementation.