Not_Foreplay Capture — Privacy Policy

Extension version 0.1.0 · extension ID flnnpcjfopjebpahbglkelicjfojbleh · last updated 27 August 2026

Not_Foreplay Capture is an internal, invite-only tool. It is useless without an existing Not_Foreplay workspace and a capture token issued from it, and it is distributed unlisted to one team.

Single purpose

Save ad creative that your workspace is authorized to capture into that workspace's Not_Foreplay account, one ad at a time, started by you.

What is stored on your device

One settings object in chrome.storage.local, under the key nf.settings.v1:

FieldWhat it is
baseUrlthe Not_Foreplay app you paired with
captureTokenyour capture credential, issued by that app
workspaceId, brandIdwhere captures are filed
authorizedOriginsthe sites your workspace has authorized

Local storage, deliberately not Chrome's synced storage: a synced token would be replicated through your Google account to every machine you sign into, silently widening where a workspace credential exists. Unpairing deletes the token from the device.

What is read from the page

Only the page's DOM, and only after you click the extension on a site your workspace has authorized. Specifically <meta property="og:…"> tags, <script type="application/ld+json"> contents, and data-nf-* attributes, plus the src, href and text of the ad element those identify.

No snapshot of the page is taken or stored, and no page HTML is transmitted.

What is sent, and only when you confirm a capture

To the Not_Foreplay app you configured:

To object storage (Cloudflare R2):

Nothing is sent before you press the capture button. A cancelled or unconfirmed extraction transmits nothing.

About capturedFromUrl

This is one URL — the page you deliberately chose to capture — recorded as the ad's provenance so your workspace knows where a creative came from. It is not a browsing log, and no other URL you visit is recorded or transmitted. We state this explicitly rather than relying on a category argument, because a disclosure that survives on a technicality is not a disclosure.

Permissions, and why each exists

PermissionWhy
activeTabRead the ad from the page you are on, only after you click the extension. Grants nothing until that click, and nothing for other tabs.
scriptingInject the extraction script into that one tab. There is no automatic content script, so nothing runs on any page by itself.
storageKeep your pairing settings and capture token on this device.
Site accessRequested per origin, at the moment it is needed, never held for all sites. Two grants exist: the app URL you paired with, and the media host of an ad you are capturing. HTTPS only.

The extension holds no permanent site permissions. Chrome's own prompt wording for a site grant — “read and change your data on …” — is the same string for any site access; this extension uses that access solely to download the media file you confirmed.

What this extension does not do

Surfaces that cannot be captured

Third-party ad libraries — Meta Ad Library, Google Ads Transparency Center, and LinkedIn's and TikTok's ad-library surfaces — cannot be captured with this extension. Their terms do not permit programmatic capture, and owning the advertised content does not override a platform's restriction on access. This is enforced on the Not_Foreplay server, not only in the extension.

Data sharing and retention

Captured ads are stored in your own Not_Foreplay workspace and are visible only to that workspace. Nothing is sold, and nothing is shared with third parties for advertising or analytics. Retention follows your workspace's own data, which your workspace administrator controls.

Privacy questions

Contact christianj@phoscreative.com.