Case Study

Programmatic Google Ads — Dr. Ayberk Akcay

End‑to‑end digital growth: websites, SEO, and a custom engine that programmatically creates and manages campaigns at scale. 1,000+ ad groups and 2,000+ ads generated. Over 1M USD annual spend managed and continuing.

Client: Dr. Ayberk Akcay Sector: Healthcare Scope: SEO + Google Ads + Automation Owner: Savaş Tutumlu Status: Active

Project Video Coming Soon

See the programmatic ad automation in action

Deliverables

🌐

Website & SEO

Technical SEO foundations and site optimization

🎯

Campaign Strategy

Account architecture and structure

🤖

Automation Engine

Custom ad creation and management system

🔒

Governance

Logging and safe operation protocols

The Problem

Multiple services and locales required a wide surface area of keywords, ads, and landing pages. Manual creation and upkeep limited iteration speed and made budget pacing brittle.

Solution Overview

Automation Engine

  • Programmatic generators for campaigns, ad groups, keywords, and ads.
  • Template‑driven creative with variable slots and guardrails.
  • Rules for bids, budgets, and negative lists with label‑based scoping.
  • Sync jobs keep account state and source of truth aligned.

Scale

  • 2,000+ ads across 1,000+ ad groups produced by software.
  • Over 1M USD per year managed with pacing controls.
// simplified generator
for (topic in topics) {
  kw = expand_keywords(topic)             // variants and match types
  ag = ensure_ad_group(topic, geo, intent)
  for (k in kw) add_keyword(ag, k)

  creatives = render_templates(topic, brand, policy)
  for (ad in creatives) upsert_ad(ag, ad)

  set_bids(ag, ruleset)                   // device, geo, time modifiers
}
schedule(sync_jobs, intervals)            // hygiene, labels, negatives

Architecture

Components

  • Controller API with OAuth2 to Google Ads.
  • Scheduler and workers for generation and sync.
  • Template service for ad copy and sitelinks.
  • Rules engine for bids, budgets, and exclusions.
  • Logger with change journals and diff views.

Data Sources

  • Keyword seeds and intent taxonomies.
  • Landing page metadata and schema markup.
  • Performance signals from the ad account.
+---------------------+
| Web + SEO Layer     |
|  - site build       |
|  - schema, speed    |
+----------+----------+
           |
           v
+---------------------+       +-------------------+
| Automation API      |<----->| Google Ads API    |
|  - OAuth2, scopes   |       |  campaigns, ads   |
+----------+----------+       +-------------------+
           |
           v
+---------------------+
| Workers & Scheduler |
|  - generators       |
|  - sync jobs        |
+----------+----------+
           |
           v
+---------------------+
| Logs & Governance   |
+---------------------+

Controls and Guardrails

  • Label‑based scopes for safe bulk operations.
  • Rate limits and dry‑run modes before apply.
  • Policy filters for capitalization, punctuation, and claims.
  • Budget pacing with daily and monthly caps.

Note: The engine does not scrape. It uses the official API with OAuth2 and adheres to advertising policies. Changes are recorded with timestamps and actors.

Outputs

📁

Structure

  • Campaigns by service, intent, and geo
  • Keyword sets with match types
  • Ads with assets and variants
⚙️

Operations

  • Daily hygiene and fixes
  • Creative refresh cycles
  • Bid adjustments
📊

Reporting

  • Label views for experiments
  • Budget dashboards
  • Change journals

Impact

2,000+ Ads Generated
1,000+ Ad Groups Created
$1M+ Annual Ad Spend
90% Time Saved

What Changed

  • Creation at scale without manual bottlenecks.
  • Consistent account hygiene and structure.
  • Faster iteration for creative and bids.

Technologies & Tags

Google Ads API Automation Templates Bidding Rules Budget Pacing SEO OAuth2 Python PostgreSQL Scheduled Jobs

Scale Your Google Ads Campaigns

Let's discuss how programmatic automation can maximize your ad performance.

Schedule a Consultation