Privacy
What this sends, and where
What AdPlaybook sends and where it sends it, named destination by named destination, for the build you can download today — including which steps leave your Mac, which do not, and why you do not get to choose.
last changed 2026-09-24 Checked against the source of the build behind the Download button, not against a template. Where the app and this page could disagree, the app is the fact and this page is the bug.
The short version
There is no account, no server of ours, and no telemetry. Nothing is reported back to Kerr & Company LLC, because there is nowhere for it to be reported to. We hold no data about you at all, so there is nothing for you to ask us to delete.
One step is different, and it is the one that matters. The writing is done by
a model, and which model — and therefore where your text goes — is
settled by your machine, not by you. If Outlier is answering here and
has issued a key this app can read, the writing happens on 127.0.0.1
and nothing about your product leaves this Mac. If it is not, the text harvested
from your site, your product details, every draft ad, and up to 3,000 characters
of any landing page you point the ad at go over the internet to Claude on your
own Anthropic key. The app takes the first provider it can reach, in a fixed
order, and does not ask first. That is not a footnote, and there is no setting in
the app that changes it.
The homepage used to carry that as a badge. It was removed because it was not true, and it is still not true — not even with Outlier running. Two fetches go out over the network whichever provider you end up on: the crawl of the site you typed, and, if you give the ad a destination URL, a fetch of that page. Both are aimed at sites you named yourself, and neither reaches us. What the model then sees is a separate question, and the table below answers it.
The claim that does hold, and only while Outlier is the provider that answered, is the narrower one the app itself makes: nothing about your product leaves this Mac. When Outlier is not the one answering, the harvested text, your product details, every draft ad and the landing page's text go to a model vendor on your own key, and the app makes that choice without asking you.
Outlier is also made by Kerr & Company LLC. The app ranks it first because it runs locally and costs nothing per run, and you are entitled to know we have an interest in you using it before you take the recommendation.
Where each thing actually goes
Read this as the list of destinations, in the order a run reaches them.
| What | Where it goes | Kept how long |
|---|---|---|
| The website you point it at | Fetched directly by your Mac, at most 25 pages. It reads that site's
robots.txt and skips links that Googlebot would be told to
skip — that is the rule set it follows, because it asks the file about Googlebot
rather than about itself — and it does not apply that check to the address you
typed or to URLs listed in the sitemap. It leaves a quarter of a second between
requests and backs off when a site says it is being asked too often; it does not
read Crawl-delay. It sends a Chrome user-agent string with
AdPlaybook/1.0 appended, so a site owner reading their logs closely
can tell what it was, but it does not present itself as a bot to anything that
only checks the prefix. Certificates are not verified on these fetches, because a
broken certificate is itself worth reporting — on a hostile network that means
what it reads could have been tampered with. |
In memory for the run |
| The landing page you point the ad at | Fetched by your Mac, following redirects wherever they lead, including onto a
site you did not name. Its title, headings, calls to action and first 3,000
characters of visible text are then sent to whichever provider is doing the
writing, so the ad's promises can be checked against the page. Unlike the crawl,
this fetch does not read that site's robots.txt, and it still
identifies itself with a user-agent left over from the crawler this was built
from (Docket-SEO-Audit/1.0). Both are bugs and both are on the list.
Leave the destination field empty and none of it happens — and the app reports
the check as skipped rather than as passed. |
The fetch itself, in memory for the run. What was sent onward is with the provider — the row below |
| The text it harvested, your product details, every draft ad, and the landing page's text | To exactly one provider, resolved once at the start of the run and used for
all of it. Outlier — http://127.0.0.1, this Mac,
nothing over the internet. Or Claude (Anthropic), over the
internet, authenticated with your key; what Anthropic then does with it is
governed by Anthropic's terms and privacy policy, not ours. ChatGPT
(OpenAI) is a third option in the code that the app as installed cannot
reach — see the box below. Which one you get is settled by your machine, not by
the picker. |
On Outlier it never leaves this Mac; how long Outlier itself then keeps it is Outlier's business, not ours. On Claude, ask Anthropic — we cannot see it and cannot speak for them |
| Your API key | Written to a file on your Mac. The Anthropic key is read back and sent to Anthropic when a run uses it. A key you enter for ChatGPT is written and read by nothing at all, so it is sent nowhere, including to OpenAI — see the box below. Never to us, never to a provider it does not belong to, never into a log line. | Until you delete the file |
| The brief, the strategy scores, the campaign, the evidence receipt, the exports | Nowhere. They are held in the app's memory while it runs. | Gone when you quit, unless you saved a file |
| Anything at all, to Kerr & Company LLC | Never. There is no server of ours for it to reach, no analytics in the app, no crash reporting, and no licence check that would phone home. | — |
If any provider is already usable on your Mac you never see this screen — the app goes straight to the start screen and uses that provider, and you reach the list only through the settings gear. When you do see it, the app lists three providers and marks Outlier as recommended because Outlier runs on your Mac. In v0.2.53 — the build the Download button serves — choosing one does not change where the run goes. The button moves you to the next screen and records nothing.
The run asks the machine instead, in this order. Outlier, if
it is both answering on 127.0.0.1 and has issued a local key this
app can read from ~/.outlier/openai_api.json — a running Outlier
with no key in that file is skipped, and the provider screen says "ready" next to
it only when both hold. Otherwise ChatGPT, if
OPENAI_API_KEY is set in the environment the app inherits; nothing
in the app sets it and the ChatGPT box in Settings cannot produce it, so unless
you have set that variable yourself for the whole login session, this option is
unreachable. Otherwise Claude, if an Anthropic key is on the
machine. Otherwise it stops and names each one it checked and why it could not
use it.
That is a defect, not a policy, and it has a second half worth stating
plainly: a key you paste into the ChatGPT box is saved and then never
read. It is written to ~/.config/adkit/openai.key and
nothing loads it back. So the practical destination set for the app as shipped is
Outlier or Claude: with Outlier not answering, the run goes to Claude if you have
an Anthropic key and refuses to start if you do not.
The app also does not tell you which one it chose. Nothing names the provider until the first cost line appears — after the first model call has already happened — and on Claude that line shows the cost without the vendor's name. The guide, the evidence receipt and the exports do not record it either. If you need that in writing for a compliance file, ask.
Until this page says otherwise, do not treat the
picker as a privacy control. If a run must stay on this Mac, check the provider
screen says "ready" next to Outlier before you start it. If a run must not reach
Anthropic, remove ANTHROPIC_API_KEY from the environment and delete
~/.config/adkit/key (or $XDG_CONFIG_HOME/adkit/key).
Deleting openai.key changes nothing, because that file is not what
the app reads. Removing the key is the only control that actually works.
What it writes to your Mac, and exactly where
~/.config/adkit/key— your Anthropic key, created with owner-only permissions (0600). IfXDG_CONFIG_HOMEis set, that path is used instead.~/.config/adkit/openai.key— written with the same permissions when you enter a ChatGPT key, and read by nothing. Always under your home directory even whenXDG_CONFIG_HOMEis set, unlike the file above. Delete it; it does nothing.~/.outlier/openai_api.json— read, never written. That file belongs to Outlier; the app reads it to find the port Outlier is listening on and the local key it issued. It also checks anOUTLIER_PORTvariable and, failing both, tries a short range of loopback ports. All of that stays on this Mac.~/Library/WebKit/app.adplaybook.desktop/— created by the macOS web view the window is built from. The app stores nothing in it; macOS does.- Anything you explicitly export or save, wherever you chose to save it.
That is the complete list. Deleting those files and the app removes everything it put on the machine.
This website
These pages are static files served by GitHub Pages. There is no tag manager, no embedded font and no form to submit.
There are three scripts. This page once claimed there were none, then said one, then two; each time it was corrected the same day the claim stopped being true, and this is the fourth such correction rather than a rewrite of history.
The first is Plausible, which counts page views without cookies and without collecting anything that identifies a visitor — no cookie, no device fingerprint, no cross-site profile, and nothing we could use to recognise you on a return visit. It tells us how many people read a page, not who.
The second is Sled, which
credits the right person when somebody recommends this app. It is conditional and
that distinction is the whole point: it sets a single ta_ref cookie
only if you arrived through an affiliate link. Arrive any other
way — a search result, a bookmark, a link from us — and it sets nothing at all. It
records which affiliate sent a visit, never who the visitor is.
The third is a Meta (Facebook) advertising pixel, and it is the one on this page that actually tracks you. When it is switched on it loads code from Facebook, sets Meta's cookies in your browser, and tells Meta that this browser visited this page — which Meta can match to a Facebook or Instagram account. That is a different kind of thing from the two above, and calling it analytics would be a dodge: it exists so we can advertise this app on Meta and see which ads led somewhere.
That id is now set, and the pixel is running. The paragraph above has stopped describing something hypothetical: on every page of this site, code loads from Facebook, Meta sets its own cookies in your browser, and Meta is told that this browser visited this page. This page said the id was empty until the day it wasn't, and this sentence changed in the same commit that filled it in — which is the only version of this promise worth making.
You can still check rather than trust us, and the check is better now than it
was: view the source of any page and find META_PIXEL_ID. It reads
1983109892356693. If you would rather it did not run, any content
blocker stops it, and nothing on this site needs it — every page,
every tool and the download all work identically with Facebook blocked. We would
rather you block it than not know it was there.
View the source of any page and those three scripts are what you will find; there is nothing else.
Two things are true anyway and you should know them:
- GitHub serves the site and the download. Fetching a page or the DMG is an ordinary HTTP request to GitHub's servers, which receive your IP address the way any web host does. GitHub's privacy statement governs that.
- The domain is verified in Google Search Console. That shows us aggregate search queries and click counts for the site. It does not identify anyone and we cannot use it to.
Your rights, stated honestly
Access, correction, deletion and portability all assume someone is holding your data. Almost none of it is here. There is no customer record and no copy of anything the app produced, so for those a request has the same answer every time, which is that there is nothing there.
One exception, and it only exists if you typed it in. If you gave us an email address in the form on the home page, we hold that address, the name of the site it came from, and the time it arrived. That is the entire row. No IP address, no user agent, no referer, no fingerprint, and nothing that would let us build a profile — storing that "just in case" would make the sentence above false. Nothing loads on page view to collect it; the form posts once when you submit it. Consent is per product, so subscribing here does not subscribe you anywhere else. Ask and it is deleted.
Where your data may exist — if the run reached a cloud provider rather than Outlier on your own Mac — is with that provider, under your own account with them, and with GitHub as the host of this site. Those requests go to them. If it would help to have that in writing from us for a compliance file, ask and you will get it.
It describes v0.2.53; this policy was last changed 2026-09-24. It does not describe any future build, and the paid licence is the same application as the free one, so this page covers it too: this build does not ask for a licence key or check one, so licensing sends nothing (see the terms). If a build ever checks licences, or adds an account or a server, this page changes before that build ships, not after.
It also cannot tell you what your own run will do. Where the writing happens depends on what is running and which keys are on your Mac at the moment you press go, and this page cannot see that. It can only tell you the order the app checks in and what each outcome means, which is what it does above.
Listed rather than left blank, for the same reason the spec pages list what could not be verified: a policy with no gaps is either complete or hiding something, and from the outside those look identical.
Changes, and how to reach us
The date at the top of this page is the date its text last changed, set by hand. It does not move when the site is rebuilt.
Questions about any of this go to matthew@kerrandcompanyholdings.com, or see the contact page for who is on the other end.