Technical documentation
VS Code integration guide
The current repository contains an implemented VS Code extension with status-bar and dedicated sidebar sponsored placements. The package is marked private, so this guide does not claim public Visual Studio Marketplace availability.
Availability
The implementation exists in extensions/vscode and can be built and packaged from the repository. Its package metadata currently marks it private. Treat repository implementation and public marketplace publication as separate states.
Sign in with device authorisation
The extension uses a browser-assisted device flow rather than trying to keep a Firebase browser session inside VS Code. The developer starts sign-in from the command palette, confirms a short code in the AdFrolic web application and returns to the editor.
1. Run "AdFrolic: Sign In" from the Command Palette
2. Confirm the short device code in the browser
3. Return to VS Code
4. The developer session is stored in VS Code SecretStorage
5. Run "AdFrolic: Sign Out" to clear the stored sessionThe resulting session token is stored using VS Code SecretStorage, which is backed by the host's secure credential storage rather than a plain extension setting.
Implemented placements
vscode.ai_waitStatus barRefreshes periodically while the editor window is focused.vscode.sidebarAdFrolic sidebarRefreshes while the dedicated sidebar panel is visible.The extension renders approved structured creative in these reserved surfaces. It does not place arbitrary advertiser HTML over editor content.
Runtime behaviour
AdFrolic selection, budgeting, fraud checks and billing stay on the backend. The VS Code client asks for an eligible placement, renders the returned structured creative and reports the impression lifecycle. The host integration does not implement its own advertising auction.
Status and sidebar refresh behaviour is tied to host state so the integration can avoid unnecessary work while the relevant surface is not active.
Data boundary
The advertising request does not send source code, open files or workspace contents. Supported fields include the installation identifier, placement, client context and coarse optional context permitted by the shared request schema.
Can be used
Installation ID, placement, client version, protocol version and supported coarse context such as language, country or OS.
Not part of the ad request
Source code, file contents, prompts, clipboard contents and terminal output.
Failure behaviour
The extension is designed so an advertising outage does not interrupt normal editor use. Network calls use the shared AdFrolic client and are treated as optional to the host workflow. A failed request should leave the sponsored surface empty or unchanged rather than throw into the primary editor path.