How this Ads Manager deployment handles data.
Last updated 10 October 2026
This is a self-hosted Model Context Protocol server, operated by Next Day Roofing Solutions LLC. It connects an AI assistant to advertising accounts on Google Ads, Google Business Profile and Meta (Facebook and Instagram), so the assistant can read those accounts and make changes to them on the operator's behalf.
There is no shared service behind it. It runs on infrastructure the operator controls, holds its data there, and reports to no one else — the authors of the software receive nothing from a running deployment, including no telemetry, error reports or usage statistics.
These are the keys, not what they open:
Every tool call is answered live by the platform's own API and relayed straight back to the client that asked. Campaign structure, budgets and bids, performance metrics, search terms, audience names, Business Profile locations, and customer reviews are all handled this way: read, returned, and gone. None of it is written to disk here and none of it is retained after the response is sent.
Copies do persist in two places this policy does not govern — at the platform the data came from, and in the conversation history of the AI client that asked for it. Both are covered by their own terms.
This application's use and transfer of information received from Google APIs to any other app will adhere to the Google API Services User Data Policy, including the Limited Use requirements.
This deployment requests these scopes, and uses them for these purposes only:
auth/adwords — reading and managing the Google Ads accounts the
connected login can already reach. This is the only scope under which anything
is changed.
auth/business.manage — requested only when the Business Profile
tools are switched on, and left unrequested otherwise. Google publishes no
read-only variant of it, so this server narrows it in code instead: the
Business Profile client issues nothing but GET requests, and refuses outright
any path addressing who may administer a profile. It reads locations,
performance and reviews, and it does not write to a profile or touch user
access.
auth/datamanager — requested only when the Data Manager tools are
switched on, and left unrequested otherwise. It uploads offline conversions and
customer-match audience lists to the operator's own Google Ads account, so that a
job which closed over the phone or weeks after the click can be counted against
the advertising that produced it. The identifiers in such an upload — email
address, phone number, name, street address — are normalised and SHA-256 hashed
on this server before the request is sent, and the hash is what Google receives.
Nothing uploaded this way is retained here. This scope also permits removing
those rows again, which the server uses only to honour a deletion.
auth/tagmanager.readonly,
auth/tagmanager.edit.containers and
auth/tagmanager.edit.containerversions — requested only when the Tag
Manager tools are switched on, and left unrequested otherwise. They read the Google
Tag Manager container that measures the operator's website, and draft changes to it
inside a workspace, which is a draft the live site never serves.
auth/tagmanager.publish is deliberately not requested,
so the credential this server holds cannot change what runs on the live site; nor
are delete.containers or manage.users, so it can neither
destroy a container nor alter who has access to one.
openid and email — identifying which Google account
is connected, so the admin UI can show it rather than an opaque token.
Information received from Google APIs is not used to serve advertising to you, to build or enrich a profile of any person, to train or improve any artificial intelligence or machine learning model, or for sale or transfer to a data broker. No human reads it except the administrator of this deployment, and then only where a tool response displays it in the ordinary course of managing the accounts.
The Meta access token is issued by the operator from their own Business Manager and used to read and manage the ad accounts it grants. Its use is subject to the Meta Platform Terms. As with Google, the data is relayed and not retained, and it is not used for profiling, model training, or transfer to anyone else.
One cookie, and only after an administrator signs in: a session cookie marked HttpOnly and SameSite, and Secure whenever the server is reachable over HTTPS. It identifies the signed-in administrator and nothing else. There are no tracking, advertising or analytics cookies anywhere on this server, and this page sets no cookie at all.
The server logs requests and errors at a level the operator chooses. Access tokens, refresh tokens, client secrets and OAuth authorization codes are redacted from any URL before it is written to a log. Log retention is whatever the hosting environment keeps.
Stored credentials are encrypted at rest; traffic is served over HTTPS; the admin UI is password-protected with a rate-limited login; and the MCP endpoint refuses unauthenticated callers unless the operator has deliberately opened it. No system is perfect, and this one is only as protected as the server it runs on and the secret key it was given.
Material changes will be reflected here with a new date at the top of the page. Continuing to use the service after a change means accepting the revised policy.
Questions about this policy, or about data held by this deployment, go to admin@ndrgs.com. This service is operated by Next Day Roofing Solutions LLC.