← Back to Admin Panel

📢 Google Ads Training Guide

Complete step-by-step guide to running Google Search Ads — from account setup to conversion tracking, with real code examples from the 69dynamics implementation.

📅 March 2026 📖 Version 1.0 ⏱ ~45 min read 🎯 For: Team Training

1 What is Google Ads?

Google Ads is a pay-per-click (PPC) advertising platform where you bid on keywords so your ad appears at the top of Google Search results. You only pay when someone clicks your ad.

TermMeaning
PPCPay-Per-Click — you pay only when someone clicks
CPCCost Per Click — the amount you pay per click
CTRClick-Through Rate — clicks ÷ impressions × 100
ImpressionOne time your ad is shown on a search result page
ConversionA valuable action (form submit, call, purchase)
Quality ScoreGoogle's 1-10 rating of your ad + keyword + landing page relevance
Ad RankQuality Score × Max CPC — determines your position

2 How Search Ads Work

When someone searches on Google, an instant auction happens:

User searches: "web design coimbatore"
        ↓
Google finds all ads bidding on that keyword
        ↓
Each ad gets an Ad Rank = Quality Score × Max CPC
        ↓
Ads are ordered by Ad Rank (highest = position 1)
        ↓
Top 1-4 ads shown ABOVE organic results
        ↓
You only pay when someone CLICKS (not when shown)
💡 Key Insight A high Quality Score (8-10) lets you pay LESS than competitors and still rank higher. Quality Score is the single biggest lever for low-budget advertisers.

What Users See

┌──────────────────────────────────────────────────────┐
│  Sponsored                                           │
│  69dynamics.in                                       │
│  Professional Website in 7 Days | Low Cost Websites  │  ← Headlines
│  Get a custom website with SEO, mobile-ready design. │  ← Description
│  Free Consultation · 30 Days Free Support            │  ← Callout Extensions
│  [Website Design] [Pricing] [Portfolio] [Contact]    │  ← Sitelink Extensions
└──────────────────────────────────────────────────────┘
│  Sponsored  ← Competitor Ad                          │
│  ...                                                 │
├──────────────────────────────────────────────────────┤
│  Organic Result #1 (free, ranked by SEO)             │
│  Organic Result #2                                   │
└──────────────────────────────────────────────────────┘

3 Account Setup

Step-by-Step

1 Go to ads.google.com and sign in with Google account

2 Click "New Google Ads Account" → choose "Switch to Expert Mode" at the bottom (never use Smart Mode)

3 Select "Create an account without a campaign" to set up billing first

4 Set your Country: India, Currency: INR, Time Zone: IST

5 Add billing details (credit card / debit card / UPI)

⚠️ Always Use Expert Mode "Smart Mode" limits your control over keywords, bidding, and targeting. Always switch to Expert Mode for full campaign management.

Our Account Details

SettingValue
Account Name69 Dynamics
Account ID872-364-8500
Conversion TagAW-8723648500
Lead Form TagAW-16486891557
GA4 PropertyG-MHBHJR0F1G
GTM ContainerGTM-WBBTFDBJ

4 Billing & Budget

Budget LevelDaily BudgetMonthly SpendBest For
Starter₹300-500₹9K-15KTesting keywords, getting initial data
Growth₹500-1000₹15K-30KConsistent lead flow, multiple ad groups
Scale₹1000-3000₹30K-90KAggressive growth, Smart Bidding with data
ℹ️ Budget Tip Start with ₹300-500/day for 2-3 weeks. This gives Google enough data to optimize. Never start below ₹200/day — too little data slows the learning phase.

5 Creating a Campaign

1 Click + New Campaign → Goal: Leads

2 Campaign type: Search (never Display for lead gen)

3 Select your conversion goal (e.g., "Submit lead form")

4 Campaign name: Use a descriptive format: [Service] - [Location] - [Network]
Example: Web dev - Coimbatore - Search

5 Uncheck "Include Google search partners" and "Include Google Display Network" — Search only

Campaign Settings

SettingRecommendedWhy
NetworksGoogle Search ONLYDisplay wastes budget for lead gen
LocationsCoimbatore + 30km radiusFocus spend on serviceable area
LanguageEnglish + TamilCapture all local searchers
Bid StrategyManual CPC (low budget)Full control over spend per keyword
Ad ScheduleMon-Sat, 8 AM - 9 PMNo one converts outside business hours
Ad RotationOptimize: Prefer best performingLet Google pick winners automatically

6 Ad Groups & Keywords

An ad group contains a set of related keywords and ads. The key principle: one theme per ad group.

Bad vs Good Structure

❌ BAD: One ad group with everything
Ad Group: "All Services"
  Keywords: web design, logo design, SEO, CRM, mobile app
  → Ad headlines can't be specific → Low Quality Score → High CPC

✅ GOOD: Tight themed ad groups
Ad Group: "Web Design Coimbatore"
  Keywords: web design coimbatore, website design coimbatore, web designer coimbatore
  → Ad headline: "Professional Web Design in Coimbatore"
  → Landing page: /lp/google (matches exactly)
  → Quality Score: 8-10 → Low CPC

Our 13 Ad Groups

#Ad GroupThemeKeywords
1Web Design - CoimbatoreLocal design queries10
2Web Development - CoimbatoreLocal dev queries10
3Business WebsiteGeneric business site10
4E-CommerceOnline store seekers10
5Low Cost WebsiteBudget-conscious10
6Landing Page & Fast DeliverySpeed/urgency10
7CRM ERP SoftwareQuantum queries10
8Digital MarketingMarketing services10
9Branding & DesignLogo/brand10
10Tamil Nadu GeoNearby cities10
11Web App & SaaSSoftware dev10
12High Intent - Buy NowReady to purchase10
13Exact Match - Top PriorityBest converters15

7 Keyword Match Types

Match TypeSyntaxExample KeywordTriggers On
Broad Matchweb designweb designwebsite creation, page building, UI design (loosely related)
Phrase Match"web design""web design coimbatore"best web design coimbatore, web design in coimbatore (must contain meaning)
Exact Match[web design][web design coimbatore]web design coimbatore, coimbatore web design (same intent only)
💡 Best Practice for Low Budget
  • Start with Phrase Match for most keywords — good balance of reach vs control
  • Use Exact Match for your top 10-15 converting keywords — maximum precision
  • Avoid Broad Match on low budgets — wastes money on irrelevant searches

8 Negative Keywords

Negative keywords prevent your ad from showing on irrelevant searches. This is the #1 way to stop wasting budget.

Must-Add Negatives (Campaign Level)

free
template
tutorial
course
learn
download
job
salary
interview
wordpress theme
wix
squarespace
github
udemy
w3schools
pdf
youtube
samples
meaning
what is

How to Add

1 Go to KeywordsNegative Keywords tab

2 Click + → add at Campaign level (applies to all ad groups)

3 Paste keywords (one per line) → Save

4 Check Search Terms report weekly → add new negatives for irrelevant searches

⚠️ Weekly Task Every Monday, check Keywords → Search Terms. This shows the ACTUAL searches people typed before clicking your ad. Add anything irrelevant as a negative keyword.

9 Writing Effective Ads

Google Responsive Search Ads allow up to 15 headlines and 4 descriptions. Google mixes and matches them to find the best combination.

Headlines (max 30 characters each)

#HeadlineStrategy
1Web Design in CoimbatoreKeyword match (Quality Score)
2Website in 7 DaysSpeed USP
3Starting at ₹25,000Price anchor
4100% Custom DesignQuality proof
5Free Consultation TodayCTA + urgency
6First Month FREEOffer hook
7Rated 5/5 by ClientsSocial proof
8Mobile-Ready & SEO BuiltTechnical benefit
950+ Projects DeliveredCredibility
1024/7 Support IncludedRisk reversal

Descriptions (max 90 characters each)

#Description
1Custom websites built for growth. SEO-optimized, mobile-ready. Get started today!
2From design to launch in 7 days. First month hosting free. WhatsApp us now.
3Professional web design starting ₹25K. Free consultation. 30 days free support.
4India's talent-driven digital studio. 50+ projects. 100% satisfaction guaranteed.
💡 Pin Critical Headlines Pin your keyword-matching headline to Position 1 and your CTA headline to Position 2. This ensures they always show while Google tests the rest.

10 Ad Extensions (Free CTR Boost)

Extensions add extra information below your ad at no extra cost. They increase ad real estate and CTR by 10-20%.

ExtensionWhat It ShowsExample
CalloutsShort text highlightsLow cost websites · Website in 7 Days · Free Consultation · 30 Days Free Support
SitelinksClickable links to subpagesPricing | Portfolio | Contact Us | Our Services
CallPhone number with click-to-callYour business phone
Structured SnippetsPredefined categoriesServices: Web Design, E-Commerce, CRM, SEO, Branding
LocationBusiness address + mapCoimbatore, Tamil Nadu
PriceService pricingStarter ₹25K | Growth ₹60K | Quantum ₹9K/mo

11 Why Track Conversions?

Without conversion tracking, Google Ads is just an expensive traffic source. With it, Google knows which clicks lead to actual leads and optimizes for them.

Without TrackingWith Tracking
You see clicks and spendYou see cost per lead
Optimize for clicks (useless)Optimize for leads (valuable)
No idea which keywords convertExact keywords that bring leads
Smart Bidding doesn't workSmart Bidding fully effective

12 Global Site Tag (gtag.js)

The global site tag is the foundation. It goes on every page of your website.

The Code

<!-- GA4 + Google Ads gtag.js -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-MHBHJR0F1G"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  // GA4 — Analytics
  gtag('config', 'G-MHBHJR0F1G');

  // Google Ads — Primary Account (872-364-8500)
  gtag('config', 'AW-8723648500');

  // Google Ads — Lead Form Conversion
  gtag('config', 'AW-16486891557');
</script>

Where This Lives

PageFileStatus
Main Websitepublic/index.html✅ Installed
Pricing Pagepublic/pricing.html✅ Installed
Google LPpublic/lp/google.html✅ Installed
Meta LPpublic/lp/meta.html✅ Installed
Quantum LPpublic/lp/quantum.html✅ Installed
Google LP (B)public/lp/google-b.html✅ Installed
ℹ️ How gtag('config') Works Each gtag('config', 'ID') tells Google to load that tag. Multiple configs = multiple tracking systems from one script. GA4 tracks analytics, AW tracks ads.

13 Conversion Actions

A conversion action defines what counts as a valuable action. We have two types:

Type 1: GA4-Imported Conversion

// This event fires on form submit. GA4 records it.
// Google Ads imports it as a conversion action.
gtag('event', 'ads_conversion_Sign_up_1', {
  send_to: 'G-MHBHJR0F1G',    // Send to GA4
  value: 1.0,
  currency: 'INR'
});

// Setup: Google Ads → Goals → Import → GA4 → ads_conversion_Sign_up_1

Type 2: Direct Manual Conversion

// This fires a conversion directly to Google Ads.
// Faster reporting (3-6 hours vs 24-48 hours for GA4 import).
gtag('event', 'conversion', {
  send_to: 'AW-16486891557/YOUR_LABEL',  // Replace YOUR_LABEL from Google Ads → Goals → Conversions
  value: 1.0,
  currency: 'INR'
});

// Setup: Google Ads → Goals → New → Manual → "Submit lead form"

Our Conversion Map

ActionTypeEvent NameTrigger
Contact form submitGA4 Importads_conversion_Sign_up_1Form submit on any page
LP form submitGA4 Importads_conversion_Sign_up_1Landing page form submit
Pricing viewGA4 Importads_conversion_Sign_up_1#pricing section viewed
Submit lead formDirect ManualconversionAW-16486891557

14 Enhanced Conversions

Enhanced Conversions send hashed user data (email, phone) to Google Ads. This improves conversion attribution by 15-30%, especially when cookies are blocked.

Our Implementation

// Step 1: Define the function (in index.html <head>)
function setEnhancedConversionData(email, phone) {
  if (typeof gtag !== 'function') return;
  var data = {};
  if (email) data.email = email.trim().toLowerCase();
  if (phone) data.phone_number = phone.trim().replace(/\s/g, '');
  gtag('set', 'user_data', data);
}

// Step 2: Call it on form submit (before conversion event)
// In the form handler:
var ecEmail = form.querySelector('[name="email"]').value.trim().toLowerCase();
var ecPhone = form.querySelector('[name="phone"]').value.trim();
gtag('set', 'user_data', { email: ecEmail, phone_number: ecPhone });

// Step 3: Then fire the conversion event
gtag('event', 'ads_conversion_Sign_up_1', {
  send_to: 'G-MHBHJR0F1G', value: 1.0, currency: 'INR'
});
ℹ️ How Enhanced Conversions Work Google hashes the email/phone locally in the browser (SHA256) before sending. The raw data never leaves the user's device. Google matches it against signed-in Google users to attribute conversions even without cookies.

Enable in Google Ads

1 Go to Goals → Settings

2 Click Enhanced conversions → Turn ON

3 Select "Global site tag" as the method

4 Google will detect the gtag('set', 'user_data', ...) call from your code

15 GA4 Imported Conversions

Instead of adding conversion snippets to every page, you can fire a GA4 event and import it into Google Ads as a conversion.

Setup Steps

1 Fire a GA4 event on your site: gtag('event', 'ads_conversion_Sign_up_1', {send_to: 'G-MHBHJR0F1G'})

2 In Google Ads, go to Goals → Summary → + New conversion action

3 Select "Import""Google Analytics 4 properties"

4 Select your GA4 property (G-MHBHJR0F1G → 69dynamics)

5 Find ads_conversion_Sign_up_1 in the events list → Import

6 Set attribution: Data-driven, 90-day click-through

⚠️ GA4 Import Delay GA4 imported conversions take 24-48 hours to reflect in Google Ads. For real-time conversion data, use a direct manual conversion action alongside.

16 Our Tag Setup (Code Reference)

This is the exact tag setup on the 69dynamics website. Copy this pattern for any new pages.

Head Tags (add to every new page)

<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-WBBTFDBJ');</script>

<!-- GA4 + Google Ads -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-MHBHJR0F1G"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'G-MHBHJR0F1G');
  gtag('config', 'AW-8723648500');
  gtag('config', 'AW-16486891557');
</script>

<!-- Meta Pixel -->
<script>
  !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
  n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
  n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;
  t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
  document,'script','https://connect.facebook.net/en_US/fbevents.js');
  fbq('init', '534810852968772');
  fbq('track', 'PageView');
</script>

17 Our Landing Pages

PageURLTraffic SourceKey Feature
Google LP/lp/googleGoogle Search Ads"Website in 7 Days" + form
Google LP (B)/lp/google-bA/B test variantDifferent headline/layout
Meta LP/lp/metaInstagram/Facebook AdsInstagram-optimized design
Quantum LP/lp/quantumCRM/ERP queriesQuantum product showcase
Main Site/Brand/organicFull website with all services
Pricing/pricingPrice comparison queriesPackage comparison + CTA

18 Form Submission Tracking (Full Code)

Every form submission fires multiple tracking events. Here's the complete flow:

// COMPLETE FORM SUBMIT TRACKING FLOW
// (from lp/google.html — same pattern on all forms)

lpForm.addEventListener('submit', async (e) => {
  e.preventDefault();
  
  // 1. Get UTM data (captured on page load)
  const utm = getUTMParams();
  
  // 2. Save lead to Firestore
  await db.collection('inquiries').add({
    name: form.querySelector('[name="name"]').value.trim(),
    email: form.querySelector('[name="email"]').value.trim(),
    phone: form.querySelector('[name="phone"]').value.trim(),
    service: form.querySelector('[name="service"]').value,
    source: 'landing-page-google',
    utm: utm,                    // Full UTM data attached
    timestamp: firebase.firestore.FieldValue.serverTimestamp()
  });

  // 3. Enhanced Conversions — hash user data for Google Ads
  var email = form.querySelector('[name="email"]').value.trim().toLowerCase();
  var phone = form.querySelector('[name="phone"]').value.trim();
  gtag('set', 'user_data', { email: email, phone_number: phone });

  // 4. GA4 Lead Event
  gtag('event', 'generate_lead', {
    event_category: 'conversion',
    event_label: utm.utm_campaign || 'google-lp',
    value: 1,
    currency: 'INR'
  });

  // 5. GA4 Imported Conversion (→ Google Ads)
  gtag('event', 'ads_conversion_Sign_up_1', {
    send_to: 'G-MHBHJR0F1G',
    value: 1.0,
    currency: 'INR'
  });

  // 6. Meta Pixel Lead Event
  fbq('track', 'Lead', {
    content_name: utm.utm_campaign || 'google-lp',
    content_category: form.querySelector('[name="service"]').value
  });

  // 7. Log to Cloud Function for admin analytics
  fetch('/api/logConversionEvent', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      type: 'form_submit',
      label: 'landing-page',
      page: window.location.pathname
    })
  });
});

19 UTM & Click ID Capture

Every page automatically captures UTM parameters and advertising click IDs from the URL.

What Gets Captured

ParameterSourceExample
utm_sourceTraffic sourcegoogle, facebook, newsletter
utm_mediumChannelcpc, social, email
utm_campaignCampaign nameweb-dev-cbe-mar26
utm_termKeyword (auto)web design coimbatore
utm_contentAd variationheadline-a, headline-b
gclidGoogle Click IDAuto-appended by Google Ads
gbraidGoogle (iOS)Privacy-safe iOS attribution
wbraidGoogle (web)Web-to-app attribution
fbclidMeta Click IDAuto-appended by Meta Ads

The Capture Code

function captureUtmParams() {
  const params = new URLSearchParams(window.location.search);
  const utmKeys = ['utm_source','utm_medium','utm_campaign','utm_term','utm_content'];
  const hasUtm = utmKeys.some(k => params.get(k));
  if (hasUtm) {
    const utmData = {};
    utmKeys.forEach(k => { if (params.get(k)) utmData[k] = params.get(k); });
    utmData.landing_page = window.location.pathname;
    utmData.captured_at = new Date().toISOString();
    // Google Click IDs
    if (params.get('gclid'))  utmData.gclid  = params.get('gclid');
    if (params.get('gbraid')) utmData.gbraid = params.get('gbraid');
    if (params.get('wbraid')) utmData.wbraid = params.get('wbraid');
    // Meta Click ID
    if (params.get('fbclid')) utmData.fbclid = params.get('fbclid');
    sessionStorage.setItem('utm_data', JSON.stringify(utmData));
  }
}
// Called on every page load in app.js

20 Admin Google Ads Dashboard

All lead data flows into the admin panel under Campaigns → Google Ads tab.

What It Shows

ComponentData
6 KPI CardsTotal Ads Leads, Avg Score, Hot Leads, This Month, gclid Captured, Conversion Rate
Line ChartLeads over time (daily/weekly)
Doughnut ChartLead source breakdown (Google vs Meta vs Direct)
Bar ChartLeads per campaign (utm_campaign)
Bar ChartLead score distribution (Hot/Warm/Cold)
Leads TableAll Google Ads leads with filters, search, CSV export

How Leads Are Detected as "Google Ads"

// A lead is classified as Google Ads if ANY of these are true:
const isGoogleAd = (lead) => {
  return lead.gclid ||                          // Google Click ID present
    lead.gbraid || lead.wbraid ||               // iOS/web click IDs
    lead.utm_source === 'google' ||             // UTM source is google
    (lead.utm && lead.utm.gclid) ||             // UTM object has gclid
    (lead.utm && lead.utm.utm_source === 'google');
};

21 Quality Score (The #1 Lever)

Ad Rank = Quality Score × Max CPC. A QS of 10 means you pay ~50% less than a competitor with QS 5 for the same position.

FactorWeightHow to Maximize
Expected CTR~39%Specific headlines matching search intent, numbers, CTAs
Ad Relevance~22%Keyword appears in headline AND description
Landing Page~39%Fast load (Firebase CDN), mobile-friendly, content matches ad
💡 Your Advantage Your Firebase-hosted landing pages load in <1 second on CDN. Most competitors use slow WordPress sites (3-5 seconds). This gives you a QS advantage of 2-3 points on landing page score alone.

22 Bidding Strategies

StrategyBest ForRequirements
Manual CPCLow budget (₹300-500/day)None — full control
Enhanced CPCMedium budgetSome conversion data
Maximize ClicksNew campaignsSet max CPC cap (₹20-25)
Maximize ConversionsScaling30+ conversions/month
Target CPAMature campaigns50+ conversions/month + known CPA

Suggested Bids Per Ad Group

Ad GroupSuggested CPCReasoning
High Intent - Buy Now₹20-25Highest conversion probability
Exact Match - Top Priority₹18-22Precise targeting, less waste
Low Cost Website₹12-18Price-sensitive but ready
Tamil Nadu Geo₹8-12Low competition
All Others₹8-15Test and adjust

23 Low Budget Domination Strategy

Top Ad Position = (Quality Score × Bid) > Competitors

Your Play:
┌────────────────────────────────────────────────┐
│ 1. High Quality Score (8-10)                   │
│ 2. Long-tail keywords (₹5-15 CPC)             │
│ 3. Tight ad groups (1 theme each)              │
│ 4. Fast landing pages (Firebase CDN <1s)       │
│ 5. All extensions enabled (+15% CTR)           │
│ 6. Aggressive negative keywords (save 30%)     │
│ 7. Geo + schedule targeting (focused spend)    │
│ = TOP 1-3 at ₹8-15/click                      │
│   while competitors pay ₹30-50+               │
└────────────────────────────────────────────────┘

24 Ad Schedule & Geo Targeting

SettingValueWhy
LocationCoimbatore + 30kmFocus on serviceable area
Extra LocationsErode, Tirupur, Salem, PollachiNearby cities, low competition
ScheduleMon-Sat 8 AM - 9 PMBusiness hours only
Mobile Bid+20%Most local searches are mobile
Desktop Bid-20%Lower conversion rate on desktop

25 A/B Testing Ads

We have two Google landing pages: /lp/google (A) and /lp/google-b (B).

What to Test

ElementVersion AVersion B
Headline"Website in 7 Days""Professional Web Design"
CTA Button"Get Free Quote""Start My Project"
Social ProofStar ratingClient count
Form Length5 fields3 fields

How to Run A/B Test

1 Create 2 ads in the same ad group with different Final URLs (/lp/google vs /lp/google-b)

2 Set Ad Rotation to "Do not optimize" for even distribution

3 Run for 2-4 weeks until sufficient data (100+ clicks per variant)

4 Compare: CTR, Conversion Rate, Cost Per Conversion

5 Pause the loser, iterate on the winner

26 Keyword Research

Free Tools

ToolURLUse For
Google Keyword PlannerInside Google Ads → ToolsSearch volume, CPC estimates, competition
Google AutocompleteType in Google SearchReal-time suggestion mining
Google "People also ask"In search resultsQuestion-based keywords
AnswerThePublicanswerthepublic.comQuestion mapping around topics
Ubersuggestneilpatel.com/ubersuggestKeyword ideas + competitor analysis

Finding High-Value Keywords

  1. Start with your services: "web design", "CRM software", "e-commerce"
  2. Add location: "web design coimbatore", "web design tamil nadu"
  3. Add modifiers: "best", "affordable", "professional", "near me"
  4. Add intent words: "cost", "price", "hire", "quote", "company"
  5. Check Keyword Planner for volume and CPC
  6. Pick keywords with 100-1000 monthly searches and CPC under ₹30

27 Key Metrics Glossary

MetricFormulaGood Target
CTRClicks ÷ Impressions × 1003-8% for Search
CPCTotal Cost ÷ Clicks₹8-25 (India local)
Conversion RateConversions ÷ Clicks × 1005-15% for landing pages
Cost Per LeadTotal Cost ÷ Conversions₹100-500 for services
ROASRevenue ÷ Ad Spend3x+ (₹3 revenue per ₹1 spent)
Quality ScoreGoogle's proprietary score7+ (aim for 8-10)
Impression ShareYour impressions ÷ eligible impressions60%+ on top keywords
Search Impression Share (Top)Times shown in top positions ÷ eligible50%+ for brand terms

28 Launch Checklist

Before Launch

  • ☐ Conversion tracking verified (Google Ads Tag Assistant)
  • ☐ Enhanced Conversions enabled
  • ☐ All ad extensions added (callouts, sitelinks, call, structured snippets)
  • ☐ Negative keywords added (20+ campaign-level negatives)
  • ☐ Ad schedule set (business hours only)
  • ☐ Location targeting set (Coimbatore + radius)
  • ☐ Display Network UNCHECKED
  • ☐ Search Partners UNCHECKED
  • ☐ Landing pages tested on mobile
  • ☐ UTM parameters verified in Firestore

Weekly Maintenance

  • ☐ Review Search Terms → add negatives
  • ☐ Check Quality Score per keyword → optimize low scores
  • ☐ Compare ad variations → pause underperformers
  • ☐ Review geographic performance → exclude low-ROI areas
  • ☐ Check device bids → adjust mobile/desktop split
  • ☐ Review admin dashboard → Google Ads tab for lead quality

29 Troubleshooting

ProblemCauseFix
Ads not showingLow bids, low QS, or budget exhaustedIncrease bid, improve ad relevance, check daily budget
High CPCLow Quality Score or competitive keywordsImprove QS (landing page + ad relevance), use long-tail keywords
Low CTRAd copy not compellingTest new headlines, add numbers ("7 Days", "₹25K"), add urgency
Clicks but no conversionsLanding page mismatch or form too longMatch LP to ad promise, shorten form, add trust signals
Conversions not trackingTag not firingUse Google Tag Assistant to debug, check gtag('config') is present
"Limited by budget"Daily budget too low for keywordsReduce keywords, focus on top performers, increase budget
Irrelevant search termsMissing negative keywordsCheck Search Terms weekly, add negatives aggressively
Google Ads leads not in adminUTM/gclid not capturedVerify captureUtmParams() runs on landing page