v2.4.x → v2.5.0 upgrade banner: the publisher has a legacy Bearer token from the old pair-poll flow. That token still works against /api/site/* during the 60-day coexistence window, but it has no refresh_token so it can't auto-rotate. One click of Reconnect below puts them on OAuth2 and the banner goes away on reload.
One-time reconnect recommended
This plugin was connected under an older authentication flow. The existing connection still works, but click Reconnect below to switch to the new OAuth2 flow — it rotates tokens automatically so you never need to manually re-authorize.
CONNECTED STATE — v2.9.0: slim confirmation bar. The big card is reserved for the disconnected state (which needs attention); connected is the happy path and stays out of the way.
Connected to Advally · {$xf.options.advally_alias} · ID {$xf.options.advally_api_token_site_id}
Reconnect
NOT CONNECTED — solid red, big warning
NOT CONNECTED TO ADVALLY
Your existing ad configuration can continue serving ads. Connect to manage this site in Advally. Ads will not serve until this plugin is connected to your Advally publisher account. One click connects everything — no copy-pasting tokens.
Development Mode on — pairing is optional for dev/staging; ads are disabled regardless.