MindShiftIQ
MindShiftIQ operates a subscription-based marketing automation platform for local service businesses (fishing charters, auto detailing, HVAC, dental, legal, and similar industries). Clients pay a monthly subscription fee, and in exchange MindShiftIQ manages their digital marketing presence end-to-end: reputation monitoring, content generation, social posting, video creation, and paid advertising.
Our production application is hosted at https://mindshiftiq.com. Each client authorizes access to their own Google Ads account via OAuth; MindShiftIQ operates as their managed agency under our manager account (MCC ID 917-740-3447). We only manage ads for clients who have authorized us to do so — we do not manage ads for any business that has not subscribed and linked their account.
Our tool is used by two audiences:
The tool performs three primary functions for each client:
For the reporting aspect of our tool, we pull metrics from the Google Ads API into our database on a scheduled basis. The UI of our tool pulls from this database to display reports to the client. Users have the option to view different levels of ad performance over different time periods (this month, last 2 months, last 3 months, last 6 months, last year).
For campaign creation, the client generates creative assets (videos, headlines, descriptions) inside MindShiftIQ, reviews them, and explicitly approves them. Only after approval does MindShiftIQ call the Google Ads API to create a Performance Max campaign — and it always launches in a paused state inside the client's Google Ads account. The client flips the switch to enable spending. MindShiftIQ never edits, pauses, or touches the client's existing campaigns — AI-generated campaigns run side-by-side with the client's existing ones.
For status sync, our backend service runs on a schedule to refresh campaign status and metrics from each client's Google Ads account and updates the client's isolated record within MindShiftIQ. No client data is shared with or exposed to other clients.
We use Google Ads API v25 (googleads.googleapis.com):
Authentication: Each client authorizes access to their own Google Ads account via OAuth 2.0 using the MindShiftIQ app's client ID. The app requests the minimum scopes required (adwords). Refresh tokens are stored securely per client and used only for actions scoped to that client's account. The agency developer token is used for all API calls in combination with the client's OAuth credentials.
Read vs. Write: Read operations (reporting, status sync) run automatically on a schedule. Write operations (campaign creation, budget changes) require explicit client approval inside the MindShiftIQ dashboard before the API call is made — no write occurs without client sign-off.
Here are mockups of what our tool looks like. These represent the actual production UI at mindshiftiq.com.
This is the main dashboard each client sees after logging in. It surfaces leads, calls, texts, reviews, content, and videos — the business outcomes MindShiftIQ manages for them.
This is where clients manage Google Ads campaigns. The educational callout explains our safety model: campaigns run side-by-side with existing ones, always start paused, and require client approval. The "Import Your Google Ads Campaigns" button pulls in existing campaigns via the API (read). The "Generate Campaign" button creates a new Performance Max campaign (write, requires approval).
This is the modal clients use to link their Google Ads account. They enter their Google Ads Customer ID, accept a link request in their Google Ads account (Settings → Account access → Managers), and MindShiftIQ then creates and optimizes campaigns with their approval. No Google sign-in is required for this flow — the client retains full control.
This is the reporting view clients use to see ad performance over different time periods. The data is pulled from the Google Ads API on a scheduled basis and displayed here. The "AD PERFORMANCE" panel shows synced metrics from the client's connected Google Ads account.
All data retrieved from a client's Google Ads account is stored in the client's isolated record within MindShiftIQ. No client data is shared with or exposed to other clients. Data is used solely for reporting and campaign management for the authorizing client. MindShiftIQ complies with the Google Ads API terms and the developer agreement.
Current estimated volume: under 10,000 API calls per day. Volume is expected to grow proportionally with the client base. We will monitor usage and apply for Standard Access if volume approaches the Basic Access threshold.
MindShiftIQ will comply with all Google Ads API policies, including: