Privacy policy
Authorized data should stay bounded, inspectable and removable.
This policy explains how the Bali Web Partner website and private platform-connection workflows handle personal information and data an account owner authorizes us to access.
01
Who this policy covers
Bali Web Partner is the public service name used on this website. Paid work is covered by a separate written agreement that identifies the contracting party and scope. Privacy questions can be sent through the contact page.
This policy covers baliwebpartner.com, website enquiries, measurement implemented on the site, and private OAuth workflows such as Google Ads account connection.
02
Information we receive
- Details you submit in an enquiry or project brief, including contact details and project information.
- Basic technical and security information associated with a request, such as timestamps, request identifiers and abuse signals.
- Privacy-minimal website measurement events. Form fields and message contents are not sent as analytics event parameters.
- When you authorize Google Ads: the granted scope, an encrypted refresh token, directly accessible account IDs and names, the account you select, and authorization lifecycle events.
03
How the information is used
- Respond to enquiries and prepare or deliver work you request.
- Connect only the platform account that an authorized owner places in scope.
- Read, report on or manage platform data only to the extent agreed for the engagement.
- Protect the workflow, investigate failures, document authorization and support revocation or deletion.
- Maintain aggregate website measurement without using enquiry contents for advertising profiles.
04
Google API data
Google user data is used only to provide or improve the account-management features you request. It is not sold, rented, used for unrelated advertising, or transferred to another party except where needed to provide the agreed feature, protect the service, comply with law, or with your explicit direction.
Our use and transfer of information received from Google APIs follows the Google API Services User Data Policy, including its Limited Use requirements.
05
Storage and security
- OAuth refresh tokens and temporary PKCE verifiers are encrypted with AES-GCM before insertion into Cloudflare D1.
- Encryption keys, OAuth client secrets, developer tokens and operator credentials remain in secret storage rather than Git, public pages or plaintext database columns.
- Invitation and browser-session tokens are stored only as one-way SHA-256 digests.
- Access is restricted to the connection workflow and approved operational tools. No security measure can eliminate every risk.
06
Processors and international handling
The service may rely on Cloudflare for hosting and data storage, Google for OAuth, Ads and measurement, and approved email or operational providers. These providers may process data in countries other than yours under their own infrastructure and contractual safeguards.
We do not publish or share a connected account's data as public proof without separate evidence and permission.
07
Retention, revocation and deletion
An active Google refresh token is retained only while the connection remains active. Disconnecting removes the stored token and attempts Google revocation. Deletion also removes stored account names and IDs and active connection sessions.
Minimal non-identifying authorization and deletion events may be retained where reasonably needed for security, troubleshooting or legal accountability. Other enquiry and project data is kept only as long as needed for the request, agreement, records or applicable obligations.
08
Your choices
- Decline or cancel Google authorization before a connection is stored.
- Disconnect or delete a connection from the private connection page while its browser session is valid.
- Revoke access in your Google Account at any time.
- Ask to access, correct or delete personal information through the contact page. We may verify authority before acting.
09
Changes and contact
Material changes will be dated on this page. Use the contact page and identify the request as a privacy or connected-account request.