Product and API use
Google Ads API and StoreAdOps
StoreAdOps is a hosted SaaS product and secure tool service for merchants, advertisers, and agencies that own or are authorized to manage Google Ads accounts.
Business model
StoreAdOps is currently offered as a free hosted SaaS product with open signup. Paid subscription plans and external billing are not active. StoreAdOps does not sell advertising inventory, purchase media, or operate as an advertising agency. Users remain responsible for their own Google Ads accounts, budgets, and confirmed changes.
How a user connects Google Ads
- The user signs in to StoreAdOps.
- The user authorizes Google OAuth and grants the Google Ads scope.
- StoreAdOps lists only Google Ads customer accounts accessible to that user, and the user selects an account.
- The user connects an AI client using platform-managed browser OAuth where supported, or a revocable, tenant-scoped API key. The setup guide explains both paths.
- The client can request reporting or account operations only for the connected user's authorized account.
Google Ads API use cases
Read workflows include campaign structure and performance, search terms, budgets, bidding, assets, targeting, conversion configuration, recommendations, and account metadata.
Management workflows include user-confirmed campaign and resource creation, updates, pauses, negative keywords, assets, and related account operations. New campaigns are created paused by default.
Safety and authorization controls
- Users can access only customer accounts returned by their own Google authorization.
- Direct provider writes require explicit confirmation and an idempotency key; approval-backed execution requires separately validated authority and is subject to production availability.
- Provider write calls are not automatically retried after a partial platform failure.
- Users authorize supported budget and campaign changes. StoreAdOps submits those changes; the advertising platform controls delivery and billing. Approved edits to active campaigns may affect spend immediately.
Data handling
StoreAdOps retrieves campaign and performance data live rather than accumulating a campaign-data warehouse. It stores encrypted OAuth tokens, selected account metadata, hashed API keys, OAuth state, usage counters, and audit and idempotency records. When growth-analysis features are enabled, bounded encrypted snapshots may be retained with a 30-day expiration; some operational and safety records are retained longer. See the privacy policy for retention and deletion details.
Google user data is not sold and is not used to train general AI models. Users can revoke access in their Google Account and request deletion through support@storeadops.ai.
Review and support
The production service is available at app.storeadops.ai. Authenticated reviewer access and additional technical evidence can be provided securely by contacting support@storeadops.ai.
Google Ads tools (10 tools)
StoreAdOps exposes the following Google Ads tools to connected AI clients: Ten shared tools serve all channels. Use get_capabilities to discover account-eligible operations and their input schemas. Reads do not change campaigns; report starts create explicit report jobs. Changes require a preview, confirmation and an idempotency key. Availability depends on connected accounts, permissions, assets and enabled features.
get_connections_status
get_capabilities
query
account.verifyRequires granted scopes: https://www.googleapis.com/auth/adwords.diagnostic.ad_strengthRequires granted scopes: https://www.googleapis.com/auth/adwords.diagnostic.asset_coverageRequires granted scopes: https://www.googleapis.com/auth/adwords.diagnostic.bid_adjustment_opportunitiesRequires granted scopes: https://www.googleapis.com/auth/adwords.diagnostic.conversion_tracking_healthRequires granted scopes: https://www.googleapis.com/auth/adwords.diagnostic.impression_shareRequires granted scopes: https://www.googleapis.com/auth/adwords.diagnostic.keyword_cannibalizationRequires granted scopes: https://www.googleapis.com/auth/adwords.diagnostic.search_termsRequires granted scopes: https://www.googleapis.com/auth/adwords.diagnostic.wasted_spendRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.ad_creative.getRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.ad_group_audiences.getRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.ad_group_demographics.getRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.ad_group_settings.getRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.ad_policy_violations.getRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.audiences.listRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.benchmark_context.getRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.campaign_extensions.listRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.campaign_structure.getRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.campaign_targeting.getRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.campaigns.listRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.conversion_actions.listRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.display_ad_group_settings.getRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.display_audiences.getRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.display_demographics.getRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.display_frequency_caps.getRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.display_keywords.getRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.display_placements.getRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.display_topics.getRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.existing_assets.listRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.getRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.google_languages.listRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.listRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.pmax_asset_group_images.listRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.pmax_audience_signals.getRequires granted scopes: https://www.googleapis.com/auth/adwords.entity.pmax_search_themes.getRequires granted scopes: https://www.googleapis.com/auth/adwords.evidence.google.audit_google_accountRequires granted scopes: https://www.googleapis.com/auth/adwords.evidence.google.explain_performance_anomalyRequires granted scopes: https://www.googleapis.com/auth/adwords.evidence.google.infer_business_profileRequires granted scopes: https://www.googleapis.com/auth/adwords.evidence.google.optimize_budget_allocationRequires granted scopes: https://www.googleapis.com/auth/adwords.evidence.google.prioritize_recommendationsRequires granted scopes: https://www.googleapis.com/auth/adwords.evidence.google.recommend_bid_strategyRequires granted scopes: https://www.googleapis.com/auth/adwords.evidence.google.select_google_campaign_typeRequires granted scopes: https://www.googleapis.com/auth/adwords.evidence.google.suggest_ad_contentRequires granted scopes: https://www.googleapis.com/auth/adwords.google.accessible_accountsRequires granted scopes: https://www.googleapis.com/auth/adwords.google.assets.validateRequires granted scopes: https://www.googleapis.com/auth/adwords.google.business_profile.contextRequires granted scopes: https://www.googleapis.com/auth/adwords.google.business_profile.validateRequires granted scopes: https://www.googleapis.com/auth/adwords.google.gaqlRequires granted scopes: https://www.googleapis.com/auth/adwords.google.gaql_fieldsRequires granted scopes: https://www.googleapis.com/auth/adwords.google.geo_targets.resolveRequires granted scopes: https://www.googleapis.com/auth/adwords.google.keyword_ideasRequires granted scopes: https://www.googleapis.com/auth/adwords.google.native_optimization_scoreRequires granted scopes: https://www.googleapis.com/auth/adwords.google.native_recommendationsRequires granted scopes: https://www.googleapis.com/auth/adwords.google.negative_keyword_evidenceRequires granted scopes: https://www.googleapis.com/auth/adwords.google.pmax_asset_upload_helpRequires granted scopes: https://www.googleapis.com/auth/adwords.google.usage_statusRequires granted scopes: https://www.googleapis.com/auth/adwords.google.video.validateRequires granted scopes: https://www.googleapis.com/auth/adwords.performance.adRequires granted scopes: https://www.googleapis.com/auth/adwords.performance.campaignRequires granted scopes: https://www.googleapis.com/auth/adwords.performance.conversion_actionRequires granted scopes: https://www.googleapis.com/auth/adwords.performance.pmax_assetRequires granted scopes: https://www.googleapis.com/auth/adwords.
get_report
prepare_change
ad.createRequires granted scopes: https://www.googleapis.com/auth/adwords. Feature flags enabled; account permissions and provider eligibility are still required.ad.updateRequires granted scopes: https://www.googleapis.com/auth/adwords. Feature flags enabled; account permissions and provider eligibility are still required.campaign.createRequires granted scopes: https://www.googleapis.com/auth/adwords. Feature flags enabled; account permissions and provider eligibility are still required.campaign.updateRequires granted scopes: https://www.googleapis.com/auth/adwords. Feature flags enabled; account permissions and provider eligibility are still required.conversion_action.createRequires granted scopes: https://www.googleapis.com/auth/adwords. Feature flags enabled; account permissions and provider eligibility are still required.conversion_action.updateRequires granted scopes: https://www.googleapis.com/auth/adwords. Feature flags enabled; account permissions and provider eligibility are still required.entity.pauseRequires granted scopes: https://www.googleapis.com/auth/adwords. Feature flags enabled; account permissions and provider eligibility are still required.entity.removeRequires granted scopes: https://www.googleapis.com/auth/adwords. Feature flags enabled; account permissions and provider eligibility are still required.entity.resumeRequires granted scopes: https://www.googleapis.com/auth/adwords. Feature flags enabled; account permissions and provider eligibility are still required.group.createRequires granted scopes: https://www.googleapis.com/auth/adwords. Feature flags enabled; account permissions and provider eligibility are still required.group.updateRequires granted scopes: https://www.googleapis.com/auth/adwords. Feature flags enabled; account permissions and provider eligibility are still required.keyword.addRequires granted scopes: https://www.googleapis.com/auth/adwords. Feature flags enabled; account permissions and provider eligibility are still required.keyword.updateRequires granted scopes: https://www.googleapis.com/auth/adwords. Feature flags enabled; account permissions and provider eligibility are still required.media.uploadRequires granted scopes: https://www.googleapis.com/auth/adwords. Feature flags enabled; account permissions and provider eligibility are still required.native_recommendation.changeRequires granted scopes: https://www.googleapis.com/auth/adwords. Not currently enabled; disabled features: google_ads_recommendation_apply_enabled.shopping_product_group.replaceRequires granted scopes: https://www.googleapis.com/auth/adwords. Feature flags enabled; account permissions and provider eligibility are still required.
execute_change
get_change_status
get_merchant_profile
record_recommendation
get_recommendation_history
Frequently asked questions
What can StoreAdOps do with my Google Ads account?
After you authorize Google OAuth, connected AI clients can read reporting and account structure and, only with your explicit confirmation or a disclosed approval, create or update campaigns and related resources in the account you selected.
Will it change my account without asking?
No. Direct write tools require confirmed=true; approval-backed executions require separately validated execution authority. All provider writes require an idempotency key, and new campaigns are created paused by default so you can review before anything spends.
How is my data stored?
StoreAdOps retrieves campaign and performance data live rather than accumulating a campaign-data warehouse. It stores encrypted OAuth tokens, selected account metadata, hashed API keys, OAuth state, usage counters, and audit and idempotency records. When growth-analysis features are enabled, bounded encrypted snapshots may be retained with a 30-day expiration; some operational and safety records are retained longer. See the privacy policy for retention and deletion details.
How do I revoke access?
You can revoke access from your Google Account permissions at any time and request deletion through support@storeadops.ai.