Skip to main content

Ad accounts (retired)

Retired

This page has been retired. Ad accounts are now managed from the Client detail Ad accounts tab or the Connectors tab in Report settings.

  • Route: /admin/ad-accounts
  • Guard: /admin/* layout — authenticated + isAdminTier() (super_admin, admin, account_manager); lower roles are redirected to /portal.
  • Screenshot: none — the route never renders a page. Source review shows a server redirect to /admin/clients; verify the deployment separately.

What this route is now​

/admin/ad-accounts is a stub redirect. The route file (src/app/admin/ad-accounts/page.tsx) unconditionally redirects to /admin/clients and exists only so historical links and bookmarks keep working. No query parameters are read or forwarded.

Where ad-account management actually lives​

Ad-account inventory and configuration is per-client:

  1. Admin side — /admin/clients/[slug]?tab=ad-accounts ("Ad accounts" tab of the client detail hub, P21). Shows the client's platform bindings (Meta Ads, Google Ads, TikTok Ads, Shopify, Hyros, …) with connector credential state, and is where accounts are bound to or unbound from the tenant. Platform names are normalized for display (e.g. facebook renders as "Meta Ads") — the same normalization used on the /admin/clients list.
  2. Marketing side — /marketing/settings Connectors tab (MarketingConnectorDirectory) shows binding status and credential management for the selected client, backed by the same connector APIs.

Cross-tenant health of those accounts (freshness, rate limits, last sync errors) is not here either — that is /admin/sync-health (P28), which lists every account under its client row with per-account sync buttons.

Why the cross-client page was removed​

Same consolidation as /admin/brands: an ad account is only meaningful as a binding to a client, so the standalone cross-tenant inventory was folded into the client detail hub during the client-onboarding consolidation. The redirect targets the client list because the route cannot know which tenant the visitor wanted.

Behavior summary​

AspectValue
HTTP behaviorServer-side redirect('/admin/clients')
Query paramsNot preserved
Nav entryNone — removed from src/lib/nav.ts
Rendering modeforce-dynamic, no cache

Key files​

File / endpointRole
src/app/admin/ad-accounts/page.tsxThe redirect (whole page)
src/app/admin/clients/[slug] + src/components/admin/client-sections/Ad accounts tab (bindings + connector credentials)
src/app/api/admin/accounts/Account-level admin API used by the per-client tab
src/app/api/admin/connectors/Connector credential API behind the Connectors surfaces
src/app/admin/layout.tsxAdmin-tier guard for the route

Verification​

Source-reviewed on 2026-08-26: src/app/admin/ad-accounts/page.tsx contains only the redirect. This does not certify the current deployed route.