Legal
Privacy Policy
Updated November 6, 2026
Adport is a paid-media control plane operated by Yannick Westermann, trading as Yannick Westermann Labs. It can be used as self-hosted open-source software or through the managed Adport Cloud service. This policy explains both modes and, in particular, how Adport Cloud accesses, uses, stores, protects, retains, and shares Google user data.
Website and Cloud account data
Adport does not use advertising cookies or tracking pixels. Our hosting providers may process standard request data, including IP address, user agent, requested URL, and request time, to deliver and secure the site. If you create an Adport Cloud account, we process your email address, display name, organization membership and role, security settings, connection status, API-key metadata, and service audit events to authenticate you and operate the service. API-key secrets are shown once and stored only as keyed cryptographic digests.
Support messages
If you use the website support form, we process your reply email address, message type, message, and the page path where you contacted us so we can respond. The form sends these details to our support inbox through Resend, our email delivery provider. It does not include URL query parameters or add you to a mailing list. Short-lived, keyed request hashes help limit abuse. Contact yannick@adport.dev to ask about your support messages or request deletion.
Optional Cloud product analytics
With your opt-in consent, the hosted dashboard uses PostHog to understand setup progress, feature use, returning use, and subscription conversion so we can improve Adport. This includes dashboard sections viewed, provider connection outcomes, account-access choices, organization and project creation, hosted-agent connection and tool outcomes, role, plan, and subscription status. We use keyed pseudonymous user, organization, and project identifiers. We do not send your name, email address, advertising account identifiers or names, advertising content, reports, spend, tool arguments or results, credentials, raw URLs, or provider error messages to PostHog.
Analytics is off until you choose Allow analytics. Your choice applies to your authenticated dashboard and hosted-agent activity across your Adport projects. You can decline or withdraw through Privacy preferences in the dashboard without losing features. We store this choice in our database. We do not use analytics cookies, browser fingerprinting, automatic page-content capture, or session recordings. Analytics requests are sent by our server without forwarding your IP address or browser headers. PostHog processes the permitted usage metadata on our behalf. Our PostHog project is hosted in the United States. Event retention follows the configured project retention period; contact us to request deletion of historical analytics. Withdrawal stops future collection and does not automatically delete earlier events. Local CLI and self-hosted MCP installations do not send product telemetry.
Google user data
The Google Ads connection requests the OAuth scope https://www.googleapis.com/auth/adwords. Google Ads offers one OAuth scope for its read and management functionality, so there is no narrower Google Ads scope that can provide Adport's user-facing reporting, preview, create, update, and remove features. Adport does not request access to Gmail, Google Drive, Google Calendar, Google Photos, contacts, general Google Account profile data, or other unrelated Google services.
Raw and derived data Adport accesses
Raw Google Ads data may include OAuth access and refresh tokens; accessible customer, manager, and account identifiers; account names, status, currency, and time zone; campaigns and campaign budgets; bidding settings; ad groups; ads, assets, and responsive-ad text; keywords and other targeting criteria; conversion and attribution fields; change history; and performance fields such as impressions, clicks, cost, conversions, conversion value, and return on ad spend.
Adport derives only the data needed for its visible features: normalized reports and performance metrics, account and campaign summaries, proposed-change previews, budget deltas, policy findings, short-lived pending-operation records, and audit events. Aggregated metrics remain associated with the applicable advertising account or campaign unless the user exports or directs them elsewhere. Adport does not create or sell an anonymized advertising-data product.
The optional Google Tag Manager connection requests https://www.googleapis.com/auth/tagmanager.edit.containers, https://www.googleapis.com/auth/tagmanager.edit.containerversions, and https://www.googleapis.com/auth/tagmanager.publish. These permissions let users inspect tracking configuration, create or edit draft tags, triggers and variables, create container versions, and separately approve publishing a version. GTM data includes account and container identifiers, workspace configuration, tags and custom code, trigger rules, variable definitions, consent settings, saved versions and workspace changes. GTM access does not provide live visitor or conversion reports. Adport does not request GTM account-user management or container-deletion permissions.
The optional Google Analytics 4 connection requests only https://www.googleapis.com/auth/analytics.readonly. It accesses accessible account and property identifiers and names, property currency and reporting time zone, available standard and registered custom dimensions and metrics, and requested historical or realtime reports. Reports may include acquisition sources, landing pages, traffic, events, key events, engagement and revenue metrics. This connection cannot change Google Analytics configuration or measurement settings.
The optional Google Search Console connection requests only https://www.googleapis.com/auth/webmasters.readonly. It accesses verified property identifiers and permission levels; requested organic Google Search queries, page URLs, countries, devices, search appearances, clicks, impressions, click-through rates and average positions; submitted sitemap status; and URL index-inspection results. It cannot submit or remove sitemaps, change site settings, or request indexing. Cloud users explicitly select which GA4 and Search Console properties their project and assistants may read.
How Adport uses Google user data
Adport uses raw and derived Google user data only to provide or improve user-facing Adport features requested by the user: connect and list accessible accounts and selected analytics properties; retrieve, normalize, and display reports; inspect advertising, website analytics, organic search performance and tracking configuration; identify findings for the user's review; preview proposed changes; and, only after Adport's mandatory preview-and-exact-approval step, create, update, pause, enable, or remove Google Ads resources, or make the requested Google Tag Manager configuration or publishing change. GA4 and Search Console access is read-only. Adport also uses connection metadata, pending operations, and audit events to secure the service, enforce tenant policy, troubleshoot user-visible failures, and show the user what Adport did.
Adport does not use Google user data for targeted, personalized, interest-based, or retargeted advertising; data brokerage or information resale; lending or creditworthiness; surveillance; unrelated profiling; or automated decisions about individuals. Adport does not sell Google user data.
AI and machine-learning restrictions
Adport does not use raw, aggregated, anonymized, or derived Google user data to develop, improve, or train general-purpose or shared artificial-intelligence or machine-learning models. Adport does not transfer Google user data to third-party AI providers for their model training. If a user deliberately invokes Adport from an AI or MCP client, the requested result may be sent to that user-selected client solely to answer the user's request; Google OAuth tokens and provider secrets are never included. The user is responsible for choosing a client whose data controls match the user's requirements.
Adport's use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including its Limited Use requirements.
Sharing and transfer of Google user data
Adport Cloud transfers Google user data only as necessary to provide or improve the prominent user-facing features described above, with the user's consent or direction:
- to Google OAuth, Google Ads, Google Tag Manager, Google Analytics and Google Search Console API endpoints to authenticate and perform the user's requested reads or permitted changes;
- to contracted cloud infrastructure providers, including the managed database and authentication service used by Adport Cloud, solely to host, secure, and operate Adport on our behalf;
- to the user's selected MCP client, AI client, or other integration when the user asks that client to retrieve or act on Adport data; and
- when required by law, or when necessary to investigate fraud, abuse, or a security threat.
Adport does not transfer Google user data to advertising networks, data brokers, information resellers, lenders, or unrelated third parties. Service providers may process data only for contracted service operations and are not authorized by Adport to sell it, use it for advertising, or train shared AI models.
Storage and protection
Adport Cloud stores Google refresh tokens in a tenant-isolated credential vault encrypted at the application layer with authenticated encryption and tenant/provider-bound additional data. OAuth state uses a one-time, expiring, hashed state value and PKCE. Access tokens are obtained when needed and are not stored as durable database records. Tenant data is protected by organization membership checks, role-based authorization, database row-level security, least-privilege grants, rate limits, short-lived sessions, and audit logging. Provider credentials, OAuth client secrets, database administrative keys, and encryption keys are never sent to the browser or included in API responses. Production traffic must use TLS, and operational access is limited to authorized personnel who need it to operate or secure the service.
Retention, revocation, and deletion
Google refresh tokens are retained until the user disconnects the relevant Google connection, deletes the organization, or asks us to delete the data. Disconnecting GTM removes its encrypted credential from Adport. Because Google application-wide revocation can also revoke Google Ads access, users revoke the shared application's access from their Google Account permissions when desired. When a connected GTM grant shares the application, Google Ads disconnect also removes the local credential and explains this manual revocation step; otherwise Adport revokes the Google Ads token before removing it, retaining it for retry if revocation fails. OAuth transactions expire after 10 minutes and are deleted no later than approximately 24 hours after expiry. Rate-limit records are deleted after approximately one hour.
Pending operations, audit events, and related tenant records use a 90-day default retention period. An organization owner or administrator may configure a period from 1 to 3,650 days; a daily database retention job deletes records beyond that period. Live Google Ads report results are returned to the requesting user or client and are not durably stored by Adport Cloud by default.
An organization owner can delete the organization's Adport Cloud data from the dashboard. This removes the active tenant record and cascades deletion to memberships, settings, connection metadata, encrypted credentials, API-key digests, pending operations, and audit events. If the user has no remaining organization membership, the Adport Cloud login account is also deleted. Infrastructure backups, if enabled for disaster recovery, are isolated from normal use, expire under the hosting provider's backup schedule, and are not restored except for disaster recovery.
Deleting Adport Cloud data does not delete campaigns or records that remain in Google Ads. Users can also revoke access from their Google Account permissions or Google Ads security settings. For help with a deletion or revocation request, contact us at the address below.
Cloud waitlist
If you join the Adport Cloud waitlist, we store your email address, signup time, and the version of the signup notice you agreed to in a private database table. We use these details only to send the early-access invitation you requested, not a newsletter. Repeated signups do not create duplicate entries. Short-lived, keyed request hashes help limit abuse; your raw IP address is not stored in the waitlist table. You can withdraw your request and ask us to delete your entry at any time by emailing yannick@adport.dev.
Self-hosted Adport
In self-hosted mode, credentials, advertising data, reports, pending operations, findings, and audit records remain on infrastructure controlled by the user. The installation communicates directly with the selected advertising platform and does not send this information to Adport Cloud unless the user separately configures a remote destination. The user controls local security, retention, backups, and deletion.
Other advertising platforms
When a user connects Meta, TikTok, Apple Ads, Microsoft Advertising, or Reddit Ads, the connection is made through that platform's own OAuth authorization experience using an application owned by Adport; the user never provides Adport with platform passwords or application secrets, and Adport stores only the resulting encrypted grant for the user's organization. Apple Ads uses Adport's approved service-provider registration: Adport's ES256 client key remains server-side, while the tenant's delegated refresh token is encrypted per organization. For every provider Adport accesses only the data and permissions needed to perform the user's requested reporting and account-management features, and does not sell that data or use it for unrelated advertising, profiling, lending, surveillance, or shared model training. On disconnect Adport revokes the grant at the platform where the platform provides a revocation API (Google, Meta, Reddit, TikTok) and deletes the encrypted copy; for Microsoft Advertising and Apple Ads the dashboard tells the user that Adport's access must additionally be removed in that platform's own settings.
For Meta, Adport requests ads_read, ads_management, and business_management so an authorized user can list the businesses and ad accounts they already administer, read campaign structure and performance, and preview or apply advertising changes. Adport does not publish social content or request access to unrelated personal information.
User data deletion
An organization owner can disconnect an advertising provider from the Connections page and permanently delete the organization from Team settings. Deleting the organization removes its memberships, settings, connection metadata, encrypted credentials, API-key digests, pending operations, findings, and audit events. If the user has no remaining organization membership, the Adport Cloud login account is also deleted. Step-by-step instructions are available on the User Data Deletion page.
International processing
Adport's cloud infrastructure and connected advertising platforms may process information in countries other than the user's country. Applicable provider terms and contractual safeguards govern those transfers.
Changes
We may update this policy as Adport develops or its data practices change. We will keep this page current and will request renewed consent when required before using Google user data for a materially different purpose.
Contact
Questions, privacy requests, and deletion requests can be sent to yannick@adport.dev.