algo_thinker
Product · Google Ads API Use Case

AlgoAds: a campaign automation tool for YouTube video promotion.

AlgoAds uses the Google Ads API to create, monitor, and manage Demand Gen video campaigns on behalf of YouTube content creators — using the creator's own Google Ads account, their own budget, and their own ad creative. It is not a resale or white-label product. Users sign in with OAuth and retain full ownership of every campaign.

What the tool does

The Google Ads UI is powerful but has a steep learning curve for first-time advertisers. YouTube creators who want to promote their own videos typically spend 1–2 hours setting up a single Demand Gen campaign. AlgoAds compresses that to under 5 minutes while keeping the creator in full control.

1. Sign in with Google

The creator signs into AlgoAds with their own Google Ads account via Google OAuth. We receive a refresh token that is stored encrypted and used only to call the Google Ads API on their explicit behalf.

2. Paste a YouTube URL

The creator pastes the URL of a YouTube video they own. AlgoAds reads the public video metadata (title, description, thumbnail) via YouTube's public oEmbed — no API key needed for this step.

3. Generate creative

AlgoAds uses Google's Gemini API to draft ad headlines, long headlines, descriptions, and a call-to-action that fit Google Ads policy constraints (character limits, allowed claims).

4. Review and launch

The creator reviews the generated creative, uploads a square logo, sets a daily budget and duration, then clicks Launch. AlgoAds creates the campaign (PAUSED by default) via the Google Ads API on the creator's account.

5. Monitor results

AlgoAds queries the Google Ads API via GAQL to show the creator impressions, views, clicks, and cost inside our dashboard. All metrics are pulled live — we store no aggregated reporting data.

Creator-owned

All campaigns run on the creator's own Google Ads account and are billed to their own payment method. AlgoAds is never in the billing path. The creator can revoke our OAuth access and delete campaigns at any time.

Google Ads API use case

AlgoAds makes calls to the Google Ads REST API v23 using the creator's OAuth refresh token. The scope is narrow and campaign-management only.

READ

Read campaign metadata and metrics

  • ·customers.search (GAQL)
  • ·campaigns.list / get
  • ·ad_groups.list
  • ·ads.list
  • ·metrics.* via GAQL
WRITE

Create campaigns on user's explicit action

  • ·campaignBudgets:mutate
  • ·campaigns:mutate (Demand Gen, PAUSED by default)
  • ·adGroups:mutate
  • ·adGroupCriteria:mutate (geo + language)
  • ·assets:mutate (YouTube video + logo image)
  • ·adGroupAds:mutate (DemandGenVideoResponsiveAd)
WRITE

Pause, enable, remove campaigns

  • ·campaigns:mutate (status ENABLED/PAUSED/REMOVED)
  • ·Only triggered by user action in the dashboard
N/A

What AlgoAds does NOT do

  • ·Does not create or manage Google Ads accounts
  • ·Does not handle billing or payments
  • ·Does not access customer PII from campaigns
  • ·Does not modify account-level settings
  • ·Does not manage campaigns for other advertisers or on a resale basis
  • ·Does not use the API for audience insights or targeting outside the user's own campaigns

Data we store and why

AlgoAds stores the minimum data required to maintain the user's session and resume their workflow. No advertising or audience data is stored.

User account

Email, display name, and the hashed Google OAuth subject identifier. Used to authenticate the user into AlgoAds itself.

Google Ads credentials

OAuth refresh token + MCC customer ID, stored encrypted at rest. Used to call the Google Ads API on the user's behalf. Rotated on every OAuth sign-in.

Campaign references

Campaign IDs, names, creation timestamps, and status. Used only to display the user's own campaigns in their dashboard. No metrics data is stored — it is queried live via GAQL.

For the full details, see our Privacy Policy and Terms of Service.

Developer & API contact

API Complianceapi@algo-thinker.com
Business: Algo Thinker · Founder: Venkat Ghanta · Location: Remote