Tracking Field Manual
Workshop Marketing
Service manual · Deep dive 4 of 4

Tracking Field Manual

How to know, in numbers, what your ads actually bring in: clicks to the website, calls, WhatsApp messages, direction requests, form bookings and, finally, paying customers. Written for a beginner who runs ads for a local business in Türkiye, from an empty notebook to a working setup and a weekly reporting routine.

~55 min readUpdated Oct 2026Example business: Kaya Oto Servis (fictional)
At Kaya Oto Servis

Our running example is Kaya Oto Servis, a fictional independent car repair shop in Ataşehir, İstanbul: 12 staff (8 mechanics/technicians, 2 service advisors, the owner, 1 admin), a website, a Google Business Profile, Instagram, Facebook and WhatsApp Business. Services: periodic maintenance (periyodik bakım), brakes, engine diagnostics, timing belt (triger kayışı), tyre change and storage (lastik oteli), A/C service and pre-purchase inspection (ekspertiz). Every ₺ figure about Kaya on this page is illustrative, not a benchmark.

The modules build on each other: each one only uses ideas from the modules before it. If you are short on time, read Module 01 (the plan), Module 06 (tracking each action), Module 08 (the lead sheet) and the setup checklist in Module 12. The main course has a shorter overview in its tracking module.

01
Module

Why measure, and the measurement plan

You'll learn
  • Why "the phone seemed busier" is not good enough when you pay for ads every day
  • The four layers of a measurement plan: goal → KPIs → events → tools
  • The difference between macro and micro conversions
  • Kaya Oto Servis's one-page measurement plan, ready to copy

Why bother?

Ads cost money every day. Without tracking, all you can say at the end of the month is "we spent ₺10,000 and the phone seemed busier." With tracking you can say which campaign, ad or channel brought which calls, WhatsApp messages and bookings, and in the end which of them became paying customers. Then you can stop paying for what doesn't work and put more money into what does.

Keep one mindset from this first page to the last:

Definition

Platform numbers are signals; paying customers are the result. "Clicks" and "conversions" inside Google Ads or Meta Ads Manager are hints that something is working. The real score is how many people paid an invoice at your shop. Every tool on this page exists to connect the two.

The measurement plan

Before touching any tool, write a measurement plan: a one-page table that goes from what the owner wants down to where each number will be counted. You can do it on paper in 30 minutes. It has four layers:

  1. Business goal: what the owner actually wants, in plain words. Example: "fill the workshop: 30 more paid jobs a month."
  2. KPIs (key performance indicators): the few numbers that show progress toward the goal, such as new paying customers and cost per customer.
  3. Events / conversions: the actions on your website, profile or phone that lead toward the goal: a call, a WhatsApp message, a form booking, a direction request.
  4. Tools: where each action gets counted (Google Analytics, Google Ads, your Google Business Profile, Meta, your own spreadsheet).
The measurement plan ladder Four stacked layers from business goal at the top to tools at the bottom, each with a Kaya Oto Servis example on the right. LAYERAT KAYA OTO SERVIS (ILLUSTRATIVE) 1 · Business goalWhat the owner wants +30 new paying customersa month, ≤ ₺500 ads each 2 · KPIsThe few numbers to watch New customers from ads,cost per customer, leads/week 3 · EventsActions that lead to the goal Phone tap, WhatsApp click,form sent, directions, paid job 4 · ToolsWhere each action is counted GA4, Google Ads, GBP, Meta,and the lead sheet
Work from the top down. If an event doesn't help a KPI, and a KPI doesn't show progress toward the goal, you don't need to track it yet.

Macro and micro conversions

A conversion is any action you count as a success. Not all successes are equal, so split them in two:

Macro conversion

An action that is (almost) a lead: a booking form sent, a phone tap, a WhatsApp click, a direction request. These are what you judge campaigns on.

Micro conversion

A sign of interest that often comes before a lead: viewing the price page, scrolling most of a service page, opening the contact page. Useful for diagnosing problems, not for judging a campaign.

In Google Analytics 4 (GA4, Google's free website analytics, covered in Module 05), every recorded action is an event, and the important ones you mark as key events. Google renamed "conversions" to "key events" in March 2024; the word "conversion" is now used for key events that you share with Google Ads for bidding. The chain is: event → key event → Google Ads conversion. Mark macros as key events; leave micros as normal events.

Tip

Don't invent event names when Google already has them. GA4's recommended lead events include generate_lead (a lead came in), qualify_lead, working_lead, close_convert_lead (became a customer) and close_unconvert_lead. Using standard names keeps reports tidy.

Kaya's measurement plan

At Kaya Oto Servis

The owner says: "I want the lifts full on weekdays." That becomes the goal row. The rest of the table is what the admin will track. Figures are illustrative.

LevelItemHow it's measuredToolKey event?
Goal+30 new paying customers a month at ≤ ₺500 ad cost eachCount customers by "source" columnLead sheet—
KPINew paying customers from adsInvoices matched to lead sourceLead sheet, later offline import—
KPICost per paying customerAd spend ÷ paying customersLead sheet / dashboard—
KPILeads per week, cost per leadSum of macro conversionsGA4, Google Ads, Meta—
MacroOnline appointment form sentgenerate_lead on the thank-you pageGTM → GA4, Google Ads, MetaYes
MacroPhone tap on website (tel: link)Click triggerGTM → GA4 phone_click, Meta ContactYes
MacroWhatsApp click (wa.me link)Click triggerGTM → GA4 whatsapp_click, Meta ContactYes
MacroCall from a Google ad (call button in the ad)Calls from ads (call clicks)Google AdsYes (in Ads)
MacroDirections / calls / website clicks on the Google profileProfile performance reportGBP, Google AdsMonitor
Macro"Yol tarifi al" (get directions) link on the websiteClick trigger on maps linkGTM → GA4 directions_clickOptional
MicroPrice page ("fiyatlar") viewPage view with page pathGA4No
MicroService page scrolled 90%Automatic scroll eventGA4No
OfflineCustomer paid (job done)Invoice + lead sourceLead sheet → Google Ads / MetaYes (best signal)

Some words in that table (GTM, GBP, tel:) are explained in the coming modules. For now, notice the shape: one goal, three KPIs, a handful of macro events, two micros, and one offline row that ties everything to money.

Common mistake

Launching ads first and "adding tracking later." Every week without tracking is spend you can't learn from. Finish at least the plan and the lead sheet (Module 08) before the first lira goes to ads.

What are the four layers of a measurement plan, top to bottom?

Business goal → KPIs → events (conversions) → tools. You start from what the owner wants and only then decide what to count and where.

Is "visited the price page" a macro or a micro conversion for Kaya?

Micro. It shows interest but isn't a lead. Track it as a normal event for diagnosis; don't mark it as a key event or use it to judge a campaign.

In GA4 today, what is the difference between a "key event" and a "conversion"?

A key event is an important action you mark in GA4 (renamed from "conversion" in March 2024). A conversion is a key event that is shared with Google Ads for measurement and bidding.

02
Module

The metrics and the funnel math

You'll learn
  • The 15 or so numbers that appear in every ad report, each with its formula
  • How to walk from impressions to paying customers with simple division
  • Why ROAS, ROI and break-even ROAS are three different questions
  • Why the "became a customer?" column matters more than any dashboard

Ad platforms throw dozens of numbers at you. Almost all of them are one division away from each other. Learn the formulas once and every report becomes readable.

Definition

A funnel is the path from "saw the ad" to "paid the invoice." At each step some people drop out, so the numbers get smaller as you go down, like liquid poured through a funnel. A lead is a person who contacted you (call, WhatsApp, form) and might become a customer.

The metrics glossary

MetricMeaningFormula
ImpressionsTimes the ad was shown—
ReachUnique people who saw it (Meta)—
FrequencyAverage times each person saw itImpressions ÷ Reach
ClicksClicks on the ad (on Meta, prefer "link clicks")—
CTRClick-through rate: share of impressions that got a clickClicks ÷ Impressions × 100
CPCCost per clickSpend ÷ Clicks
CPMCost per 1,000 impressionsSpend ÷ Impressions × 1,000
SessionsVisits recorded by GA4—
Engagement rateShare of sessions that were "engaged": lasted over 10 seconds, or had a key event, or had 2+ page viewsEngaged sessions ÷ Sessions
LeadsCalls, WhatsApp chats, forms—
CVRConversion rate: share of clicks that became leadsLeads ÷ Clicks × 100
CPL / CPACost per lead / per actionSpend ÷ Leads
Close rateShare of leads that became paying customersCustomers ÷ Leads × 100
Cost per customerWhat one paying customer cost in adsSpend ÷ Customers
Average ticketAverage invoice per job (AOV)Revenue ÷ Jobs
ROASReturn on ad spend: revenue per ₺1 of adsRevenue ÷ Ad spend
ROIReturn on investment: profit per ₺1 of ads(Gross profit − Spend) ÷ Spend × 100
Break-even ROASThe ROAS where ads exactly pay for themselves on the first job1 ÷ Gross margin
LTVLifetime value: what a customer is worth over the whole relationshipTicket × visits/yr × years × margin
CAC (full)All acquisition costs per new customer(Ads + agency + tools + staff) ÷ New customers
Definition

Gross margin is the share of an invoice left after the direct costs of that job (parts and labour). If a ₺4,000 job costs ₺2,400 in parts and mechanic time, the gross profit is ₺1,600 and the gross margin is 40%.

A worked funnel: Kaya's "Kış bakımı" campaign

At Kaya Oto Servis

Kaya runs a one-month winter maintenance (kış bakımı) campaign. All figures are illustrative, chosen to make the math easy: spend ₺9,000, 20,000 impressions reaching 8,000 people, average ticket ₺4,000, gross margin 40%.

StepCalculationResult
Impressionsgiven20,000
Frequency20,000 ÷ 8,000 people2.5
CPM9,000 ÷ 20,000 × 1,000₺450
Clicks (CTR 3%)20,000 × 3%600
CPC9,000 ÷ 600₺15
Sessions in GA4~90% of clicks recorded (some leave before the page loads, block tracking or decline the cookie banner)~540
Leads (CVR 8%)600 × 8%48
CPL9,000 ÷ 48₺187.50
Customers (close rate 50%)48 × 50%24
Cost per customer9,000 ÷ 24₺375
Revenue24 × ₺4,000₺96,000
ROAS96,000 ÷ 9,000≈ 10.7
Gross profit96,000 × 40%₺38,400
ROI(38,400 − 9,000) ÷ 9,000 × 100≈ 327%
Break-even ROAS1 ÷ 0.402.5
Kaya's funnel drawn to scale Top panel: bars for 20,000 impressions, 600 clicks, 48 leads and 24 customers at one scale; the lower three are barely visible. Bottom panel: the same last three steps enlarged 33 times, where 600 clicks is a full bar, 48 leads is 8 percent of it and 24 customers is 4 percent. Scale A · 1 px = 36 impressions Impressions20,000 Clicks600 (3%) Leads48 Customers24 Scale B · zoomed in: 1 px ≈ 1 click Clicks600 Leads (8% of clicks)48 Customers (50% of leads)24
Bar lengths are true to the numbers. At the impressions scale (A), 24 customers is less than one pixel wide; that is what "the funnel narrows" really looks like. Scale B enlarges the bottom three steps so you can compare them.

ROAS, ROI and break-even ROAS

These three answer different questions, and mixing them up is how businesses lose money while the report looks great.

ROAS · uses revenue

"For every ₺1 of ads, how much did customers pay us?" Kaya: ₺96,000 ÷ ₺9,000 ≈ 10.7. It ignores what the jobs cost you.

ROI · uses profit

"After paying for parts, labour and the ads, how much did we gain per ₺1?" Kaya: (₺38,400 − ₺9,000) ÷ ₺9,000 ≈ 327%.

Break-even ROAS

"What is the lowest ROAS where ads don't lose money on the first job?" It is 1 ÷ gross margin. With 40% margin: 2.5. Below 2.5, Kaya loses money on that first visit.

Watch out

A ROAS of 3 sounds healthy. But if your margin is 25%, your break-even ROAS is 1 ÷ 0.25 = 4, so a ROAS of 3 loses money on the first job. Always compare ROAS with your break-even number, not with a number from a blog.

The lifetime view

A good car repair customer comes back. If a typical Kaya customer returns about twice a year for three years: ₺4,000 × 2 × 3 = ₺24,000 revenue, × 40% margin = ₺9,600 gross profit over the relationship (illustrative). Against that, even ₺1,000 to win a customer can be worth it long term. That only shows up if your lead sheet records returning customers, which Module 08 sets up.

Tip

All of this is only as good as one column: "became a customer?" in your lead sheet. Platforms can count clicks and leads for you. Nobody but your shop can count paid invoices.

Definition

Incrementality means customers you got because of the ads, who would not have come anyway. Some of Kaya's 24 were regulars who searched "Kaya Oto Servis," saw the ad on top and clicked it. They would have come without the ad. Module 09 shows a simple way to test this.

An ad got 12,000 impressions and 240 clicks, costing ₺3,600. What are the CTR and CPC?

CTR = 240 ÷ 12,000 × 100 = 2%. CPC = ₺3,600 ÷ 240 = ₺15.

A campaign shows ROAS 3. Your gross margin is 25%. Is it profitable on the first job?

No. Break-even ROAS = 1 ÷ 0.25 = 4. A ROAS of 3 is below break-even, so the first job loses money (unless customers come back often enough to make it up).

Which number needs data that no ad platform can give you: CPL, CTR or cost per customer?

Cost per customer. It needs the count of paying customers, which only your own lead sheet or CRM knows.

03
Module

The tool stack and how it connects

You'll learn
  • What each free tool does, in one sentence
  • How tags, triggers and variables work in Google Tag Manager
  • How data flows from a visitor's phone to your dashboard
  • Which tools a car repair shop needs now and which can wait

You'll meet ten tool names in this manual. Nearly all are free; you pay only for the ads. Before the tour, one word you'll see everywhere:

Definition

A tag is a small piece of code on your website that sends information to a tool ("someone viewed this page," "someone tapped the phone number"). A cookie is a small file the browser stores so a tool can recognise the same visitor across pages and visits.

ToolWhat it does (plain words)Kaya needs it?
Google Analytics 4 (GA4)Records what visitors do on the site. Built as Account → Property → Data stream. Every action is an event; important ones are key events.Now
Google Tag Manager (GTM)A "box" of code you install once; then you add and change tracking inside GTM without editing the website each time.Now
Google tag (gtag.js)Google's single tag used by both GA4 and Google Ads. Install it directly or, better, through GTM.Now (via GTM)
Google Ads conversion trackingCounts conversions from ads and feeds Google's automatic bidding. Uses its own tag or imports GA4 key events.When ads run
Google Search ConsoleShows which Google searches showed and clicked your site for free (organic): impressions, clicks, queries. Links into GA4.Now
Google Business Profile (GBP) PerformanceThe report inside your Google profile: views, searches, calls, directions, website clicks, messages, bookings.Now
Meta Pixel + Conversions API (CAPI) + Events ManagerPixel = browser tag for Facebook/Instagram ads; CAPI = a server-to-server copy of the same events; Events Manager = where you see and test them.When Meta ads run
Microsoft ClarityHeatmaps and session recordings: watch how people use your pages. Free.Soon
Data Studio (called Looker Studio until April 2026)Free dashboards that combine GA4, Google Ads, Search Console and Google Sheets.After a month of data
Microsoft Advertising UET tagBing Ads' conversion tag. Only needed if you run Bing ads.Probably never
Türkiye

Bing has under 1% of search in Türkiye (StatCounter, Sep 2026), so the Bing UET tag is low priority for a local shop. Google has about 73% and Yandex about 25%. Yandex has its own analytics tool, but this manual sticks to the Google and Meta stack where your ad money goes.

Definition

Google renamed Looker Studio back to Data Studio on 11 April 2026; free use continues. Tutorials and videos from 2022–2026 still say "Looker Studio." It is the same product.

Tags, triggers and variables (the GTM vocabulary)

GTM has three building blocks. Once these click, every tracking recipe on this page reads like a sentence.

Tag = what to send

"Send a GA4 event called phone_click."

Trigger = when to send it

"When someone clicks a link whose address starts with tel:."

Variable = a detail used by both

"Click URL" (the address of the link that was clicked), "Page path," and so on.

So a GTM recipe reads: "When [trigger] happens, send [tag], using [variables]." You also get a Preview mode to test before you Publish changes to the live site.

How the tracking tools connect A visitor arrives on the website. Google Tag Manager on the website sends data to GA4, the Google Ads tag, the Meta Pixel and Clarity, and a server copy goes to Meta through CAPI. GA4 key events can be imported into Google Ads. Search Console feeds organic search data into GA4. The Google Business Profile keeps its own report. The lead sheet sends paying-customer data back to Google Ads and Meta. All of it feeds the Data Studio dashboard. Visitor (phone/PC) Your website Google Tag Manager triggers fire tags GA4analytics Google Adsconversions Meta Pixelbrowser Clarityrecordings Meta CAPIserver server copy key events imported Search Consoleorganic searches Google Businessown Performance report Lead sheet / CRMwho actually paid paid jobs Data Studio dashboard GA4 · Ads · Search Console · Sheets
The website side (top) is wired through GTM. The Google profile keeps its own report. The lead sheet is the only place that knows who paid, so arrows run from it back into the ad platforms (Module 08). Everything ends up in one dashboard (Module 11).
At Kaya Oto Servis

Kaya's website is on WordPress. The admin installs GTM once with a plugin. After that, every new piece of tracking (phone taps, WhatsApp, forms, the Meta Pixel) is added inside GTM, without asking the web developer to change the theme each time.

Tip

Create every account (GA4, GTM, Google Ads, Meta Business) under the business's own Google/Meta login, and give agencies or freelancers user access. If someone leaves, the data stays with the shop.

In GTM, which part decides when something is sent: the tag, the trigger or the variable?

The trigger. The tag is what gets sent, and variables are details (like Click URL) used by tags and triggers.

Which tool shows calls and direction requests made directly from your Google profile on Maps?

Google Business Profile's Performance report. Those actions happen on Google, not on your website, so GA4 never sees them.

04
Module

UTM parameters: labelling every link you control

You'll learn
  • What UTM tags are and the five parameters that matter
  • A naming convention that keeps reports clean (and Turkish-character-free)
  • Ready-made tagged links for Instagram, GBP, flyers, WhatsApp and Meta ads
  • Why you must not add manual UTMs to Google Ads

When someone taps the link in your Instagram bio or scans the QR code on a flyer, GA4 often can't tell where they came from. The visit lands in a vague bucket like "direct" or "referral." UTM parameters fix that.

Definition

UTM parameters are labels added to the end of a link, after a ?, in the form name=value joined by &. They don't change the page the visitor sees. GA4 reads them and records the visit under the source, medium and campaign you wrote. (UTM stands for "Urchin Tracking Module," the old name of the tool Google bought to build Analytics.)

Anatomy of a tagged link The link kayaotoservis.example/?utm_source=instagram&utm_medium=social&utm_campaign=profile&utm_content=bio_link broken into its parts: the normal address, the question mark that starts the labels, and each label explained. kayaotoservis.example/?utm_source=instagram The page itself (unchanged) "?" starts the labels utm_source=instagram WHO sent the visit &utm_medium=social WHAT TYPE of channel &utm_campaign=profile WHICH campaign or offer &utm_content=bio_link WHICH link or ad variant
One tagged link, taken apart. In real use the labels follow each other on one line; "kayaotoservis.example" stands in for Kaya's real domain.

The five parameters

ParameterQuestion it answersExamples
utm_sourceWho / where sent the visit?google, instagram, facebook, flyer, whatsapp
utm_mediumWhat type of channel?cpc, paid_social, social, organic, email, qr
utm_campaignWhich campaign / offer?kis_bakimi_2026, fren_kampanya_ekim
utm_contentWhich ad, creative or link, to tell variants apartvideo_a, carousel_b, bio_link
utm_termWhich keyword (paid search), or any extra detailfren_balata_degisimi

Google's rule: always use at least source, medium and campaign. GA4 also understands utm_id (a campaign ID) and utm_source_platform; you'll see utm_id in the Meta example below. Google's free Campaign URL Builder (ga-dev-tools.google/campaign-url-builder) does the same job as the builder further down this page.

Naming rules

Where the link livessourcemediumcampaign / content pattern
Instagram bioinstagramsocialprofile / bio_link
Facebook page buttonfacebooksocialprofile / page_button
Google Business Profile website buttongoogleorganicgbp_listing
Meta ads (Facebook/Instagram)dynamicpaid_socialdynamic campaign and ad names
Flyer QR codeflyerqrkis_bakimi_2026 / one value per distribution spot
WhatsApp status or broadcastwhatsappsocialmonth + topic, e.g. ekim_duyuru
SMS / email to customerssms or newslettersms / emailmonth + topic
Google AdsNo manual UTMs. Auto-tagging handles it (see below).

Examples for Kaya

Below, kayaotoservis.example stands in for Kaya's domain.

PlacementTagged link
Instagram biohttps://kayaotoservis.example/?utm_source=instagram&utm_medium=social&utm_campaign=profile&utm_content=bio_link
GBP "Website" buttonhttps://kayaotoservis.example/?utm_source=google&utm_medium=organic&utm_campaign=gbp_listing
GBP appointment linkhttps://kayaotoservis.example/randevu?utm_source=google&utm_medium=organic&utm_campaign=gbp_appointment
Flyer QR codehttps://kayaotoservis.example/kampanya?utm_source=flyer&utm_medium=qr&utm_campaign=kis_bakimi_2026&utm_content=sanayi_dagitim
WhatsApp statushttps://kayaotoservis.example/?utm_source=whatsapp&utm_medium=social&utm_campaign=ekim_duyuru
Tip · the GBP link

Clicks from your Google profile's Website button otherwise mix with ordinary organic Google traffic in GA4. Tagging that one link lets you see profile visitors on their own. utm_medium=organic keeps them in the Organic Search channel; some practitioners use utm_source=gbp instead. Pick one and stay consistent.

Tip · QR codes

Generate the QR code from the full tagged link (or from a short link that redirects to it). Use a different utm_content for each place you hand flyers out (the sanayi industrial area, a petrol station, a car wash) to see which spot works.

Meta ads: dynamic parameters

Meta can fill in the campaign and ad names for you. In each ad, find the URL parameters field (under the website link, not inside the Website URL box itself) and paste:

utm_source={{site_source_name}}&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_id={{campaign.id}}

Meta swaps each {{…}} for the real value when someone clicks. {{site_source_name}} becomes fb, ig, msg (Messenger) or an (Audience Network). Other options: {{adset.name}}, {{adset.id}}, {{ad.id}}. IDs survive if you rename a campaign; names are readable. Using both is the safe choice.

Tip

Because Meta copies your campaign and ad names into reports, give them a readable pattern: 2026-10_kis-bakimi_istanbul_video-a (date, offer, area, creative). Lowercase, no Turkish characters, no spaces.

Google Ads: auto-tagging, not UTMs

Definition

Auto-tagging makes Google Ads add a gclid (Google Click ID) to your landing page link on every ad click. It is on by default for new accounts. When Google Ads and GA4 are linked, GA4 uses the gclid to show the exact campaign, ad group and keyword. In GA4, auto-tagging takes priority over manual UTMs.

Common mistake

Adding manual UTMs to Google Ads on top of auto-tagging, or using website redirects that strip the gclid from the link. Keep auto-tagging on, link Ads to GA4 (Module 05), and leave the gclid alone. You will need it again in Module 08.

Common mistake

UTMs on internal links (a link from your homepage to your own randevu page). A UTM restarts the visit with a new source, so the person who came from a Google ad suddenly "comes from" your homepage. Only tag links that live outside your site.

Tool · UTM builder

Fill in the fields; the tagged link updates as you type. Values are lowercased, spaces become hyphens and special characters are encoded. Prefilled with Kaya's Google Business Profile link.

Tagged link
    Türkiye

    The builder also turns Turkish letters into plain ones (ı→i, ş→s, ğ→g, ç→c, ö→o, ü→u), so Kış Bakımı becomes kis-bakimi. Do the same by hand when you type names anywhere else, including campaign and ad names in Meta.

    Your colleague tags the Instagram bio with utm_source=Instagram and you tag stories with utm_source=instagram. What happens in GA4?

    GA4 shows two separate sources, "Instagram" and "instagram," and splits your numbers between them. Always use lowercase and copy names from the shared UTM log.

    Should you add utm_source=google&utm_medium=cpc to your Google Ads links?

    No. Keep auto-tagging on; it adds a gclid that GA4 reads (and that takes priority over manual tags). Manual UTMs on Google Ads add nothing and can cause confusion.

    Where do Meta's dynamic parameters like {{campaign.name}} go?

    In the ad's URL parameters field, not inside the Website URL. Meta replaces them with the real values on each click.

    05
    Module

    Setting up GA4 (with GTM)

    You'll learn
    • How GA4 is organised: account, property, data stream
    • The day-one settings beginners forget: data retention, internal traffic, links
    • What enhanced measurement tracks automatically, and what it misses
    • How to check that data is actually arriving

    GA4 records what people do on your website. It is free and it is the hub most other tools connect to, so set it up first.

    GA4 structure An account contains a property, which contains a web data stream. The stream receives events; some events are marked as key events. Account · Kaya Oto Servis the business (one per company) Property · kayaotoservis.example reports, time zone (İstanbul), currency (TRY), links to Ads Web data stream Measurement ID G-XXXXXXX · enhanced measurement events flow in here → some marked as key events
    One account per business, one property per website, one web data stream per site. The Measurement ID (starting with G-) is what you paste into GTM.

    Step by step

    1. Create the account and property. At analytics.google.com, sign in with the business's Google account and create an account ("Kaya Oto Servis") and a property. Set the time zone to Türkiye and the currency to Turkish lira (TRY) so days and revenue match your books.
    2. Add a web data stream. Choose "Web," enter your site address, and keep enhanced measurement switched on. Copy the Measurement ID (G-…).
    3. Install it through GTM. Create a GTM container at tagmanager.google.com (one container per site) and install its code on every page; on WordPress, a GTM plugin does this. In GTM, add a Google tag with your Measurement ID, firing on all pages. Click Preview, browse your site, then Publish.
    4. Set data retention to 14 months. Admin → Data collection and modification → Data retention. GA4 keeps detailed event data for only 2 months by default. The setting is not retroactive: data older than 2 months at the time you change it is already gone. It affects Explorations (custom analyses), not the standard reports.
    5. Filter out your own visits. Admin → Data streams → your stream → Configure tag settings → Define internal traffic: add the shop's office IP address. Then in Admin → Data filters, switch the "Internal traffic" filter from Testing to Active. Otherwise every time the admin checks the price page, it counts as a visitor.
    6. Link Google Ads. Admin → Product links → Google Ads links. This lets GA4 read the gclid and show campaign details, and lets Google Ads import your key events (Module 07).
    7. Link Search Console. Admin → Product links → Search Console links. You need Editor rights in GA4 and to be a verified owner in Search Console. It adds two reports, "Google Organic Search Queries" and "Google Organic Search Traffic"; data arrives about 48 hours later. One property links to one Search Console site.
    8. Check data is arriving. Open Reports → Realtime and visit your own site from a phone on mobile data (not the office Wi-Fi, which you just filtered out). For detailed testing, GTM Preview mode also opens GA4's DebugView (Admin → DebugView), which shows each event as it arrives.
    Definition

    An IP address is the network address your internet connection uses. Search "what is my IP" on the shop computer to see it. Many Turkish home and office lines change IP from time to time, so check it again if your own visits start showing up.

    What enhanced measurement gives you for free

    With enhanced measurement on, GA4 records these events without any setup:

    EventWhat it recordsTrust it for…
    page_viewEach page loadYes
    scrollVisitor reached 90% of the pageMicro conversion
    click (outbound)Clicks to other websitesRough only
    view_search_resultsSearches on your siteYes
    form_start, form_submitForm interactionsNot as a lead count
    video_start etc.Embedded YouTube video engagementYes
    file_downloadDownloads of PDFs and other filesYes
    Watch out

    Automatic form tracking is unreliable: it can fire on search boxes and on failed submissions, and it misses many modern forms that send without reloading the page. And enhanced measurement does not track taps on phone (tel:) or email (mailto:) links. Module 06 sets these up properly in GTM.

    Key events: mark only the macros

    When an event has arrived at least once, it appears in Admin → Events (or Data display → Events). Mark only your macro events from Module 01 as key events: phone_click, whatsapp_click, generate_lead, and optionally directions_click. You can also create a key event in advance by typing its exact name.

    Common mistake

    Marking page views or scrolls as key events. If those flow into Google Ads as conversions, the automatic bidding will hunt for people who scroll, not people who call. Keep the key event list short.

    Definition

    An engaged session is a visit that lasted more than 10 seconds, or had a key event, or had 2 or more page views. Engagement rate is engaged sessions ÷ all sessions. Bounce rate is the opposite share.

    At Kaya Oto Servis

    On day one the admin sets the time zone and TRY, keeps enhanced measurement on, changes retention to 14 months, filters the office IP, and links Google Ads and Search Console. Total time: about an hour. Nothing is marked as a key event yet, because the phone, WhatsApp and form events don't exist until Module 06.

    You set up GA4 in January and only change data retention to 14 months in June. Can you analyse January in Explorations?

    No. The change isn't retroactive. With the default 2 months, detailed data from January was already deleted by June. Standard reports still show aggregate numbers, but Explorations can't.

    Why shouldn't you use GA4's automatic form_submit as your lead count?

    It can fire on search boxes and failed submissions and misses forms that send without a page reload. A thank-you page or a form plugin's success event is more reliable.

    What does linking Search Console to GA4 add?

    Reports on organic Google search: the queries and landing pages that brought free search traffic ("Google Organic Search Queries" and "Google Organic Search Traffic"), with about a 48-hour delay.

    06
    Module

    Tracking each customer action

    You'll learn
    • GTM recipes for phone taps, WhatsApp clicks, forms and "get directions" links
    • How to count direction requests and calls that happen on Google, not on your site
    • How to track phone calls in Türkiye, where Google's call forwarding numbers aren't available
    • What each number really means (a tap is not a call)

    A car repair customer rarely "buys online." They tap the phone number, send a WhatsApp message, fill a short booking form, or ask Google Maps for directions and drive over. Each of those needs its own tracking. This module goes through them one by one, then sums them up in a table.

    1 · Website visits and clicks

    Google Ads and Meta count clicks on the ad. GA4 counts sessions on your site. Expect fewer sessions than clicks: some people leave before the page loads, some block cookies, and some decline your cookie banner (Module 10). In Kaya's illustrative funnel, 600 clicks became about 540 sessions. Clicks from your Google profile appear in GBP Performance as "Website clicks," and in GA4 under the UTM you added in Module 04.

    2 · Phone taps (tel: links)

    Definition

    A tel: link is a phone number written as a link, like <a href="tel:+902160000000">. On a phone, tapping it opens the dialler with the number filled in. Ask your web developer to make every phone number on the site a tel: link; it helps customers and makes tracking possible.

    The GTM recipe:

    1. Turn on click variables. GTM → Variables → Configure → tick all the Clicks built-in variables (Click URL, Click Text and the others).
    2. Create the trigger. Triggers → New → Click – Just Links → "Some link clicks" → Click URL starts with tel:. Name it "Click – tel".
    3. Create the tag. Tags → New → Google Analytics: GA4 Event. Event name phone_click; add a parameter link_url = {{Click URL}}. Fire it on the "Click – tel" trigger.
    4. Test. Click Preview, tap the phone number on your site, and check that the tag shows as "fired" in GTM and that phone_click appears in GA4 DebugView. Then Publish.
    5. Mark it as a key event in GA4 once it appears in the events list (Module 05).

    Written out as settings, the trigger and tag look like this:

    TRIGGER  "Click – tel"
      Type:        Click – Just Links
      Fires on:    Some Link Clicks
      Condition:   Click URL   starts with   tel:
    
    TAG  "GA4 – phone_click"
      Type:        Google Analytics: GA4 Event
      Event name:  phone_click
      Parameter:   link_url = {{Click URL}}
      Trigger:     Click – tel

    In plain words: "When someone clicks a link whose address starts with tel:, send GA4 an event called phone_click and note which number they tapped."

    Watch out

    This counts taps on the number, not completed calls. Some people tap and hang up; desktop visitors often read the number and dial it by hand, which is never tracked. Treat phone_click as a strong signal, and count real calls in your lead sheet (Module 08).

    3 · WhatsApp clicks (wa.me links)

    Same recipe, different trigger and event name:

    TRIGGER  "Click – WhatsApp"
      Type:        Click – Just Links
      Fires on:    Some Link Clicks
      Condition:   Click URL   matches RegEx   wa\.me|api\.whatsapp\.com|web\.whatsapp\.com
    
    TAG  "GA4 – whatsapp_click"
      Type:        Google Analytics: GA4 Event
      Event name:  whatsapp_click
      Parameter:   link_url = {{Click URL}}
      Trigger:     Click – WhatsApp

    In plain words: "If the clicked link goes to any of WhatsApp's three web addresses, send whatsapp_click." (The "RegEx" condition lets one rule match several addresses; the | means "or" and \. means a real dot.) Mark whatsapp_click as a key event, and send the Meta Contact event on the same trigger (Module 07).

    Watch out

    Many floating WhatsApp buttons come from third-party widgets that sit inside an iframe (a page within the page). GTM can't see clicks inside it. Buttons that aren't real links may need GTM's "All Elements" click trigger instead. Test in Preview: if nothing fires when you tap the button, this is why. The simplest fix is a plain link to https://wa.me/90XXXXXXXXXX.

    And again: a click is not a message. Someone can open WhatsApp and never press send. Count real chats in WhatsApp Business; its labels (e.g. "Yeni müşteri – reklam," "Randevu verildi," "İş tamamlandı") make the weekly count quick.

    4 · Booking and quote forms

    Methods ranked from most to least reliable:

    1. Thank-you page. After the form is sent, the site shows a separate page such as /tesekkurler. In GTM, a Page View trigger where Page Path starts with /tesekkurler fires a GA4 event generate_lead. Simple and robust. ("Starts with" rather than "equals" because WordPress usually adds a trailing slash: /tesekkurler/.)
    2. The form plugin's own success event (a "dataLayer push"). Many WordPress form plugins offer this; ask the developer.
    3. GTM's Form Submission trigger, which only works with standard HTML forms.
    4. Enhanced measurement's form_submit: not recommended as a key event (Module 05).
    TRIGGER  "Page – thank you"
      Type:        Page View
      Fires on:    Some Page Views
      Condition:   Page Path   starts with   /tesekkurler
    
    TAG  "GA4 – generate_lead"
      Type:        Google Analytics: GA4 Event
      Event name:  generate_lead
      Parameter:   form_name = randevu
      Trigger:     Page – thank you
    Watch out

    If people can reach /tesekkurler without sending the form (from a search engine or a bookmark), you'll count fake leads. Ask the developer to keep the page out of search results (a "noindex" setting) and don't link to it from menus.

    Tip

    Ask the developer to add hidden fields to the form that store the visitor's gclid and UTM values. Each lead then arrives with its source attached, which you need for Module 08.

    5 · Direction requests

    Most direction requests happen on Google Maps, not on your website.

    Watch out

    A direction request is not a visit. And GBP "Calls" counts taps on the call button, not completed calls. Both are useful trends, not customer counts. GBP numbers also include activity driven by your Google Ads, so they aren't purely "free" results.

    6 · Phone calls in Türkiye

    In many countries, Google Ads can show a special Google forwarding number in your ads and on your site, record each call's length, and count calls over, say, 60 seconds as conversions. Türkiye is not on the list of countries where Google forwarding numbers are available. So two features don't work for a Turkish shop:

    What still works: call assets (your number shown in the ad) and location assets. Without forwarding numbers, Google's "calls from ads" conversions are based on taps on the call button, not real call length. Plus your own tel: tracking from step 2. Google's country list can change, so check it in Google Ads Help before you set up.

    Three ways to trace a phone call to its source in Türkiye Three columns. Left: one number per channel, with a separate virtual number for Google Ads, Meta and flyers, each feeding the phone system call log. Middle: ask every caller "Bizi nereden duydunuz?" and record the answer in the lead sheet. Right: tap tracking, where phone_click in GA4 and call clicks in Google Ads count taps, not calls. All three meet in the lead sheet. A · Number per channel B · Ask every caller C · Count taps Line 1 · Google Ads Line 2 · Meta ads Line 3 · Flyers Phone systemcalls per line "Bizi neredenduydunuz?" "Where did youhear about us?" Fixed answer listdropdown phone_clickGA4 (website) Call clicksGoogle Ads, GBP Taps, not callsa signal only Lead sheet one row per real call, with its source
    Without Google forwarding numbers, combine low-tech methods. A and B tell you where real calls came from; C gives fast daily signals.
    Türkiye · practical call tracking

    One number per channel: get two or three extra virtual numbers from a Turkish cloud phone system (bulut santral / sanal santral) provider, and use one only in Google Ads, one only on Meta and Instagram, one only on flyers. The phone system's call log then tells you calls per channel. Ask every caller "Bizi nereden duydunuz?" ("Where did you hear about us?") with a fixed list of answers. US call-tracking services such as CallRail don't serve Türkiye; some Turkish providers advertise dynamic call-tracking numbers, but check carefully that the product is current and integrates with GA4 before you pay.

    At Kaya Oto Servis

    Kaya's two service advisors answer the phone. They open the lead sheet on the reception tablet, ask "Bizi nereden duydunuz?" at the end of every first call, and pick from a dropdown: Google ad · Google Maps · Instagram ad · Instagram post · Flyer · Friend/referral · Regular customer · Other. Kaya also puts a separate virtual number on its Google ads. Two minutes a call; it gives the owner more truth than any dashboard.

    Summary: action → tracking → where it shows

    Customer actionHow to track itWhere you see itWhat it really means
    Clicked the adBuilt inGoogle Ads, Meta Ads ManagerAn ad click
    Visited the siteGA4 Google tag + UTMs / auto-taggingGA4 Traffic acquisitionA session (fewer than clicks)
    Tapped the phone number on the siteGTM tel: trigger → phone_clickGA4, Google Ads, Meta (Contact)A tap, not a call
    Tapped call in a Google adCall assetGoogle Ads (calls from ads)A tap (no forwarding numbers in TR)
    Tapped call on the Google profileBuilt inGBP Performance → CallsA tap
    Clicked WhatsApp on the siteGTM wa.me trigger → whatsapp_clickGA4, Google Ads, Meta (Contact)Opened WhatsApp
    Started a chat from a click-to-WhatsApp adBuilt inMeta Ads Manager (conversations)A chat started
    Sent the booking formThank-you page → generate_leadGA4, Google Ads, Meta (Lead/Schedule)A real lead
    Asked for directions on MapsBuilt in; location asset for adsGBP Performance; Google Ads local actionsInterest, not a visit
    Clicked "Yol tarifi al" on the siteGTM maps-link trigger → directions_clickGA4Interest, not a visit
    Called (any route)Number per channel + "Bizi nereden duydunuz?"Phone system log, lead sheetA real call
    Became a paying customerLead sheet "became customer?" + invoiceLead sheet → offline import (Module 08)The result
    Tip

    Add a campaign code (kampanya kodu) to flyers and offers, such as "EKIM10." When a customer mentions it at the counter, you know exactly where they came from, with no technology at all.

    Your GTM WhatsApp trigger fires in Preview when you tap a text link, but not when you tap the floating green button. What is the likely cause?

    The floating button is probably a third-party widget inside an iframe (or not a real link), so GTM can't see the click. Replace it with a plain wa.me link, or use an "All Elements" trigger if it isn't in an iframe.

    Why can't Kaya use Google Ads call reporting to count calls longer than 60 seconds?

    Call reporting depends on Google forwarding numbers, which are not available in Türkiye. Kaya counts call-button taps instead, and uses separate numbers per channel plus "Bizi nereden duydunuz?" for real calls.

    Which form-tracking method is the most reliable for a beginner?

    A thank-you page (e.g. /tesekkurler) shown only after a successful submission, with a GTM Page View trigger firing generate_lead.

    07
    Module

    Google Ads and Meta conversion tracking

    You'll learn
    • Why ad platforms need conversion data, not just GA4
    • Google Ads conversion actions, GA4 import, and enhanced conversions
    • Meta Pixel, Conversions API, standard events and how to test them
    • How to avoid counting the same lead twice

    GA4 tells you what happened. The ad platforms need to know too, for two reasons: so their reports show which ads produced leads, and so their automatic bidding (Google's Smart Bidding, Meta's delivery system) learns which people to find more of. If you tell them nothing, they optimise for clicks.

    Definition

    A conversion action (Google Ads) or event (Meta) is a named action the platform counts, such as "Form – randevu" or Lead. Primary conversions in Google Ads are counted in the "Conversions" column and used for bidding; secondary ones are reported only.

    Google Ads

    The conversion actions Kaya needs

    1. Calls from ads, via the call asset (counted as call-button taps in Türkiye, Module 06).
    2. Phone taps on the website (phone_click).
    3. Booking form sent (generate_lead).
    4. WhatsApp clicks on the website (whatsapp_click).
    5. Directions, from the website link or the location asset; optional, as a secondary action.
    6. Later: paying customers, uploaded offline (Module 08).

    Two ways to feed website conversions in

    A · Import GA4 key events

    Link GA4 and Google Ads (done in Module 05), then in Google Ads go to Goals → Conversions → New → Import → Google Analytics 4 and pick your key events. One setup, one place to maintain. Simplest for a beginner.

    B · Google Ads conversion tag

    Create a website conversion action in Google Ads and fire its tag from GTM on the same triggers as your GA4 events. Data arrives in Ads a little more directly, and it is the base for enhanced conversions.

    Common mistake

    Using both A and B for the same action and leaving both as Primary. Every form is then counted twice, and bidding thinks you get double the leads. If you use both, set one to Secondary.

    Definition

    Enhanced conversions send hashed (scrambled one-way) contact data that the customer typed into your form, such as email or phone, along with the conversion. Google matches it to signed-in Google users, so conversions are still counted when cookies are lost. Enhanced conversions for leads uses the same matching to connect a later offline sale back to the ad (Module 08). Since April 2026, enhanced conversions for web and for leads share a single on/off setting in Google Ads.

    Turn enhanced conversions on in Google Ads (Goals → Settings, or in the conversion action) and follow the setup it offers for your tag. Collect only data your form already asks for, and make sure your privacy notice covers it (Module 10).

    Tip

    Check that Google Ads conversions run on the same tag via GTM that your consent banner controls (Module 10), and use Google's Tag Assistant (tagassistant.google.com) to see which Google tags fire on a page.

    Meta (Facebook, Instagram, WhatsApp ads)

    Meta Pixel

    Browser code on your website. Install it through Events Manager's guided setup, a WordPress/CMS integration, or GTM. It fires events like Contact when someone taps WhatsApp.

    Conversions API (CAPI)

    Sends the same events from your server to Meta. Fewer events are lost to ad blockers, iOS privacy settings and Safari. Many site builders and plugins offer a one-click integration.

    Run the Pixel and CAPI together. Because the same event then arrives twice, Meta deduplicates it: both copies carry the same event name and the same event_id, and Meta keeps one. Good plugins and the guided setup handle this for you. In Events Manager, check Event Match Quality: a higher score means Meta can match more events to real accounts, and sending hashed email or phone improves it.

    Meta standard events for a car repair shop

    EventMeaning (Meta's definition, paraphrased)Kaya fires it when…
    ContactPerson starts contact by phone, SMS, email or chatTap on phone number or WhatsApp button
    LeadPerson submits their details, expecting to be contactedBooking/quote form sent (thank-you page)
    SchedulePerson books an appointment to visit a locationOnline appointment booked (if the form books a slot)
    FindLocationPerson searches for your location"Yol tarifi al" clicked
    ViewContentA key page is viewedPrice or service page viewed (micro)
    PurchaseA purchase is completed, with valuePaid job, sent back later via CAPI (Module 08)

    Test before you trust

    1. In Events Manager, open your dataset (pixel) → Test events.
    2. Enter your website address and open the site from there (on a computer or your phone).
    3. Tap the phone number, the WhatsApp button, send a test form. Each event should appear within seconds, marked as received from the browser, the server, or both (deduplicated).
    4. Delete your test form entry from the lead sheet so it isn't counted as a lead.
    Tip

    For click-to-WhatsApp ads, Meta counts "conversations started" without any Pixel; the chat happens in WhatsApp, not on your site. What happens after the chat starts (appointment, paid job) is invisible to Meta unless you tell it, which is the next module's job. Since 2025, Meta also reports landing page views without a Pixel, and the old "Aggregated Event Measurement" tab where you ranked 8 events is gone; there is nothing to configure there.

    Definition

    A dataset is Meta's current name for the container in Events Manager that holds your Pixel, CAPI and offline events together. Older tutorials call it "the pixel."

    At Kaya Oto Servis

    Kaya imports phone_click, whatsapp_click and generate_lead from GA4 as primary conversions in Google Ads, and keeps local actions (directions) as secondary. On Meta, its WordPress plugin installs the Pixel and CAPI together; GTM sends Contact on phone and WhatsApp taps and Lead on the thank-you page. The admin runs Test events after every website update.

    Google Ads Field ManualCampaigns, keywords, bidding and the call asset in detailOpen deep dive → Meta Ads Field ManualClick-to-WhatsApp ads, objectives and creativeOpen deep dive →
    Kaya imports generate_lead from GA4 and also fires a Google Ads conversion tag on the same thank-you page. Both are Primary. What goes wrong?

    Each form is counted twice in the Conversions column, and Smart Bidding thinks leads are twice as frequent as they are. Make one of them Secondary.

    Why run Meta CAPI as well as the Pixel, and how does Meta avoid counting events twice?

    CAPI sends events from the server, so fewer are lost to blockers and iOS/Safari limits. Meta deduplicates using the same event name and event_id on the browser and server copies.

    Which Meta standard event fits a tap on the WhatsApp button on Kaya's website?

    Contact: a person starts contact by phone, SMS, email or chat.

    08
    Module

    From lead to paying customer

    You'll learn
    • How to design a simple lead sheet that every staff member can fill in
    • How "closing the loop" turns lead counts into customer counts
    • The basics of sending paying-customer data back to Google Ads and Meta
    • When to start, and what to check first

    Everything so far counts leads. But a lead is not a customer: some callers only want a price, some book and don't show up. To know what ads really earn, you have to record what happens after the call or chat. This is called closing the loop.

    The lead sheet

    Every lead, whatever its route (call, WhatsApp, form, walk-in), goes into one Google Sheet or simple CRM (customer relationship management software). The columns:

    DateNamePhoneChannelSourceCampaignServiceQuote ₺Customer?Invoice ₺gclid
    06.10A. Y.05xx…CallGoogle adfren_ekimBrakes3,200Yes3,450—
    06.10S. K.05xx…WhatsAppInstagram adkis_bakimi_2026Maintenance4,500Booked—
    07.10M. D.05xx…FormGoogle adkis_bakimi_2026Timing belt9,800Yes9,800Cj0K…
    07.10E. T.05xx…CallGoogle Maps—A/C1,800No—
    08.10B. A.05xx…Walk-inRegular—Tyre change800Yes800—

    Mock rows; names abbreviated, all values illustrative. Scroll sideways on a phone.

    Tip

    Add a "Returning?" column (Yes/No). It lets you see how many ad-won customers come back, which is the lifetime value from Module 02.

    Türkiye

    Names and phone numbers are personal data under KVKK, Türkiye's data protection law. Restrict who can open the sheet, don't share it by public link, and keep it only as long as you need it. Module 10 covers consent before any of this data goes to Google or Meta.

    Closing the loop A loop of five steps: the ad brings a click; the click becomes a lead recorded in the lead sheet with its source; the job is done and marked paid; the paid customer is uploaded to Google Ads or Meta; the platform then bids for more people like the paying customers, which brings better clicks. 1 · Ad clickgclid / UTMs attached 2 · Leadcall · WhatsApp · form 3 · Lead sheetsource + "paid? ₺" 4 · Upload paid jobsGoogle Ads · Meta 5 · Smarter biddingfinds people likepaying customers Closingthe loop
    Without steps 3 and 4, the ad platforms only know about clicks and leads, so they optimise for people who contact you, not people who pay.

    Level 1: the manual loop (everyone)

    Once a week, filter the sheet by source and count: leads, booked, paid, revenue. Divide each platform's spend by its paid customers to get cost per customer by source. This needs no technology beyond the sheet, and it is the number the owner cares about.

    At Kaya Oto Servis

    Illustrative week: Instagram ads brought 30 WhatsApp chats → 9 appointments → 6 paid jobs. Meta spend that week was ₺2,400, so cost per paying customer from Instagram = ₺2,400 ÷ 6 = ₺400, close to the ₺500 limit in the measurement plan. Meta Ads Manager showed only "30 conversations started."

    Level 2: send paying customers back to the platforms

    Start this once tracking has run cleanly for 4–8 weeks and the sheet is filled in reliably, and only after the KVKK review in Module 10.

    Google Ads

    Meta

    Watch out

    Long sales cycles: a customer who chats on Monday and pays three weeks later may fall outside the platform's attribution window (Module 09), so the upload won't be credited to the ad. Your sheet still knows. Always reconcile platform numbers with the sheet.

    Tip

    GA4 can also receive a close_convert_lead event (Module 01), but for a beginner, uploading paid jobs to Google Ads is the more valuable step: it changes what Smart Bidding chases.

    What is the difference between the "Channel" and "Source" columns in the lead sheet?

    Channel is how the person contacted you (call, WhatsApp, form, walk-in). Source is where they heard about you (Google ad, Instagram ad, Maps, flyer, referral). A WhatsApp chat can come from an Instagram ad or from a flyer.

    What does Google's "enhanced conversions for leads" match on, instead of only the gclid?

    Hashed first-party contact data, such as the email or phone number the customer entered in your form.

    Meta's Offline Conversions API was retired in May 2025. What replaces it?

    The regular Conversions API, sending offline events (with an action_source like physical_store) into your dataset.

    09
    Module

    Attribution: who gets the credit?

    You'll learn
    • What attribution means and which models GA4 and Google Ads still offer
    • Conversion windows, and click-through vs view-through
    • Why Google, Meta and GA4 never agree, and why that's normal
    • A practical stance: blended cost per customer

    Customers rarely see one ad and call. A typical path: an Instagram ad on Monday, a Google search on Thursday, a call on Friday.

    Definition

    Attribution is the set of rules that decides which ad or channel gets the credit for a conversion when the customer touched several. An attribution model is the rule itself (e.g. "the last click gets everything"). A conversion window (or lookback window) is how many days after an ad interaction a conversion can still be credited to it.

    The models you can choose

    WhereModels availableWindows (defaults)
    GA4Data-driven (default: Google's machine learning splits credit based on observed paths), paid and organic last click, Google paid channels last clickAcquisition key events 30 days (or 7); other key events 90 days (or 30/60)
    Google AdsData-driven and last clickClick 30 days (1–90); engaged-view 3 days; view-through 1 day
    MetaAttribution setting per ad set7-day click + 1-day engage-through + 1-day view

    First click, linear, time decay and position-based models were removed from GA4 and Google Ads in 2023; Google cited under 3% usage. Old tutorials still mention them.

    Click-through

    The person clicked the ad, then converted within the window. On Meta, since 3 March 2026, only link clicks count here (website, call, message, lead-form clicks).

    View-through / engage-through

    The person only saw the ad (view) or liked, commented, shared, saved or watched it (engage-through, 1 day on Meta) and converted later. Possible influence, hard to prove. For a garage, treat these with caution.

    One customer, three different stories

    One customer journey credited differently by each tool A timeline: on Monday the customer clicks an Instagram ad and leaves; on Thursday they search and click a Google ad; on Friday they tap the phone number and book a brake job. Meta claims one conversion because the link click on Monday is within its 7-day click window. Google Ads claims one conversion, dated Thursday, the click date. GA4 splits credit with its data-driven model and dates it Friday. The lead sheet shows one paying customer who answered "Instagram." Platforms total two conversions; reality is one customer. MonThuFri Clicks Instagramad, leaves Searches, clicksGoogle ad Taps phone,books brakes Meta Ads Manager"1 conversion": link click Mon, converted within 7 days Google Ads"1 conversion", dated Thursday (the click date) GA4 (data-driven)splits credit by its model, dated Friday Lead sheet: 1 customer · answer "Instagram" Platforms total: 2 conversions (Meta 1 + Google 1) Reality: 1 paying customer, ₺3,450 invoice (illustrative)
    Each platform credits itself and uses its own window and date rules. Add them up and one brake job becomes two "conversions."

    Why the numbers disagree

    A practical stance for a small business

    1. Never add up platform conversions. Google says 40 and Meta says 30 does not mean 70 leads.
    2. Use the blended number. Total ad spend across all platforms ÷ total new paying customers (from the lead sheet) = blended cost per customer. This is the number the owner should see first.
    3. Compare weekly. If ads report 60 leads but the sheet shows 25 new customers, trust the sheet and find out why (spam forms, wrong numbers, slow replies).
    4. Test incrementality simply. In a normal season, pause one channel for 2–3 weeks, or run it only in some districts, and watch whether total bookings drop. Brand-name search ads in particular often look better than they are, because people searching your name would have found you anyway.
    At Kaya Oto Servis

    Illustrative month: Google Ads ₺6,000 + Meta ₺4,000 = ₺10,000 total. Google reports 38 conversions, Meta 31 (69 "total"). The lead sheet shows 52 real leads and 26 new paying customers from ads. Blended cost per customer = ₺10,000 ÷ 26 ≈ ₺385, inside the ₺500 target. That one line goes at the top of the owner's report.

    Tip

    Keep Meta on its default attribution setting while you learn. Meta's "Compare attribution settings" view in Ads Manager shows conversions by window without changing delivery, which helps when you want to see how many were view-through.

    Which attribution models remain in GA4 and Google Ads?

    Data-driven and last click (GA4 offers two last-click variants: paid and organic, and Google paid channels). First click, linear, time decay and position-based were removed in 2023.

    A customer clicks a Google ad on 30 September and books on 2 October. On which date does each tool report the conversion?

    Google Ads: 30 September (the click date). GA4: 2 October (the conversion date). Monthly totals can differ for this reason alone.

    What is "blended cost per customer" and why use it?

    Total ad spend across all platforms divided by total new paying customers from your own records. It avoids double counting between platforms and measures what the owner actually cares about.

    11
    Module

    Dashboards and the reporting routine

    You'll learn
    • A one-page dashboard layout that answers the owner's questions first
    • A 15-minute weekly check and a one-hour monthly review
    • How to judge whether a campaign works, and when you have too little data to tell
    • How to run simple tests without fooling yourself

    Tracking is only useful if someone looks at it on a fixed day and makes decisions. This module gives you the layout and the routine.

    The dashboard layout

    Build it in Data Studio (free; formerly Looker Studio). It connects natively to GA4, Google Ads and Search Console. Meta data and your lead sheet come in through a Google Sheet: either copy Meta's numbers in by hand each week, or use a paid connector. Arrange it top-down, from money to detail:

    1. Scorecards: ad spend · leads · CPL · new customers · cost per customer · revenue · ROAS.
    2. Leads by week, one line per channel.
    3. Campaign table: campaign · spend · clicks · leads · CPL · customers · cost per customer.
    4. Lead type breakdown: phone / WhatsApp / form / directions.
    5. GBP actions and organic search trends (GBP Performance, Search Console).
    Kaya Oto Servis · OctoberMock · illustrative numbers
    Row 1 · Scorecards (from lead sheet + platform spend)
    ₺10,000Ad spend (all)
    52Leads (sheet)
    ₺192CPL
    26New customers
    ₺385Cost / customer
    ₺104,000Revenue
    10.4ROAS
    Row 2 · Leads by week and channel
    Leads by week, illustrative Line chart over four October weeks. Google Ads leads: 6, 7, 7, 8. Meta leads: 5, 6, 6, 7. Both rise slowly. 02468 Week 1Week 2Week 3Week 4 Google Ads (28) Meta (24) leads per week
    Row 3 · Campaigns
    CampaignSpendClicksLeadsCPLCust.₺/cust.
    Google · fren (brakes)₺3,50023016₺2199₺389
    Google · kış bakımı₺2,50017012₺2086₺417
    Meta · WhatsApp · kış bakımı₺4,00052024₺16711₺364
    Total₺10,00092052₺19226₺385
    Row 4 · Lead types
    20Phone
    22WhatsApp
    10Form
    GBPDirections: see row 5
    Row 5 · GBP actions and organic search: monthly trend lines from GBP Performance and Search Console

    All figures are made up for illustration, consistent with Kaya's examples in Module 09 (₺10,000 spend, 26 customers, ₺4,000 average ticket).

    Definition

    A scorecard is a dashboard tile showing one number, often with the change from the previous period. A connector is what pulls data from a source (GA4, a Sheet) into Data Studio.

    The routine

    Weekly · Monday, 15–20 min

    Monthly · 1 hour

    Ticks are saved in this browser only, so you can use the list as a reusable checklist (untick to reset).

    How to judge if a campaign works

    1. Primary test: cost per paying customer is at or below what you can afford (from margin and lifetime value, Module 02), and total bookings are rising compared with the same period before.
    2. Secondary: CPL and lead quality (close rate). A cheap CPL with a 10% close rate can be worse than an expensive CPL with a 60% close rate.
    3. Diagnostic signals: CTR, CPC and engagement rate explain why something works or not. They don't tell you whether it works.
    At Kaya Oto Servis

    In the mock dashboard, the Meta WhatsApp campaign has the cheapest CPL (₺167) and the cheapest customer (₺364). The Google kış bakımı campaign costs ₺417 per customer: still under the ₺500 limit, so "fix" (try a new ad text), not "stop." But with 6 customers, a single extra job would move that number a lot, which brings us to the next point.

    Small numbers lie

    Common mistake

    Pausing an ad after two days because "it got no calls." Two days of a small local budget is far too little data. Let it run, and fix tracking first if a key event shows zero.

    Testing without fooling yourself

    Campaign A: CPL ₺150, close rate 20%. Campaign B: CPL ₺300, close rate 60%. Which costs less per paying customer?

    A: ₺150 ÷ 0.20 = ₺750 per customer. B: ₺300 ÷ 0.60 = ₺500 per customer. B is cheaper per customer despite the higher CPL.

    On Monday, whatsapp_click shows zero for last week, after 15–20 a week before. What do you check first?

    Tracking health: open GTM Preview and tap the WhatsApp button. A sudden zero usually means a website change broke the trigger (a new widget or theme), not that interest vanished. Compare with WhatsApp Business chats in the lead sheet.

    Why compare November with last November rather than with October?

    Car repair demand is seasonal (winter tyres, maintenance before winter and holidays). Comparing different seasons mixes the ad effect with the season effect.

    12
    Module

    The setup order checklist

    You'll learn
    • The order to set everything up so that nothing depends on a later step
    • Which module explains each step

    Work through this list in order. Ticks are saved in your browser, so you can come back over several days. The first two steps need no technology at all.

    At Kaya Oto Servis

    Kaya's admin did steps 1–2 on a Monday morning, steps 3–8 over two afternoons with the web developer on the phone, and launched the first Google and Meta campaigns only after Test events and DebugView showed every event arriving. Offline uploads waited until week seven.

    Why does the consent banner come before the Google tag and the Meta Pixel?

    Under KVKK, analytics and advertising cookies need explicit consent before they're set. If the tags go live first, they collect data without consent until the banner arrives.

    Which two steps need no technology and can start today?

    Writing the measurement plan and creating the lead sheet (with "Bizi nereden duydunuz?").

    Common mistakes

    Thirteen ways beginners waste money or fool themselves, with the module that prevents each one.

    #MistakeFix
    1Launching ads before tracking worksPlan + lead sheet + key events first (01, 12)
    2Leaving GA4 data retention at 2 monthsChange to 14 months on day one (05)
    3Mixed-case or inconsistent UTMs (Instagram, instagram, IG)Lowercase, a UTM log, the builder (04)
    4UTMs on internal links, or manual UTMs on Google AdsTag only outside links; keep auto-tagging (04)
    5Counting the same action twice (Ads tag + imported GA4 key event, both primary)One primary per action (07)
    6Marking page views or scrolls as key eventsOnly macros are key events (01, 05)
    7Trusting enhanced-measurement form_submit as the lead countThank-you page → generate_lead (06)
    8Treating phone taps or GBP "Calls" as completed calls, and "Directions" as visitsCount real calls in the lead sheet (06, 08)
    9Adding up Google + Meta + GA4 conversionsBlended cost per customer (09)
    10No consent banner, an "Accept only" banner, or tags firing before consentCMP with Consent Mode v2, defaults denied (10)
    11Not re-testing after website changes (a theme update can silently break triggers)Weekly tracking-health check (11, 12)
    12Judging campaigns after 2–3 days or 3 leadsWait ~2 weeks / 10+ leads per variant (11)
    13Ignoring the offline step, optimising for leads that never payClose the loop (08)

    Glossary

    Attribution
    Rules deciding which ad or channel gets credit for a conversion. GA4 and Google Ads offer data-driven and last click.
    Auto-tagging
    Google Ads adds a gclid to ad clicks so GA4 and offline uploads can identify the click. Keep it on.
    Blended cost per customer
    Total ad spend on all platforms ÷ new paying customers from your own records.
    Break-even ROAS
    1 ÷ gross margin. The ROAS below which ads lose money on the first job.
    CAPI
    Meta Conversions API: sends events from your server to Meta, alongside the Pixel.
    CMP
    Consent management platform: shows the cookie banner, stores choices and passes them to tags.
    Consent Mode v2
    Google's way for tags to respect the banner, using four signals (ad_storage, analytics_storage, ad_user_data, ad_personalization).
    Conversion window
    How many days after an ad interaction a conversion can still be credited to it.
    CPL / CPA
    Cost per lead / per action: spend ÷ leads.
    CTR
    Click-through rate: clicks ÷ impressions × 100.
    Data Studio
    Google's free dashboard tool, called Looker Studio until April 2026.
    Dataset
    Meta's container in Events Manager for Pixel, CAPI and offline events.
    Enhanced conversions
    Google Ads feature that sends hashed form data (email/phone) to match conversions more reliably; "for leads" connects later offline sales.
    Engaged session
    A GA4 visit over 10 seconds, or with a key event, or with 2+ page views.
    Event / key event
    Any action GA4 records / an important one you mark (formerly "conversion").
    gclid
    Google Click ID, added to landing page links by auto-tagging.
    GTM
    Google Tag Manager: a container for tags, triggers and variables.
    İYS
    İleti Yönetim Sistemi: Türkiye's registry for commercial SMS, email and call consent.
    KVKK
    Türkiye's personal data protection law (No. 6698) and its authority.
    Lead sheet
    One shared sheet or CRM where every lead, its source and whether it paid is recorded.
    Macro / micro conversion
    An action that is almost a lead / a sign of interest before a lead.
    Measurement plan
    One page: goal → KPIs → events → tools.
    Offline conversion import
    Uploading "this lead paid" data to Google Ads or Meta.
    Pixel
    Meta's browser tag on your website.
    ROAS / ROI
    Revenue ÷ ad spend / (gross profit − ad spend) ÷ ad spend.
    Tag / trigger / variable
    In GTM: what to send / when to send it / details used by both.
    UTM parameters
    Labels on a link (source, medium, campaign, content, term) that tell GA4 where a visit came from.
    View-through
    A conversion after someone only saw (didn't click) an ad.

    Sources

    Paraphrased; checked October 2026. Platform menus and rules change often.

    1. Google Analytics Help: key events vs conversions
    2. Google Analytics Help: recommended events
    3. MeasureSchool: GA4 enhanced measurement
    4. Analytics Mania: track clicks with GA4 and GTM
    5. Google Analytics Help: engagement rate and bounce rate
    6. Nice Looking Data: GA4 data retention settings
    7. Google Analytics Help: Search Console links
    8. Google Business Profile Help: performance metrics
    9. Sterling Sky: interpreting GBP performance
    10. Meta for Developers: Pixel standard events reference
    11. AdsUploader: Meta Conversions API guide
    12. Microsoft Learn: about Clarity
    13. PPC Land: Data Studio name returns (April 2026)
    14. Google Analytics Help: URL builders and UTM parameters
    15. utm.new: Meta dynamic URL parameters
    16. Google Ads Help: auto-tagging
    17. Boei: tracking WhatsApp clicks with GTM
    18. Google Ads Help: Google forwarding numbers (country list)
    19. Google Ads Help: tracking calls to a number on your website
    20. Google Ads Help: tracking call clicks
    21. CallRail: countries served
    22. Google Ads Help: local actions conversions
    23. Google Ads Help: offline conversion imports
    24. Google Ads Help: upgrade to enhanced conversions for leads
    25. Google Ads Help: configure the Google tag for enhanced conversions for leads
    26. CustomerLabs: Meta offline conversions after the Offline Conversions API
    27. AWS docs: Meta Conversions API for business messaging
    28. Google Analytics Help: attribution settings
    29. Search Engine Land: Google retires attribution models
    30. Google Ads Help: conversion windows
    31. Nice Looking Data: why GA4 and Google Ads conversions don't match
    32. Jon Loomer: click-through attribution now means link clicks
    33. Jon Loomer: Meta ads attribution 2026
    34. Jon Loomer: Aggregated Event Measurement tab removed
    35. KVKK: Çerez Uygulamaları Hakkında Rehber (PDF)
    36. Erdem & Erdem: KVKK updates cookie guide (July 2025)
    37. Mondaq: KVKK cookie guide compliance roadmap
    38. DESAFE: cookie guide published (Dec 2024)
    39. KP Law: cookie guide summary
    40. Güneş Partners: cross-border transfer under Law 7499
    41. KVKK: guide on transferring personal data abroad
    42. Anadolu Ajansı: KVKK announcement on third-party data for advertising (July 2026)
    43. Simo Ahava: Consent Mode v2 for Google tags
    44. Google Ads Help: about Consent Mode
    45. Güneş Partners: what is İYS
    46. Analytics Mania: introduction to server-side tagging
    47. Loves Data: Google tag gateway
    48. Google Ads Help: Google tag gateway for advertisers
    49. StatCounter: search engine market share, Türkiye
    All reports