Section 01 / 14
Why measure: the measurement plan
- Read
- 12 min
- Builds on
- Crash Course 03, 05
- You will be able to
- Write a one-page plan that links a business goal to the customer actions you count, and name the tool that counts each one.
Every ad platform tells you how many people saw and clicked your ad. None of them knows how many cars came into the shop or how much those customers paid. Tracking connects those two worlds, so you can see which money brought customers and which money only brought clicks.
For a repair shop the real result is a paid job: an iş emri (work order) that ends with a fatura (invoice). Calls, WhatsApp chats, form fills and direction requests are steps on the way. They are useful signals, but they are not money yet.
The chain from ad to money
Each paying customer moves through the same chain of steps:
Impression → click or visit → lead action (call, WhatsApp, form, directions) → booked appointment → car in the shop → invoice paid → repeat visits
Ad platforms and Google Analytics see the left part of this chain. Only you see the right part: which jobs were done and what was paid. Good tracking joins the two halves, usually with a simple customer log that the front desk fills in.
From goal to tracked actions
Write the plan before you install any tool. It takes one to two hours on paper or in a Google Sheet.
- Write the business goal
One sentence with a number and a date. "More customers" is too vague to measure.
- Pick 3–5 KPIs
For example: new paying customers per month, cost per new customer, revenue from new customers, lead-to-job rate, cost per lead by channel.
- List every way a customer can reach you
Phone, WhatsApp, website form, online booking, Google Maps, walking in. Next to each, write how it will be counted and by which tool.
- Fix the names
Decide how you will name links, events and conversions (Sections 03–06), and never mix spellings.
- Name the owners
Who fills in the customer log (usually the front desk, danışma), and who reads the numbers every Monday.
- Date the plan
Give it a version number and update it when you add a channel.
The conversions of a repair shop
List every way a customer can reach Örnek Oto Servis, and how each one is counted:
| Customer action | Where it happens | How to count it | Tool |
|---|---|---|---|
| Taps the phone number on the website | Website | A GTM rule (trigger) that fires on taps on phone links (tel:) → event click_to_call | GTM, GA4, Google Ads, Meta Pixel |
| Actually calls the shop | Phone line | Separate number per channel; phone-system call log; "Bizi nereden duydunuz?" | Cloud PBX, customer log |
| Taps the WhatsApp button | Website | A GTM trigger on WhatsApp links → event whatsapp_click | GTM, GA4, Meta Pixel |
| Starts a WhatsApp chat from an ad (Click-to-WhatsApp) | Meta ads | "Messaging conversations started" in Ads Manager | Meta |
| Sends a form or books online | Website | Thank-you page view → event generate_lead | GTM, GA4, Google Ads, Meta Pixel |
| Asks for directions or taps call on Google Maps | Google Business Profile | Performance report (monthly); tagged website link | GBP, GA4 |
| Walks in | Shop | "Bizi nereden duydunuz?" answer in the log | Sheet or CRM |
| Pays for a job | Shop / accounting | Invoice amount in the log; later uploaded as an offline conversion | Sheet or CRM, Google Ads, Meta |
Macro, primary and micro conversions
Not every action is worth the same. Sort them into three groups:
Macro: the real goal
- Paid job
- Booked appointment where the car actually came in
Counted in your customer log. Can be uploaded to ad platforms later (Sections 06–07).
Primary leads
- Tap on the phone number
- Tap on the WhatsApp button
- Form sent, online booking done
- Call or directions tap on Google Maps
Count these as key events (GA4's name for important actions, Section 04) and as ad-platform conversions.
Micro: small steps
- Viewing the prices or a service page
- Scrolling, opening the map
- Starting a form, watching a video
Watch them, but do not tell ad platforms to chase them.
A simple rule: tell ad platforms to optimise for the closest action to money that you can measure reliably and often enough. A beginner usually starts with form leads, call taps and WhatsApp taps. Once enough jobs are logged, you can send "job completed" data back to the platforms.
Own your accounts
Every number in this guide lives inside an account: Google Ads, GA4, Tag Manager, Business Profile, Meta. If an agency or a freelancer creates these accounts in its own name and you part ways, you can lose years of data, your conversion setup and your ad history. Set one rule from day one: the business owns every account, and outside helpers get access.
| Account | The shop keeps | An agency gets |
|---|---|---|
| Google Ads | Admin access, on a shop e-mail address. Admin is the level that can manage users and billing. | Standard access: it can edit campaigns, but cannot manage users Google Ads Help, Oct 2026 |
| GA4 and Tag Manager | The Administrator role, which is needed to add and remove users Google Analytics Help, Oct 2026 | A lower role on its own login |
| Google Business Profile | The owner role | Manager access |
| Meta (business portfolio, ad account, Pixel) | The business portfolio in the shop's name, with full control | Partner access to the assets it needs; partner access does not transfer ownership Chatfuel docs, Oct 2026 (secondary) |
Örnek Oto Servis: the filled-in plan
| Business goal | KPI | Example target | Data source | Check |
|---|---|---|---|---|
| More new customers | New paying customers per month (all channels) | 40 / month | Customer log | Weekly |
| Profitable ads | Cost per new paying customer from paid ads | ≤ 1,500 TL (break-even 3,200 TL) | Ad spend ÷ jobs in the log | Monthly |
| Affordable leads | Cost per lead (call, WhatsApp, form) | ≤ 600 TL | Ad platforms + log | Weekly |
| Good lead handling | Lead → job rate; share of missed calls | > 35%; < 10% missed | Log + phone system | Weekly |
| Visible in local search | Maps calls + direction requests; Google search clicks for local searches | Growing vs. last quarter | GBP, Search Console | Monthly |
| Website works as a sales tool | Share of mobile visits with a lead action | Growing vs. own baseline | GA4 | Monthly |
Self-checkWhich of these is the macro conversion for Örnek Oto Servis?
The paid job is the real business result. Taps and visits are signals that may or may not lead to money.
Self-checkWhich source can tell you how many leads became paid jobs?
Tools only see the online part of the chain. Jobs and invoices happen in the shop, so only your log records them, unless you upload them to the platforms later.
Sources for this section
- Google Ads Help — Track clicks on your website as conversions (checked Oct 2026)
- Google Ads Help — About Google forwarding numbers (checked Oct 2026)
- CallRail — BraBos Cleaning case study (10 Sep 2026)
- Google Ads Help — About access levels in your Google Ads account (checked Oct 2026)
- Google Analytics Help — Add, edit and delete users (checked Oct 2026)
- Chatfuel docs — Partner access to the client's Meta portfolio (secondary, checked Oct 2026)
Section 02 / 14
The journey of a click
- Read
- 10 min
- Builds on
- Section 01
- You will be able to
- Follow one click from an ad to a report, and say which tool sees each step and which steps no tool sees.
Before you install anything, follow one click from start to finish. Each tool in this guide does one job on this path. Once you know where a tool sits, you know what it can see and what it cannot.
The tools, one line each
| Tool | Its job on the path | Section |
|---|---|---|
| UTM parameters | Labels you add to a link (utm_source=instagram) so Google Analytics knows where the visit came from. | 03 |
| Click IDs | IDs that ad platforms add to links by themselves: gclid (Google Ads), fbclid (Meta), ctwa_clid (Click-to-WhatsApp chats). | 03, 07 |
| Google Analytics 4 (GA4) | Google's free website statistics: visits, where they came from, and what people did. | 04 |
| Google tag | Google's code on your pages that sends data to GA4 and Google Ads. | 04, 05 |
| Google Tag Manager (GTM) | One free container that holds all your tags, so you can add or change tracking without editing the website each time. | 05 |
| Google Ads conversion tracking | Counts leads after ad clicks and feeds Google's automatic bidding. | 06 |
| Meta Pixel | Meta's code in the visitor's browser that reports visits and actions to Meta. | 07 |
| Conversions API (CAPI) | Your server or customer system sends the same events to Meta directly, without the browser. | 07 |
| Meta Events Manager | The place in Meta where you see and test the events that arrive from the Pixel and CAPI. | 07 |
| Call tracking | Different phone numbers per channel, so the phone system shows where real calls came from. | 08 |
| Customer log | Your own sheet or CRM: who contacted you, from where, which job, how much was paid. | 09 |
| Search Console, GBP Performance | Free Google reports on searches, clicks, calls and direction requests. | 10 |
| Data Studio (named Looker Studio until April 2026) | Free dashboards that pull numbers from several tools onto one page. | 12 |
Labels that travel with the click
When someone clicks an ad, the platform can add an ID to the link. Google Ads adds gclid when auto-tagging is on, and auto-tagging is now on by default for new accounts Google Ads Help, Oct 2026. Meta adds fbclid, but Google Analytics does not use it to decide where a visit came from. For Meta ads, posts, emails, QR codes and your Google Maps listing, you add your own labels, called UTM parameters (Section 03).
Where data gets lost on the way
- Visits are fewer than clicks. People leave before the page loads, reject cookies (small files a website stores in the browser to recognise a visitor), use ad blockers, or the tag is missing on the landing page.
- WhatsApp hides the source. Links opened from WhatsApp usually arrive with no referrer (the note that tells a site which page sent the visitor), so without UTMs they look like "Direct" visits.
- Apple removes some labels. Link Tracking Protection removes tracking parameters from links shared in Messages and Mail and in Safari Private Browsing (announced for iOS 17) Apple, Jun 2023.
- Safari shortens cookie life. Safari blocks all third-party cookies, and caps cookies set by scripts to 24 hours when the visitor arrives from a known tracking site through a link with click IDs WebKit, Oct 2026.
- Phones and doors have no tags. A real call, a chat or a walk-in only reaches a report if someone writes it down.
Self-checkWhich ID does Google Ads add to the link by itself when auto-tagging is on?
gclid is Google's click ID. fbclid comes from Meta, and utm_source is a label you add yourself.
Sources for this section
Section 03 / 14
UTM links
- Read
- 15 min
- Builds on
- Section 02
- You will be able to
- Build correctly labelled links for Meta ads, posts, emails, QR codes and your Google Maps listing, and know when to add no labels at all.
When a visit arrives without labels, Google Analytics guesses where it came from. The guesses are often wrong: paid Meta clicks can show up as "Organic Social" or "Referral", and links opened from WhatsApp or a QR code look like "Direct". UTM labels remove the guessing. They cost nothing and take a minute per link.
The parameters
| Parameter | What it says | Örnek example | Status in GA4 |
|---|---|---|---|
utm_source | Who sent the visit | instagram | Always set |
utm_medium | What kind of link it is | paid_social | Always set; decides the channel group |
utm_campaign | Which campaign | kis_bakimi_2026_11 | Always set |
utm_content | Which ad or version | video_usta_a | Optional; use it to compare ads |
utm_term | Keyword, audience or area | umraniye_5km | Optional |
utm_id | Campaign ID | a Meta campaign ID | Optional; supported |
utm_source_platform | Extra parameter GA4 accepts | — | Supported; a small shop rarely needs it |
utm_creative_format, utm_marketing_tactic | Extra parameters GA4 accepts | — | Google says they "aren't currently reported" |
Naming rules
Google states that "parameter values are case sensitive" Google Analytics Help, Oct 2026. So Instagram, instagram and IG become three separate rows in your reports. Fix the spelling once and never improvise:
- Lowercase only. No spaces.
- No Turkish letters (ç ğ ı İ ö ş ü). They turn into codes like
%C4%B1and split reports. Writekis_bakimi, notkış_bakımı. - Use underscores between words, no spaces and no hyphens, so every value follows one pattern (
kis_bakimi_2026_11). This course uses underscores everywhere. - Put the year and month in campaign names, so next year's winter campaign gets its own row.
- Use only values from your naming list, and keep every tagged link in one "UTM log" sheet (date, link, source, medium, campaign, content, where it was used).
Örnek Oto Servis naming list
| Parameter | Allowed values |
|---|---|
utm_source | facebook, instagram, google (Maps listing link only), whatsapp, newsletter, sms, flyer, banner, sticker, partner_{name} |
utm_medium | paid_social, social, email, sms, referral, print, organic (Maps listing link only). Google Ads: none, auto-tagging does it. |
utm_campaign | {service}_{theme}_{yyyy}_{mm} → kis_bakimi_2026_11, fren_kontrol_2026_10, lastik_degisim_2026_11; always-on: marka_genel, gbp_listing, bio_link |
utm_content | {format}_{message}_{variant} → video_usta_a, carousel_fiyat_b, story_kampanya_a, flyer_a5_a |
utm_term | audience or area → umraniye_5km, retarget_site_30g |
How utm_medium decides the channel
GA4 sorts every visit into a default channel group using fixed rules. The medium you choose decides most of it Google Analytics Help, Oct 2026:
| utm_medium | Typical source | GA4 default channel | Why |
|---|---|---|---|
paid_social | facebook, instagram | Paid Social | The medium matches GA4's paid pattern (paid…, …cp…, ppc, retargeting) and the source is a social site. |
social | instagram, whatsapp | Organic Social | social is on GA4's organic-social medium list (with social-network, social-media, sm). |
email | newsletter | Source or medium matches email, e-mail, e_mail. | |
sms | sms | SMS | Source or medium is exactly sms. |
referral | partner_{name} | Referral | Medium is referral, app or link. |
organic | google | Organic Search | Medium is exactly organic. |
print | flyer, sticker | Unassigned | No default rule matches. That is fine: filter by campaign or source. |
organic_social | instagram | Organic Social, but only thanks to the source | Not on the medium list. social is the safer choice. |
| none | Google Ads click | google / cpc | Read from the auto-tagged gclid. |
When not to add UTMs
Google Ads: leave the links clean. Auto-tagging adds gclid, and when both are present GA4 "uses the auto-tagged values for source, medium, and other traffic-classification dimensions" Google Analytics Help, Oct 2026. Half-finished manual UTMs on Google Ads only create (not set) rows. Check that auto-tagging is on in Google Ads › Admin › Account settings › Auto-tagging (path not re-verified). Add manual UTMs only if another tool, such as a call-tracking service, needs them, and then add the full set.
Links inside your own website (a banner on your home page pointing to the winter offer): do not tag them. A UTM on an internal link overwrites the real source of the visit. This is widely given advice; it was not re-checked on a Google page.
Where Örnek uses UTMs
- Meta ads
Add UTMs to every Meta ad, or paid clicks often show up as Organic Social or Referral. In Ads Manager, at the ad level, use Tracking › URL parameters (path not re-verified). The safe way is a fixed string per ad:
utm_source=instagram&utm_medium=paid_social&utm_campaign=kis_bakimi_2026_11&utm_content=video_usta_a
Dynamic parameters. Meta can also fill in values by itself when someone clicks. You type a placeholder in double curly brackets, and Meta swaps it for the real value. Eight placeholders are listed:
{{campaign.name}},{{campaign.id}},{{adset.name}},{{adset.id}},{{ad.name}},{{ad.id}},{{site_source_name}}and{{placement}}. They go in the ad's Destination › URL parameters field below the website address, not inside the address itself Terminus, Sep 2026.{{site_source_name}}fills in a short network code:fb,ig,an(Audience Network) ormsg(Messenger) Craftshift, Jul 2026. Both are secondary sources; Meta's own help page did not load for this check (Oct 2026). A dynamic string for Örnek:utm_source=instagram&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_id={{campaign.id}}Meta copies names exactly as typed, so name Meta campaigns and ads with the same rules as UTMs: lowercase, underscores, no Turkish letters (
kis_bakimi_2026_11,video_usta_a). The ID keeps working even if you rename a campaign later. After launch, open GA4 Reports › Acquisition › Traffic acquisition and check that the visits show as Paid Social. Whether GA4 recognisesfbandigas social sources was not verified, so this guide keeps a fixedutm_source(instagramorfacebook) per ad instead of{{site_source_name}}. - Google Business Profile website link
The visit stays in Organic Search, and you can filter campaign =
gbp_listingto separate Maps visits from normal Google search visits.https://ornekotoservis.com.tr/?utm_source=google&utm_medium=organic&utm_campaign=gbp_listing
- Instagram bio link and WhatsApp status
Organic posts use
utm_medium=social:?utm_source=instagram&utm_medium=social&utm_campaign=bio_linkand?utm_source=whatsapp&utm_medium=social&utm_campaign=kis_bakimi_2026_11. - QR codes on flyers, invoices and car stickers
Print a short address you control, for example
ornekotoservis.com.tr/kis, and let it redirect to the tagged link. The printed code then never has to change. The visits appear as Unassigned (no rule matchesprint); filter by campaign, or create a custom channel group "Offline/Print" in Admin › Data display › Channel groups (path not re-verified).https://ornekotoservis.com.tr/kis-bakimi?utm_source=flyer&utm_medium=print&utm_campaign=kis_bakimi_2026_11&utm_content=flyer_a5_a
- Newsletter and SMS
utm_medium=emailfor emails;utm_source=smsorutm_medium=smsfor text messages.
Build a link
Fill in the fields. The builder makes everything lowercase, changes spaces and hyphens to underscores, replaces Turkish letters and warns you about common mistakes. Google's own Campaign URL Builder does the same job without the warnings.
UTM link builder
https://ornekotoservis.com.tr/kis-bakimi?utm_source=instagram&utm_medium=paid_social&utm_campaign=kis_bakimi_2026_11&utm_content=video_usta_a
Self-checkÖrnek starts a Google Ads search campaign. Which UTMs should it add to the ad links?
With auto-tagging on, GA4 takes source, medium and campaign from the gclid. Manual UTMs are not needed, and incomplete ones create (not set) rows.
Self-checkOne flyer QR uses utm_source=Flyer, another utm_source=flyer. What do you see in GA4?
UTM values are case-sensitive. The links work, but the visits are split into two rows that you must add up by hand.
Sources for this section
- Google Analytics Help — URL builders: collect campaign data with custom URLs (checked Oct 2026)
- Google Analytics Help — Default channel group (checked Oct 2026)
- Google Analytics Help — Traffic-source dimensions, manual tagging and auto-tagging (checked Oct 2026)
- Google Ads Help — About auto-tagging (checked Oct 2026)
- Google — Campaign URL Builder
- Terminus — Meta (Facebook) ads UTM tracking (updated 16 Sep 2026, secondary)
- Craftshift — Facebook and Meta UTM links (7 Jul 2026, secondary)
Section 04 / 14
Google Analytics 4
- Read
- 18 min
- Builds on
- Sections 02–03
- You will be able to
- Set up a GA4 property correctly on day one, mark the right key events, and answer "how many people came from my ad, and how many of them tapped call or WhatsApp?"
Google Analytics 4 (GA4) is Google's free website statistics tool. It counts visits, reads where each visit came from (Section 03), and records what people did on the site. It cannot see calls, chats or invoices, but it is the one tool here that shows website visits from every source side by side.
Set up a new property
- Create the account and property
At analytics.google.com go to Admin › Create › Account (business name), then Property. Set the reporting time zone to Türkiye and the currency to Turkish lira (TRY). Fill in the business details and choose the lead-generation business objective.
- Create a web data stream
Enter the site address, keep Enhanced measurement switched on, and copy the Measurement ID (
G-XXXXXXX). - Install the tag, with one method only
Through Google Tag Manager (recommended, Section 05), directly in the
<head>of every page, or through a plugin such as Site Kit by Google for WordPress. Two methods at once count every visit twice. - Set data retention to 14 months on day one
Admin › Data collection and modification › Data retention › Event data retention = 14 months › Save. The default is 2 months, and the change does not work backwards Google Analytics Help, Oct 2026.
- Filter your own staff (optional)
Define the shop's IP address as internal traffic and filter it, so the team's daily visits for prices and the address do not count. The setting is under the data stream's Configure tag settings (path not re-verified).
- Link Google Ads and Search Console
Admin › Product links › Google Ads links and Admin › Product links › Search Console links. Details below.
- Check that data arrives
Open Reports › Realtime and visit the site from your phone. For single events, use DebugView (GA4's live list of events from a test device) together with GTM Preview, the test mode of Tag Manager (Section 05).
- Mark key events
After your events have fired at least once: Admin › Data display › Events, then click the star next to
click_to_call,whatsapp_clickandgenerate_lead.
What enhanced measurement gives you, and what it does not
With enhanced measurement on, GA4 records these events without extra setup Google Analytics Help, Oct 2026:
| Event | What it records | Good enough for leads? |
|---|---|---|
page_view | A page loaded | No |
scroll | Visitor reached 90% of the page | No |
click | Click on a link to another site | WhatsApp links show up here only as generic outbound clicks |
view_search_results | A search on your site | No |
video_start, video_progress, video_complete | Embedded YouTube videos | No |
file_download | A file such as a PDF price list | No |
form_start, form_submit | Someone starts or submits a form | Not reliable: form_submit fires on the attempt and does not know if sending worked |
Events, key events and conversions
- How to mark: Admin › Data display › Events → star icon, or + Create event with "Mark as key event" switched on. Changes can take up to 24 hours to show in standard reports. Unmarking does not delete past data Google Analytics Help, Oct 2026.
- Limit: 30 key events per standard property (50 in the paid Analytics 360) Google Analytics Help, Oct 2026. You need three or four.
- Counting: "once per session" usually fits leads; "once per event" fits purchases Analytics Mania, Oct 2026. With "once per event", a customer who refreshes the thank-you page counts as two leads.
- Never mark
page_viewas a key event. It would count every page view as a lead.
Recommended lead events
Google recommends a set of event names for lead generation. If you use them, GA4 fills a Lead acquisition report Google Analytics Help, Oct 2026.
| Event name | Google's meaning | At Örnek |
|---|---|---|
generate_lead | A form submitted online, or information given offline | Contact or booking form sent |
working_lead | The person contacts, or is contacted by, a representative | Service advisor called back |
qualify_lead / disqualify_lead | The lead is judged a real prospect, or not | Real job request vs. spam or out of area |
close_convert_lead / close_unconvert_lead | The lead became a customer, or did not | Job paid vs. lost |
The reports a beginner needs
| Question | Report and menu path |
|---|---|
| Where did visits come from? | Reports › Acquisition › Traffic acquisition. Switch the first column between Session primary channel group, Session source / medium and Session campaign. |
| How did new people first find us? | Reports › Acquisition › User acquisition (First user source / medium) |
| Which sources produce leads? | Reports › Acquisition › Lead acquisition (appears when lead events such as generate_lead are used) |
| How often did each action happen? | Reports › Engagement › Events |
| Which pages do people land on? | Reports › Engagement › Landing page and Pages and screens |
| Does tracking work right now? | Reports › Realtime and DebugView |
| Which channels share the credit? (later) | Advertising › Attribution (Section 11) |
"How many people came from my ad?"
- Read ad clicks in the ad platform
Google Ads shows "Clicks"; Meta shows "Link clicks". GA4 does not count ad clicks.
- Read visits in GA4
Open Traffic acquisition, switch the first column to Session source / medium or Session campaign, find
google / cpcorinstagram / paid_social, and read Sessions. - Expect fewer sessions than clicks
People leave before the page loads, reject cookies or block ads, or the tag is missing on the landing page. A small gap is normal. A very large gap means a broken tag or a slow page.
"How many of them tapped call or WhatsApp?"
- Stay in Traffic acquisition
In the key events column, pick one key event, for example
click_to_call, thenwhatsapp_click. - Read the count per campaign or source
This is the number of taps, not of finished calls or chats.
- Compare with the phone system
For real calls, compare with the call log of the tracking number used for that channel (Section 08).
Two settings that confuse beginners
Data retention
Standard properties keep event-level data for 2 or 14 months. The setting only affects explorations (custom analyses you build yourself) and funnel reports; standard reports are not limited by it. Default: 2 months. Not retroactive Google Analytics Help, Oct 2026.
Thresholding
GA4 hides rows to protect privacy when a report includes demographics, search queries, or very few users in a short date range. "Data thresholds are system defined. You can't adjust them." A wider date range often helps Google Analytics Help, Oct 2026.
Link Google Ads and Search Console
- Google Ads: Admin › Product links › Google Ads links. You need the Editor or Administrator role in GA4 and admin access in Google Ads. Ads data appears in GA4 within 48 hours Google Analytics Help, Oct 2026.
- Search Console: Admin › Product links › Search Console links. This adds the "Google Organic Search Queries" and "Google Organic Search Traffic" reports. The report collection is unpublished by default; publish it from Library. One web stream links to one Search Console property Google Analytics Help, Oct 2026.
Self-checkWhich action does GA4 enhanced measurement not record by itself?
There is no built-in tel: event. You add it with a click trigger in Google Tag Manager (Section 05).
Self-checkYou change data retention from 2 to 14 months today. What happens to your explorations?
The change is not retroactive, and it affects explorations and funnel reports. That is why you set it on day one.
Sources for this section
- Google Analytics Help — About key events (checked Oct 2026)
- Loves Data — Google Analytics key events (checked Oct 2026)
- Google Analytics Help — Configuration limits (checked Oct 2026)
- Google Analytics Help — Enhanced measurement (checked Oct 2026)
- Google Analytics Help — Recommended events (checked Oct 2026)
- Google Analytics Help — Data retention (checked Oct 2026)
- Analytics Mania — 2-month data retention (23 Mar 2025)
- Google Analytics Help — Data thresholds (checked Oct 2026)
- Google Analytics Help — Link Google Ads (checked Oct 2026)
- Google Analytics Help — Search Console link (checked Oct 2026)
- Analytics Mania — Track key events in GA4
- PPC Land — Site Kit Site Goals (Sep 2026, secondary)
Section 05 / 14
Google Tag Manager
- Read
- 18 min
- Builds on
- Section 04
- You will be able to
- Track taps on the phone number, taps on WhatsApp links and successful form sends, send them to GA4, Google Ads and Meta, and test everything before it goes live.
Without Tag Manager, every new piece of tracking means asking your web developer to edit the site. With it, the developer installs one container once, and you add or change tracking yourself. For a shop that needs the same three actions (call, WhatsApp, form) sent to three tools, GTM is the practical hub.
wa.me while your button links to api.whatsapp.com), nothing fires and the lead is lost from every report.Set up the container
- Create the container
At tagmanager.google.com create an account and a container with target platform Web. Install its two code snippets on every page (one in the
<head>, one right after<body>), or use your website platform's GTM integration. - Add the Google tag
Tags › New › Google tag. Tag ID = your
G-XXXXXXX. Trigger = Initialization – All Pages. - Switch on built-in variables
Variables › Configure: tick Click URL, Click Text, Click Element, Page Path, Page URL and Form ID.
- Add a Conversion Linker tag
Tag type Conversion Linker on All Pages. It stores Google's click ID so that later conversions can be matched to the ad click.
Track taps on the phone number
- Trigger
Triggers › New › Click – Just Links › Some Link Clicks, condition Click URL starts with tel:. Name it
TRG – tel click. - GA4 event tag
Tags › New › Google Analytics: GA4 Event. Event name
click_to_call. Parameters:link_url={{Click URL}},page_path={{Page Path}}. TriggerTRG – tel click. - Google Ads tag (optional, for bidding)
In Google Ads create a website conversion action of type click, for example "Lead – Phone click (web)". In GTM add a Google Ads Conversion Tracking tag with its Conversion ID and Conversion Label, on the same trigger Google Ads Help, Oct 2026.
- Meta tag (optional)
A Meta Pixel
Contactevent on the same trigger (see below).
Track taps on WhatsApp links
WhatsApp buttons can link to several addresses. One GTM trigger cannot hold "OR" conditions, so use one regular expression (a pattern that matches several texts) Boei, Oct 2026:
Trigger type: Click – Just Links › Some Link Clicks Condition: Click URL matches RegEx Pattern: wa\.me|api\.whatsapp\.com|web\.whatsapp\.com|^whatsapp: Name: TRG – whatsapp click GA4 event: whatsapp_click (same parameters as click_to_call)
If the WhatsApp button is a floating widget that is not a normal link (an iframe or a script button), use Click – All Elements with a CSS selector, or the widget's own dataLayer event (a message the page code sends to GTM). Test it in Preview.
Track forms that were really sent
1 · Thank-you page (best)
Set the form to open /tesekkurler (thank you) only after a successful send. Trigger: Page View › Some Page Views › Page Path equals /tesekkurler → GA4 event generate_lead, plus the Google Ads conversion tag and Meta Lead (Meta Schedule for bookings).
Hide the page from menus and search (noindex) so random visits do not count.
2 · Plugin success event
Many form plugins push a dataLayer event when sending works. Use a Custom Event trigger with that event name.
3 · GTM Form Submission trigger
Switch on "Check Validation". It often fails with forms that send without reloading the page (AJAX forms), so test carefully.
Do not rely on enhanced measurement's form_submit as your only lead count. It fires on the attempt and does not know whether the message arrived.
Track the "Yol tarifi al" link
Many repair customers want to know where the shop is before they drive over. If your website has a Yol tarifi al (get directions) button that opens Google Maps, track it the same way as the phone link. Google Maps links come in a few forms, so one regular expression covers them all:
Trigger type: Click – Just Links › Some Link Clicks Condition: Click URL matches RegEx Pattern: google\.[a-z.]+/maps|maps\.google\.|maps\.app\.goo\.gl|goo\.gl/maps Name: TRG – directions click GA4 event: directions_click (same parameters as click_to_call) Meta event: FindLocation (optional)
Two rules keep this count honest. First, write every pattern into one condition: if you add two "Click URL contains" lines to the same trigger, GTM fires only when both are true, so it never fires. Second, a directions tap shows interest; it does not prove the person came. Count directions_click as a secondary signal in GA4 (a key event only if you want it in reports), and do not make it a Primary conversion in Google Ads. Most direction requests happen on Google Maps itself, not on your site; you read those in the Business Profile Performance report (Section 10).
Send the same actions to Meta
- Add the Meta Pixel base code on all pages, from the GTM Community Template Gallery or as Custom HTML, and only after the visitor's cookie consent (Section 13).
- Event tags:
fbq('track','Contact')on the phone and WhatsApp triggers,fbq('track','Lead')on the thank-you page,fbq('track','Schedule')for finished bookings. - If you also send events from your server (Conversions API, Section 07), pass the same event ID from both sides so Meta counts each action once Meta for Developers, Oct 2026.
Test, then publish
- Preview
In the workspace click Preview, enter the site address, click Connect, then Continue in the Tag Assistant tab Tag Manager Help, Oct 2026.
- Do each action once
Tap the phone link, tap the WhatsApp button and send a test form. In Tag Assistant every tag should show "Fired" exactly once.
- Check the receiving tools
GA4 DebugView or Realtime, the Google Ads conversion status, and Meta Events Manager › Test events.
- Publish with a name
Submit, write a version name such as "v3 – tel + whatsapp + form", then Publish. Since 17 September 2026 GTM can suggest an AI-written version summary Tag Manager release notes, Sep 2026.
- Check again after 24–48 hours
Mark the new GA4 events as key events, and compare the counts with the calls and form emails you really received.
Self-checkYour WhatsApp button links to api.whatsapp.com, but your trigger only checks "Click URL contains wa.me". What happens?
A trigger fires only when its condition is true. That is why the regular expression lists every WhatsApp address, and why you test in Preview.
Self-checkWhy is a thank-you page the best way to count form leads?
Submit-click triggers also count failed or blocked attempts. A page that opens only after success counts real leads.
Sources for this section
- Tag Manager Help — Release notes (Google tag rename 2023; tag gateway 2025; version summaries 2026)
- Tag Manager Help — Preview and debug containers (checked Oct 2026)
- Google for Developers — Google tag gateway
- PPC Land — Google tag gateway explainer
- Google Ads Help — Track clicks on your website as conversions (checked Oct 2026)
- Boei — Track WhatsApp clicks with Google Tag Manager
- Martech Zone — Track tel: clicks with Google Tag Manager
- Analytics Mania — Track key events in GA4
- Meta for Developers — Conversions API server event parameters
Section 06 / 14
Google Ads conversion tracking
- Read
- 12 min
- Builds on
- Sections 04–05
- You will be able to
- Choose how Google Ads counts leads, avoid double counting, plan offline uploads of paid jobs, and know what Google cannot count in Türkiye.
Google Ads uses the conversions you give it to decide whom to show ads to and how much to bid. If you count the wrong thing, it optimises for the wrong thing. This section covers only the measurement side; campaigns and bidding are in the Google Ads deep dive.
Three ways to count
Google Ads tag via GTM
Create the action in Goals › Conversions › Summary › + New conversion action › Website (path not re-verified) and fire it from GTM (Section 05).
- Built for bidding; supports enhanced conversions (explained below)
- One more set of tags to maintain
The most common choice for lead generation.
Import GA4 key events
After linking GA4 and Google Ads, create conversion actions from GA4 key events.
- One definition for both tools; easy
- GA4 counting and credit rules differ from Google Ads; can arrive later
Offline: paid jobs
Upload leads that became jobs, with their value, through Data Manager, Google's tool for bringing in your own data (sheet, file or CRM).
- Teaches Google which clicks become paying customers
- Needs a disciplined customer log and KVKK care (Section 13)
Örnek's conversion actions
| Conversion action | Counted by | Primary? |
|---|---|---|
| Lead – Form (web) | Thank-you page /tesekkurler | Primary |
| Lead – Phone click (web) | GTM trigger on tel: links | Primary (a tap, not a confirmed call) |
| Lead – WhatsApp click (web) | GTM trigger on WhatsApp links | Primary or Secondary: decide after checking chat quality |
| Directions (local actions) | Created automatically when location assets (your Business Profile address shown with the ad) are active | Secondary at first |
| Job completed (offline import) | Weekly upload from the customer log | Later, after 4+ weeks side by side |
| Page views, scroll, time on site | — | Never |
Give each action a value so bidding knows which matters more. Work it out from your own numbers: value of a lead ≈ lead-to-job rate × gross profit per job. With Örnek's example numbers, if 4 in 10 form leads become jobs worth 3,200 TL gross profit, a form lead is worth about 0.4 × 3,200 = 1,280 TL. Use a lower value for an action that converts worse.
Enhanced conversions and offline uploads
- Enhanced conversions send a hashed (SHA-256, a one-way scrambling) email or phone number from your form, so Google can match more conversions to ad clicks. "As of April 2026, enhanced conversions for web and leads are now combined into a single on/off setting." You must accept Google's customer data terms Google Ads Help, Oct 2026.
- Offline conversion import (GCLID method): save the
gclidfrom the landing address in a hidden form field so it arrives with the lead. Create an Import conversion action such as "Job completed (offline)". Every week, upload Google Click ID, conversion name, conversion time with time zone (2026-10-01 14:30:00+03:00), value and currency (TRY) through Data Manager. - Google's recommendation: "If you have not already adopted offline conversion import, we recommend starting with enhanced conversions for leads instead." Google reports a "median 10% increase in conversions" (vendor claim) Google Ads Help, Oct 2026. Run old and new actions side by side for "1–2 conversion cycles or 4 weeks" before making the new one Primary Google Ads Help, Oct 2026.
Calls from Google Ads in Türkiye
Google says that tracking call conversions from ads and from a website, and importing call conversions, "require Google forwarding numbers" Google Ads Help, Oct 2026. Google forwarding numbers are available in 30 listed countries, and Türkiye is not on the list Google Ads Help, Oct 2026. In practice:
Does not work in Türkiye
- "Calls from ads" with call length
- Calls to a number on your website, through forwarding numbers
- Imported calls
Works
- Taps on the phone number on your mobile site (a click, not a call)
- WhatsApp taps and form leads
- Directions from location assets
- Offline uploads of paid jobs
- A separate phone number in the call asset (the phone number shown with your ad), so your phone system's log shows real calls from Google Ads (Section 08)
Google's page also lists a "call ad clicks" option that counts clicks on call assets without forwarding numbers. This was not tested in a Turkish account (Oct 2026). If you use it, treat it as clicks, not calls.
Deep diveGoogle Ads
Campaign setup, keywords, bidding, budgets and the weekly optimisation routine.
Self-checkCan Örnek's Google Ads account count calls from its call asset, with call length, in Türkiye?
Türkiye is not on Google's 30-country list. Use a separate number in the call asset and read real calls in your own phone log.
Sources for this section
- Google Ads Help — Primary and secondary conversion actions
- Google Ads Help — Import GA4 key events into Google Ads
- Google Ads Help — Local actions conversions
- Google Ads Help — Enhanced conversions for leads
- Google Ads Help — Offline conversion imports
- Google Ads Help — Upgrade to enhanced conversions for leads (15 June 2026 notice)
- Google Ads API — Upload offline conversions
- Google Ads Help — Phone call conversion tracking
- Google Ads Help — Google forwarding numbers (country list)
- Google — EU user consent policy
Section 07 / 14
Meta Pixel and Conversions API
- Read
- 15 min
- Builds on
- Sections 02, 05
- You will be able to
- Explain why Meta needs both the Pixel and the Conversions API, choose the right standard events, test them, and measure what happens after a Click-to-WhatsApp chat.
Meta decides who sees your ads partly from the events it receives. If it only sees clicks, it finds people who click. If it sees leads and booked jobs, it can look for people who book. The Pixel and the Conversions API are the two roads those events travel on.
Meta says advertisers who use the Conversions API together with the Pixel saw on average "17.8% lower cost per result". In April 2026 it announced a free one-click "Meta-enabled" Conversions API setup Meta, Apr 2026. Both are Meta's own claims about its own product.
Standard events for a repair shop
| Meta event | Meta's definition | At Örnek |
|---|---|---|
Contact | "When a person initiates contact with your business via telephone, SMS, email, chat, etc." | Tap on phone or WhatsApp |
Lead | "When a sign up is completed" | Form sent (thank-you page) |
Schedule | "When a person books an appointment to visit one of your locations" | Online booking finished |
FindLocation | Listed among Meta's standard events | Directions button (optional) |
Purchase with value | Used for completed sales, also by the Conversions API | Paid job, sent later through CAPI |
Set it up
- Create the dataset and install the Pixel
Events Manager › Connect data sources › Web, then create or choose a dataset (Pixel). Install it through a website-platform integration (WordPress, Wix, Shopify), through GTM (Section 05), or as code.
- Pick the simplest Conversions API route that works
A partner integration in your website platform; the one-click Meta-enabled setup if your account offers it; the Conversions API Gateway, which runs in your own AWS or Google Cloud account where "the only cost … is the associated cloud resource or partner fees" Meta for Developers, Oct 2026; server-side GTM (more technical); or direct code by a developer.
- Deduplicate
Send the same
event_nameandevent_idfrom browser and server Meta for Developers, Oct 2026. - Test
Events Manager › your dataset › Test events. Open your site, trigger Contact and Lead, and check that both "Browser" and "Server" appear and are deduplicated.
- Verify your domain
Business settings › Brand safety › Domains, with an HTML file, a DNS TXT record or a meta tag. It proves you own the domain and controls who can edit link previews in ads pointing to it Meta for Developers, Oct 2026.
- Check Event Match Quality
Events Manager shows an Event Match Quality score per event: how well Meta can match your events to people. More customer details (hashed email or phone), sent only with consent, improve it. The scoring details were not re-verified for this guide.
Measuring Click-to-WhatsApp ads
Free WhatsApp Business app
Ads Manager reports messaging conversations started. Meta does not see what happens later in the chat.
Low-tech fix: use app labels such as Reklam – Instagram (ad – Instagram), Randevu verildi (appointment given) and İş tamamlandı (job done), and copy the counts into the customer log every week.
WhatsApp Business Platform
To report leads, bookings or sales from the chat back to Meta, you need the WhatsApp Business Platform (Cloud API, usually through a provider) plus the Conversions API for Business Messaging: action_source=business_messaging, messaging_channel=whatsapp, the ctwa_clid, and events such as LeadSubmitted, QualifiedLead and Purchase. The On-Premises API was sunset on 23 October 2025 Meta for Developers, Oct 2026.
Sending paid jobs to Meta
Meta's separate Offline Conversions API was discontinued on 14 May 2025 Jon Loomer, Oct 2026 CustomerLabs, Oct 2026 (secondary sources). Offline events now go through the normal Conversions API to the same dataset, for example a Purchase with value and an action_source that says where it happened:
| action_source value | Use at a repair shop |
|---|---|
physical_store | Job done and paid in the shop |
phone_call | Lead or booking taken by phone |
business_messaging | Events from a WhatsApp, Messenger or Instagram chat |
system_generated | Events created by your CRM |
website, chat, email, app, other | Other places |
Meta Ads
Objectives, audiences, Click-to-WhatsApp and lead form campaigns, budgets and reading results.
Self-checkThe Pixel and the Conversions API both send the same Lead. How does Meta avoid counting it twice?
Matching event_name + event_id tells Meta the two events are one action.
Self-checkÖrnek uses the free WhatsApp Business app. What can Meta report for its Click-to-WhatsApp ads?
Reporting what happens inside the chat needs the WhatsApp Business Platform and the Conversions API for Business Messaging. With the free app, labels and your log fill the gap.
Sources for this section
- Meta for Developers — Meta Pixel reference (standard events)
- Meta for Developers — Conversions API server event parameters
- Meta for Developers — Conversions API for Business Messaging
- Meta for Developers — Conversions API Gateway
- Meta for Developers — Domain verification
- Meta — Pixel and Conversions API updates (15 Apr 2026)
- Jon Loomer — Offline Conversions API deprecation (secondary)
- CustomerLabs — Offline events via the Conversions API (secondary)
Section 08 / 14
Calls, WhatsApp and walk-ins in Türkiye
- Read
- 12 min
- Builds on
- Sections 01, 06
- You will be able to
- Count real calls, chats and walk-ins by channel with methods that work in Türkiye, from free questions to call-tracking numbers.
Most repair customers phone, write on WhatsApp or simply drive in. These are exactly the contacts that website tags miss. In Türkiye the gap is wider, because Google Ads cannot count real calls here (Section 06). You close the gap with your own phone numbers and one good question.
What the tools cannot see here
- Real calls from Google Ads. No Google forwarding numbers in Türkiye, so no "calls from ads", no website call tracking through forwarding numbers and no imported calls Google Ads Help, Oct 2026.
- Calls dialled by hand. Many people read the number from the site, from Google Maps or from a sticker and type it. No tap, no event.
- Taps that never connect. A
tel:tap opens the dialler; the person may hang up, or nobody answers. - Missed calls (cevapsız çağrılar). Only the phone system's log shows them. Unanswered calls in busy hours can be the largest hidden loss of all.
- Word of mouth and passers-by. No tool sees a neighbour's tip or the sign over the door.
Three main methods
Static number per channel
One extra phone number for each important channel. The phone system's call log shows which number was called.
- Cost: a monthly fee per extra number (prices not checked)
- Effort: low; set up once
- Accuracy: good per channel, not per ad
Dynamic numbers (DNI)
The website shows a different number to each visitor, depending on where the visit came from, and the service reports the source of each call.
- Cost: Zadarma lists a Turkish number at $7.50/month (monthly) or $5/month (yearly payment); dynamic tracking needs at least 2 numbers Zadarma, Oct 2026
- Effort: medium; script on the site
- Accuracy: per visitor source, incl. UTM labels
Ask and log
"Bizi nereden duydunuz?" asked at every first contact and written in the customer log, with fixed answer options.
- Cost: free
- Effort: daily staff discipline
- Accuracy: depends on memory, but it is the only method that catches tips and passers-by
Smaller methods that add detail
| Method | Cost | Effort | What it shows |
|---|---|---|---|
Promo code per channel (INSTA-KIS, HARITA-KIS) | Free | Low | Channel of customers who use the offer |
| QR code with UTMs on print (Section 03) | Free | Low | Website visits from each flyer or sticker |
Pre-filled WhatsApp text per channel, e.g. ?text=Merhaba%20(IG) | Free | Low | Source in the first chat message (feature not re-verified; test it) |
| Separate SIM or mobile line for one campaign | Line fee | Low | Calls from one test campaign |
Example providers (not tested)
- Turkish cloud-PBX and number providers sell extra geographic numbers (coğrafi numara) or 0850 numbers with a call log: Netgsm (0850, geographic and 0800 numbers, Bulut Santral, "Çağrı Analizi", API), Bulutfon (0850 and geographic numbers, call dashboard, REST API) and Verimor (Bulut Santral, 0850, Sanal Santral). None of their homepages advertised dynamic number insertion or a Google Ads or GA4 integration when checked in October 2026. Prices were not checked.
- Zadarma lists Turkey among its call-tracking countries; call tracking itself is free and you pay for the virtual numbers; it integrates with Google Analytics and shows UTM tags Zadarma, Oct 2026. Document requirements and number types for Türkiye were not verified.
- International DNI vendors such as CallRail, CallTrackingMetrics and Ringostat: support for Turkish numbers was not confirmed.
Self-checkWhich method is the only one that catches customers who came on a neighbour's recommendation?
A recommendation leaves no digital trace. Only a person asking and writing it down records it.
Sources for this section
- Google Ads Help — Google forwarding numbers (country list)
- Zadarma — Call tracking
- Zadarma — Number prices
- Netgsm, Bulutfon, Verimor — homepages (checked Oct 2026)
- Ringostat — Türkiye support not confirmed
- CallRail — BraBos Cleaning case study (10 Sep 2026)
Section 09 / 14
From lead to paid job
- Read
- 15 min
- Builds on
- Sections 01, 08; Crash Course 03
- You will be able to
- Keep a customer log that links every lead to a job and an invoice, and work out cost per customer, ROAS and ROI per channel.
Cost per lead is easy to read and often misleading. One channel can bring cheap leads that rarely turn into jobs. Another can bring fewer, more expensive leads that nearly all become paying customers. Only the cost per paying customer tells you where money should go, and only your customer log can give you that number.
The customer log
A Google Sheet is enough: one row per lead, filled in by the front desk at first contact and updated when the car comes in and when the invoice is paid. Turkish column names keep it natural for the team (Müşteri / Talep Takip Tablosu, customer and request tracking sheet).
| # | Column | What goes in it |
|---|---|---|
| 1 | Talep No (request no.) | Running number |
| 2 | Tarih / saat (date, time) | First contact |
| 3 | İletişim türü (contact type) | Telefon / WhatsApp / Form / Walk-in / Instagram DM |
| 4 | Aranan hat (line called) | Line A, B, C or main (from the phone system) |
| 5 | Bizi nereden duydunuz? | Drop-down with the fixed answers (Section 08) |
| 6 | Kampanya / UTM / WA etiketi | From the form's hidden fields or the WhatsApp pre-fill tag, e.g. "(IG)" |
| 7 | Click ID (gclid / ctwa_clid) | Only if captured automatically |
| 8 | Ad / kısaltma (name or initials) | Collect only what you need |
| 9 | Telefon | Only after the privacy notice (aydınlatma) was given |
| 10 | Aydınlatma yapıldı? / Pazarlama izni (İYS)? | Yes/No + date (Section 13) |
| 11 | Araç (vehicle) | Brand, model, year; avoid the plate unless the job record needs it |
| 12 | İstenen hizmet (service asked) | Periyodik bakım, fren, lastik, motor arıza, elektrik, klima, kaporta-boya, diğer |
| 13 | Teklif (quote, TL) | Price quoted |
| 14 | Durum (status) | Yeni → Teklif verildi → Randevu → Geldi → İş tamamlandı / Kaybedildi |
| 15 | Kayıp nedeni (reason lost) | Fiyat, uzak, cevapsız çağrı, yoğunluk, diğer |
| 16 | İş tarihi (job date) | — |
| 17 | Fatura tutarı (invoice, TL, KDV hariç) | Amount excluding VAT |
| 18 | Brüt kâr (gross profit, TL) | Or margin % |
| 19 | Yeni / eski müşteri | New or returning customer |
| 20 | Platforma yüklendi mi? | Date uploaded to Google or Meta, only if legally cleared |
Match each lead to its job and its money
- Give every contact a row
Calls, chats, forms and walk-ins, with the source answer, on the day they happen.
- Update the status as the car moves
Quote given, appointment, car arrived, job done or lost. Find the row by Talep No or phone number.
- Add the invoice and gross profit
When the job is paid, copy the amount excluding VAT and the gross profit from your accounting.
- Summarise monthly by source
A pivot table: leads, jobs, revenue, gross profit per "Bizi nereden duydunuz?" answer and per line. Put ad spend next to it.
The formulas
CPL cost per lead
ad spend ÷ leads
30,000 ÷ 60 = 500 TL
Close rate lead → job
paid jobs ÷ leads × 100
24 ÷ 60 = 40%
Cost per customer CPA per job
ad spend ÷ new paying customers
30,000 ÷ 24 = 1,250 TL
ROAS revenue per 1 TL of ads
revenue ÷ ad spend
192,000 ÷ 30,000 = 6.4
ROI profit-based
(gross profit − marketing cost) ÷ marketing cost
(76,800 − 30,000) ÷ 30,000 = 156%
Break-even max cost per customer
average job value × gross margin
8,000 × 40% = 3,200 TL
ROAS uses revenue; ROI uses profit. A high ROAS can still lose money if the margin is thin. All numbers are examples.
Every metric in one table
Reports use many short names. This table lists them in funnel order, from the first view of an ad to the value of a customer over years. The example month is the same as above (30,000 TL spend, 60 leads, 24 paid jobs), with the ad-side numbers from the Crash Course: 100,000 impressions seen by 40,000 people, 2,000 clicks, 1,800 GA4 sessions. All are example numbers for the fictional Örnek Oto Servis.
| Metric | What it means | Formula | Örnek example |
|---|---|---|---|
| Impressions | Times the ad was shown | count | 100,000 |
| Reach | Different people who saw the ad (Meta) | count | 40,000 |
| Frequency | How often each person saw it, on average | impressions ÷ reach | 100,000 ÷ 40,000 = 2.5 |
| CTR | Click-through rate: share of impressions that got a click | clicks ÷ impressions × 100 | 2,000 ÷ 100,000 = 2% |
| CPC | Cost per click | spend ÷ clicks | 30,000 ÷ 2,000 = 15 TL |
| CPM | Cost per 1,000 impressions | spend ÷ impressions × 1,000 | 30,000 ÷ 100,000 × 1,000 = 300 TL |
| Engagement rate | GA4: share of sessions that were "engaged", meaning they lasted longer than 10 seconds, had a key event, or had 2 or more page views Google Analytics Help, Oct 2026 | engaged sessions ÷ sessions × 100 | 1,080 ÷ 1,800 = 60% |
| CVR | Conversion rate: share of clicks that became leads | leads ÷ clicks × 100 | 60 ÷ 2,000 = 3% |
| CPL / CPA | Cost per lead / cost per action | spend ÷ leads (or actions) | 30,000 ÷ 60 = 500 TL |
| Close rate | Share of leads that became paying customers | paid jobs ÷ leads × 100 | 24 ÷ 60 = 40% |
| Cost per customer | Ad cost of one new paying customer | spend ÷ new paying customers | 30,000 ÷ 24 = 1,250 TL |
| ROAS | Return on ad spend: revenue per 1 TL of ads | revenue ÷ ad spend | 192,000 ÷ 30,000 = 6.4 |
| ROI | Return on investment: profit per 1 TL of marketing | (gross profit − cost) ÷ cost × 100 | (76,800 − 30,000) ÷ 30,000 = 156% |
| Break-even ROAS | The lowest ROAS at which the ads pay for themselves on the first job | 1 ÷ gross margin | 1 ÷ 0.40 = 2.5 |
| LTV | Lifetime value: gross profit from one customer over the whole relationship | job value × visits per year × years × margin | 8,000 × 2 × 3 × 40% = 19,200 TL |
| CAC | Customer acquisition cost: all costs of winning a new customer, including tools and staff time, not only ads | (ads + agency + tools + staff time) ÷ new customers | (30,000 + 6,000) ÷ 24 = 1,500 TL |
Worked example: one month, two channels
| Channel | Spend | Leads | Jobs | Lead→job | Revenue | CPL | Cost/job |
|---|---|---|---|---|---|---|---|
| Google Ads (Search) | 18,000 | 34 | 16 | 47% | 128,000 | 529 | 1,125 |
| Meta (Click-to-WhatsApp) | 12,000 | 26 | 8 | 31% | 64,000 | 462 | 1,500 |
| Paid total | 30,000 | 60 | 24 | 40% | 192,000 | 500 | 1,250 |
- Gross profit: 192,000 × 40% = 76,800 TL. ROAS = 6.4. ROI = (76,800 − 30,000) ÷ 30,000 = 156%.
- Break-even is 3,200 TL per customer. Both channels are well below it, so both pay back on the first job. Google is under the 1,500 TL target; Meta is exactly at it.
- The lesson: Meta had the cheaper lead (462 TL vs. 529 TL) but the more expensive customer (1,500 TL vs. 1,125 TL), because fewer of its leads became jobs. Judged on cost per lead alone, you would move money the wrong way.
- Repeat visits raise the value. If a customer returns about twice a year for three years, lifetime revenue is about 48,000 TL and lifetime gross profit about 19,200 TL (example). Count on this only if the log actually shows customers coming back (column 19).
Lead-to-profit calculator
Healthy. A new customer costs 1,250 TL, less than half of the 3,200 TL gross profit from the first job.
Self-checkIn the worked example, which channel brought cheaper customers?
Google's leads closed at 47%, Meta's at 31%. The higher close rate more than made up for Google's higher cost per lead.
Sources for this section
- Course research notes: Marketing/research/ClaudeCode-R6-tracking-analytics.md (§7.3 customer log, §7.6 ROI method) and ClaudeCode-R1-marketing-fundamentals-and-turkiye.md (§1.11 metrics and break-even). Örnek Oto Servis numbers are the course's shared example numbers.
- Google Analytics Help — Engaged session and engagement rate definitions (checked Oct 2026)
Section 10 / 14
Free data you already have
- Read
- 8 min
- Builds on
- Section 04
- You will be able to
- Read Search Console, Google Business Profile Performance and Meta's organic insights, and know what each number really counts.
Three free reports show what happens before people reach your website: what they searched, how often they saw your Maps listing, and how your posts did. None needs a tag. Each counts something slightly different from what its name suggests.
| Source | What it shows | Where | Limits |
|---|---|---|---|
| Google Search Console | Google search queries that showed your site, with clicks, impressions, CTR and average position; views by query, page, country, device, search appearance and date; a 24-hour view with preliminary hourly data | Performance › Search results | Google search only. A "click" is any click that takes the user to a page outside Google Search, Discover or News Search Console Help, Oct 2026 |
| Google Business Profile Performance | Views, Searches (search terms), Directions, Calls, Website clicks, Bookings | Your profile › Performance | Calls = "the number of times a customer clicked on the call button", not real calls. Views count one per person per day. Search terms update at the start of each month (up to 5 days late). Verified profiles only Business Profile Help, Oct 2026 |
| Meta Business Suite / Instagram professional dashboard | Reach, profile visits, link taps, messages | Insights (menu names not re-verified) | Good for organic content trends; not for linking sales to posts |
How to use them together
- Search Console tells you which searches find you without ads. If "fren balatası değişimi" (brake pad replacement) brings many impressions but few clicks, the page title or description needs work. It also helps pick Google Ads keywords. Linked to GA4 (Section 04), it adds two organic search reports there.
- GBP Performance is the main free report for Maps. Compare its monthly "Calls" with the calls on line B (the number shown only on the profile). The gap shows how many taps did not turn into a call, or how many people dialled by hand.
- The tagged GBP website link (
utm_campaign=gbp_listing, Section 03) lets GA4 show what Maps visitors did on the site. - Meta insights show which organic posts reach people near the shop and lead to profile visits and messages. Use them to choose which posts to turn into ads.
One free extra: Microsoft Clarity
GA4 tells you how many people left a page without calling. It does not show why. Microsoft Clarity fills that gap. It shows heatmaps (a picture of the page coloured by where people tap and how far they scroll) and session recordings (a replay of one visit: where the visitor tapped, scrolled, hesitated and left). Microsoft describes it as "always free" with no traffic limits Microsoft Clarity, Oct 2026.
- Create a project
Sign in at clarity.microsoft.com, add a project for the website, and copy its tracking code or project ID.
- Install it through GTM, behind consent
Clarity sets cookies and sends visit data to Microsoft, so treat it like GA4: put it in the analytics category of your cookie banner and fire it only after consent (Section 13). For visits from the EEA, the UK and Switzerland, Clarity has required a consent signal since 31 October 2025 PPC Land, Aug 2025.
- Watch 10–15 recordings a month
Filter to mobile visits on your key pages (the booking form, the price page). Note where people stop, tap on things that are not links, or never reach the WhatsApp button.
Bing and Yandex: how much do they matter?
For a Turkish shop, Google's free reports (Search Console, Business Profile) come first. Yandex is large enough that you should check how your shop appears on Yandex Maps and in Yandex search (see the SEO & Local Search deep dive). Bing is small in Türkiye, so the Microsoft Advertising conversion tag (UET) is only needed if you actually run Bing ads. Read these shares as one measurement company's estimate, not an exact count.
Self-checkGoogle Business Profile shows 45 "Calls" this month. What does that number count?
Google defines it as the number of times a customer clicked on the call button. Real calls are in your phone system's log.
Sources for this section
- Search Console Help — Performance report
- Search Console Help — About performance data
- Business Profile Help — Performance metrics
- Microsoft Clarity — product page ("always free", no traffic limits; checked Oct 2026)
- PPC Land — Microsoft Clarity enforces cookie consent across Europe (27 Aug 2025)
- StatCounter — Search engine market share, Turkey (Sep 2026)
Section 11 / 14
Attribution: why the numbers differ
- Read
- 14 min
- Builds on
- Sections 04–09; Crash Course 13
- You will be able to
- Explain why Google Ads, Meta and GA4 never agree, and judge your marketing with numbers that do not depend on any platform's rules.
Add up the conversions that Google Ads and Meta report, and the total is often higher than the number of customers who actually came. Each tool follows its own counting and credit rules, so the totals differ. Once you know the rules, the gaps stop being alarming.
Five reasons the numbers never match
- Different counting: a GA4 session, a Google Ads click and a Meta link click are different things.
- Self-credit: each ad platform credits its own ads. GA4 spreads credit across channels.
- Different windows: Meta can count a conversion days after a click, or a day after a view without any click.
- Missing data: rejected cookies, ad blockers, iOS and Safari limits.
- Estimates: Google and Meta model some conversions they cannot see.
The models each tool uses (as of 2026)
| Tool | Models | Default windows | Notes |
|---|---|---|---|
| GA4 | Data-driven; paid and organic last click; Google paid channels last click | Acquisition key events (first visit): 30 days, or 7. All other key events: 90 days, or 30 or 60 Google Analytics Help, Oct 2026 | "First click, linear, time decay, and position-based … are no longer available as of November 2023." Direct visits get no credit unless the whole path is direct Google Analytics Help, Oct 2026 |
| Google Ads | Data-driven (default); last click still available | Click: 30 days (can be set from 1 to 90). Engaged view: 3 days. View-through: 1 day Google Ads Help, Oct 2026 | Rule-based models were removed in 2023 Search Engine Journal, Oct 2026 |
| Meta | Click-through (link clicks), engage-through, view-through; set per ad set | Reported default for website conversions: 7-day click, 1-day engage-through, 1-day view Dataslayer, Apr 2026 (secondary) | Meta's own announcement did not state the default, and Meta's help page did not load for this check (Oct 2026). Check the ad set's attribution setting in your account |
Meta changed its attribution twice in 2026
- 12 January 2026: Meta removed the 7-day view and 28-day view windows (announced 13 October 2025). The 1-day click, 7-day click, 28-day click, 1-day engaged-view and 1-day view windows remained. Sources conflict on where this applied: PPC Land says the Ads Insights API only PPC Land, Oct 2026; Dataslayer says Ads Manager too Dataslayer, Oct 2026. Check the attribution settings in your own account.
- March 2026: click-through attribution for website and in-store conversions was narrowed to "exclusively include link clicks". Likes, shares and saves moved to engage-through attribution (formerly engaged-view), and the video threshold went from 10 to 5 seconds Meta, Mar 2026 Dataslayer, Apr 2026.
Same lead, different day: click date vs conversion date
Even when two tools agree that a lead came from an ad, they can put it on different days. Google Ads "has always reported conversions by the date your ad was clicked" Google Ads Help, Oct 2026. GA4 reports a key event on the day it happened Dataslayer, Jun 2024 (secondary).
Google Ads: click date
A driver clicks Örnek's brake ad on 30 September and sends the booking form on 2 October. Google Ads shows the conversion on 30 September, in the September report.
GA4: conversion date
GA4 shows the same generate_lead on 2 October, in the October report.
What to do
Expect monthly totals to differ for this reason alone, most at month ends. When you compare Google Ads with GA4 or with your log, add the "Conversions (by conv. time)" column in Google Ads, which counts conversions on the day they happened (same Google page).
Data also arrives late. Recent days in every tool are incomplete, and Google Ads can still add conversions to a click that happened weeks ago, up to the end of the window. Judge last week on Monday, but treat the last two or three days as provisional.
A practical approach for a small shop
- Make your log the source of truth
Real customers, jobs and money come from the log (Section 09). Platform numbers are for steering inside each platform.
- Judge the total with blended numbers
These do not depend on any platform's attribution rules (formulas below).
- Compare trends, not totals
Keep the same settings and date ranges week to week. When a platform changes a definition, write a note in your report so the jump is explained.
- Run a simple on/off test when in doubt
Pause one channel for 2–4 weeks, or run it only in some districts, and compare new customers in the log with similar weeks. Small shops have small numbers, so treat the result as a strong hint, not proof. This is a judgement rule, not a sourced benchmark.
Blended cost per customer all channels
total marketing spend ÷ all new paying customers
30,000 ÷ 40 = 750 TL (example)
MER marketing efficiency ratio
total new-customer revenue ÷ total marketing spend
320,000 ÷ 30,000 ≈ 10.7 (example)
Self-checkGoogle Ads reports 41 conversions, Meta 33, and your log shows 60 leads from ads. How many ad leads did the shop really get?
Both platforms can claim the same lead, and each counts taps that never became a call. The log counts each real contact once.
Sources for this section
- Google Analytics Help — Attribution models
- Google Analytics Help — Attribution settings and lookback windows (checked Oct 2026)
- Google Ads Help — About conversion windows (checked Oct 2026)
- Google Ads Help — Understand conversions by time with new columns (checked Oct 2026)
- Dataslayer — Reasons for data discrepancies between Google Ads and GA4 (27 Jun 2024, secondary)
- Search Engine Journal — Google removes four attribution models (2023)
- PPC Land — Meta restricts attribution windows in Ads Insights API
- Dataslayer — Meta attribution window removed (Jan 2026)
- Meta — Click attribution update (3 Mar 2026)
- Dataslayer — Engage-through attribution (2026)
- Business Wire / Drive Social Media — 2026 Meta attribution changes (Jun 2026)
Section 12 / 14
Dashboards and the weekly report
- Read
- 14 min
- Builds on
- Sections 09–11
- You will be able to
- Build a free one-page dashboard, run a 15-minute weekly report and a one-hour monthly review, find which step of the funnel is broken, and avoid being fooled by small numbers and seasons.
Data is only useful if someone looks at it on a fixed day and makes one decision. A 15-minute report every Monday is enough for a shop: spend, leads by channel, jobs, revenue, cost per lead, cost per job, and one change for next week.
Connectors: what plugs in for free
Google-built connectors
Google Sheets, Google Ads, Google Analytics, Search Console, YouTube Analytics, BigQuery (plus Campaign Manager 360, Display & Video 360, Search Ads 360, Ad Manager 360) Google Cloud docs, Sep 2026.
No native connector
Google Business Profile and Meta Ads. Partner (community) connectors exist, but Google warns: "Community connectors may cost money to use."
Free workaround: type the weekly Meta and GBP numbers into a small Google Sheet and connect the Sheet.
Build the dashboard
- Start a blank report
At datastudio.google.com choose Blank report.
- Add data
GA4, Google Ads, Search Console, and Google Sheets (the customer log, plus the sheet with weekly Meta and GBP numbers).
- Page 1, Summary
Scorecards for spend, leads, jobs, revenue and cost per job; a weekly time series; a table by channel.
- Page 2, Website and search
GA4 sessions and key events by channel, top landing pages, Search Console queries, GBP monthly numbers.
- Add a date control and share
Default "Last 7 days" or "Last month"; share as view-only.
The weekly report template
| Channel | Spend | Clicks / visits | Leads: calls / WA / forms | Jobs | Revenue | Cost per lead | Cost per job |
|---|---|---|---|---|---|---|---|
| Google Ads | Ads | Ads clicks / GA4 sessions | Line A / GA4 events | Log | Log | calc | calc |
| Meta Ads | Ads Manager | Link clicks / GA4 sessions | WA chats, Contact, Lead | Log | Log | calc | calc |
| Google Maps (free) | 0 | GBP website clicks | GBP call taps / line B | Log | Log | — | — |
| Organic search | 0 | GA4 Organic Search sessions | GA4 events | Log | Log | — | — |
| Print / other | Print cost | QR sessions | Line C / promo codes | Log | Log | calc | calc |
| Referral / walk-in | 0 | — | Log | Log | Log | — | — |
| Total | blended | blended |
Five questions every Monday
- Did new paying customers go up or down against the last 4-week average?
- Which paid channel had the lowest cost per job (not cost per lead)?
- Did any tracking break? Look for an event at zero or a sudden jump.
- How many calls were missed, and at what times?
- What one change do we make this week? Write it in the change log.
With only a few leads a week, make budget decisions monthly; weekly numbers are noisy.
The monthly review (about one hour)
On the first Monday of the month, give the numbers one longer look. The weekly check asks "is anything broken?"; the monthly review asks "where should next month's money go?"
These ticks are saved in this browser. Untick them to reuse the list next month.
Small numbers, seasons and simple tests
A shop with 60 leads a month sees about 15 a week. At that size, luck moves the numbers a lot. Three habits stop you from reacting to noise. These are rules of thumb, not statistical standards.
Small numbers swing
Two extra jobs in a week can move cost per customer by hundreds of lira. Do not judge an ad on 3 leads or 2 days. Wait at least about two weeks and roughly 10 or more leads per version before you decide. New campaigns and big edits also start a learning period in Google and Meta, so the first days are noisy.
Seasons change demand
Car repair is seasonal: tyre changes before winter, check-ups before long holiday trips around bayram (religious holidays). A busy November says little about your ads if every November is busy. Compare this November with last November, and note season peaks in the change log.
Test one thing at a time
Change only the headline, or the image, or the offer, or the landing page. Tell versions apart with utm_content and ad names (video_usta_a, video_usta_b). Log the date, the change, the result and the decision.
Self-checkLeads in November are 40% higher than in October. What should the owner compare before giving the ads the credit?
Repair demand is seasonal. Comparing the same month across years separates the season effect from the ad effect.
Diagnose from the top of the funnel down
| Symptom | Likely problem | What to try |
|---|---|---|
| Few impressions | Budget, area or keywords too narrow; low search demand | Widen the radius or keywords a little; check the search terms report |
| Low CTR (vs. your own past) | Ad not relevant, offer not attractive | New headline or creative; show price or offer; match the search, e.g. "fren balatası değişimi" |
| Clicks OK, few leads | Landing page or tracking | Check tracking first; phone and WhatsApp at the top on mobile; faster page; prices and reviews; shorter form |
| Leads OK, few jobs | Lead quality or handling | Answer speed, missed calls, quote follow-up; exclude far areas; adjust the offer |
| Cost per job above break-even | Paying too much per customer | Lower bids or budget; ads only in opening hours; best services and districts |
| Platforms report many conversions, log shows few jobs | Counting the wrong thing, or counting twice | Re-check key events and Primary conversions; compare with the phone log and customer log |
Self-checkImpressions and CTR look normal, but leads dropped to almost zero this week. What do you check first?
A sudden drop to zero is often a broken tag after a website change. Test the tracking before changing ads or pages.
Section 13 / 14
Privacy and consent in Türkiye
- Read
- 16 min
- Builds on
- Sections 04–07; Crash Course 14
- You will be able to
- Explain what KVKK's cookie guide asks for, set up a cookie banner that really controls your tags, and know which questions to take to a lawyer.
Every tool in this guide sets cookies or sends personal data to companies abroad. KVKK, Türkiye's personal data protection law (Law No. 6698), sets the rules. A banner that is shown while the tags fire anyway is a legal risk and also gives you wrong data.
Aydınlatma (informing)
Telling people what you collect, why, for how long, and who receives it. For cookies: given at entry, separately from consent, clear and easy to reach, naming each cookie, its purpose, its duration and whether it is first- or third-party. A long general privacy notice does not count.
Açık rıza (explicit consent)
The person actively agrees. It must be specific, given by an active action, easy to withdraw, and never hidden inside terms of use or made a condition of service. "Just entering the site does not mean consent."
KVKK's cookie guide (July 2025)
The guide is Çerez Uygulamaları Hakkında Rehber (Guide on Cookie Practices), current edition KVKK Yayınları No: 69, Temmuz 2025 (July 2025). KVKK published a draft in January 2022 and the first final guide in June 2022 KVKK, Jul 2025. Its main points:
- No consent needed only for cookies used purely to carry a communication over the network, or cookies strictly necessary for a service the user asked for.
- First-party analytics may fall under the strictly-necessary exemption only if it measures audience and runs the site, produces anonymous statistics without cross-site tracking, has a reasonable lifetime, and the data is not passed to third parties. GA4 and the Meta Pixel send data to Google and Meta abroad; this guide's reading, shared by a Turkish legal blog, is that they need consent DijiLegal, Jul 2026.
- Advertising cookies: "Davranışsal reklamcılık için kullanılan çerezler açık rıza gerektirmektedir." (Cookies used for behavioural advertising require explicit consent.)
- Banner design: "Kabul et", "Reddet" and "Tercihler" buttons equal in colour, size and font; consent-based cookies off by default; a small icon to change the choice later; cookie walls can make consent invalid; do not ask on every visit (consent fatigue).
- Shared responsibility: the site owner and the third party (for example the ad platform) are both responsible for informing users and getting consent.
- Scope: the guide gives no guidance on pixels, fingerprinting, local storage or beacons. Most ad and analytics tags also set cookies, so the cookie rules still apply to them.
Real fines
Data sent abroad (Article 9)
Law No. 7499 amended KVKK Article 9 on transfers abroad. Transfers can rest on an adequacy decision, on appropriate safeguards such as standard contracts (which must be notified to KVKK within five business days of signing), or on limited incidental transfers. It took effect on 1 June 2024; the old explicit-consent rule ran in parallel until 1 September 2024. The implementing regulation was published in the Official Gazette on 10 July 2024 (No. 32598) Resmî Gazete, Mar 2024 KVKK, Oct 2026. Base fines under Article 18 include 50,000–1,000,000 TL for not notifying a standard contract; amounts are revalued every year and the 2026 figures were not checked. How a small business should document the Article 9 basis for GA4 and Meta is not settled in the sources read. Ask a lawyer.
Google Consent Mode v2
Consent mode passes the visitor's choice to Google tags. Consent types are ad_storage, ad_user_data, ad_personalization and analytics_storage (plus functionality, personalization and security storage) Google for Developers, Oct 2026. Google requires consent signals for traffic from the EEA, the UK and Switzerland, not for Türkiye. It is still a clean way to make Google tags obey your banner. It has two modes. In basic mode, Google tags do not load until the visitor consents. In advanced mode, they load with consent set to "denied" and send cookieless pings (small signals without cookies), which Google uses to model lost conversions.
Set up the banner
- Set the categories
Zorunlu (strictly necessary, no consent), İşlevsel (functional), Analitik/Performans (analytics), Reklam/Pazarlama (advertising). Analytics and advertising off by default.
- Design the first layer
"Kabul et", "Reddet" and "Tercihler" equal in colour, size and font, a link to the Çerez Aydınlatma Metni (cookie notice), and a small icon to change the choice later.
- Connect it in GTM
Install the CMP template on Consent Initialization – All Pages with defaults set to denied. Google tags use their built-in consent checks; give the Meta tags "Additional consent checks" or consent-based triggers.
- Test with "Reddet"
Open the site in a private window and reject. In Tag Assistant the Meta Pixel must not fire and Google tags must not set cookies. Then accept: the tags fire.
Browser and phone limits
| Limit | What it does | Effect on your numbers |
|---|---|---|
| App Tracking Transparency (iOS 14.5+) | Apps need permission to track users across other companies' apps and websites Apple, Oct 2026 | Meta sees fewer conversions from iPhone users and models more |
| Link Tracking Protection (iOS 17) | Removes tracking parameters from links in Messages, Mail and Safari Private Browsing | Some shared links arrive without click IDs |
| Safari ITP | Blocks third-party cookies; deletes script-written storage after 7 days without interaction; caps script-set cookies to 24 hours when the visitor comes from a known tracking site through a link with click IDs WebKit, Oct 2026 | Returning Safari visitors can look like new ones |
Before uploading customer data
Phone numbers, emails and click IDs of customers are personal data. Hashing them (SHA-256) is pseudonymisation; the data stays linked to a person. Before uploading paid jobs to Google or Meta: have a legal basis (for advertising and measurement, typically explicit consent), say in your aydınlatma metni that contact data may be shared with ad platforms, address the transfer abroad, and accept the platform's customer-data terms. The lower-risk start is to keep the log in-house and use it only for totals per channel.
Promotional SMS and e-mail: the İYS rules
Customer phone numbers in your log are tempting for campaign messages ("Kış bakımında %10 indirim"). Türkiye regulates these separately from KVKK, under Law No. 6563 on electronic commerce and its regulation on commercial electronic messages. İYS (İleti Yönetim Sistemi, the national message management system) is where consents are recorded.
| Message | Prior consent (onay)? | Notes |
|---|---|---|
| Campaign or advertising SMS / e-mail to a private customer | Yes | The consent must be recorded in İYS: consents not registered in İYS are treated as invalid KPMG Türkiye, Sep 2020 |
| Campaign message to a business customer that is a tacir or esnaf (registered merchant or tradesperson), for example a fleet company | No | "Tacir veya esnaf olan alıcıların elektronik iletişim adreslerine gönderilen ticari elektronik iletiler için önceden onay alınması zorunlu değildir." If the business refuses further messages, you need its consent from then on. Its address must still be registered in İYS Regulation text via Alomaliye KPMG Türkiye, Sep 2020 |
| Service message about an existing job or account, for example "Aracınız hazır" (your car is ready) or a payment reminder | No | The regulation lists notices about collection, debt reminders, information updates, purchase and delivery "or similar" situations. They need no prior consent, but "herhangi bir mal veya hizmet özendirilemez" (no goods or services may be promoted in them) Regulation Art. 6(2) via Alomaliye. Add "this week 10% off" and it becomes a commercial message |
When you do send a campaign message, tag its link with UTMs (utm_source=sms&utm_medium=sms or utm_medium=email, Section 03), and record the İYS consent date in column 10 of the customer log (Section 09).
Self-checkUnder KVKK's cookie guide, may the Meta Pixel load before the visitor clicks "Kabul et"?
Google's EEA rule is irrelevant here; KVKK's guide requires açık rıza for advertising cookies, and consent-based cookies must be off by default.
Sources for this section
- KVKK — Çerez Uygulamaları Hakkında Rehber (July 2025)
- KVKK — Board decision 2022/229
- KVKK — Board decision 2024/1361
- KVKK — Law No. 6698 (English)
- Resmî Gazete — Law No. 7499 (12 Mar 2024)
- DijiLegal — Çerez politikası ve KVKK (25 Jul 2026, secondary)
- Google for Developers — Consent mode
- Google — EU user consent policy
- Apple — User privacy and data use (ATT)
- WebKit — Tracking Prevention
- Erdem & Erdem — summary of KVKK's 21 July 2026 announcement on third-party data for advertising (secondary)
- Alomaliye — Ticari İletişim ve Ticari Elektronik İletiler Hakkında Yönetmelik (text incl. later İYS amendments)
- KPMG Türkiye — İYS registration obligation (15 Sep 2020)
Section 14 / 14
Checklist, mistakes, glossary
- Read
- 10 min
- Builds on
- Sections 01–13
- You will be able to
- Work through the full setup in order, avoid the common tracking mistakes, and look up any term from this guide.
Setup checklist for Örnek Oto Servis
Your ticks are saved in this browser. Work top to bottom; each step relies on the ones before it.
Week 1 · Plan and foundations
Week 2 · Tags and tools
Week 3 · Links, calls and reports
Month 2 and later
Common tracking mistakes
- GA4 installed twice (a plugin and GTM, or code and GTM): every page view counts twice.
- The same lead counted twice in Google Ads: native tag and imported GA4 key event both Primary.
- A form counted twice: on the submit click and on the thank-you page.
- Leads counted "once per event": refreshes of the thank-you page add leads. Use "once per session".
page_viewmarked as a key event: every page view becomes a "lead".- No real thank-you page and relying on
form_submit: failed sends are counted. - No testing after website changes: theme updates often break click triggers.
- Mixed UTM spelling:
Instagram,instagram,IGand Turkish letters split reports. - UTMs on internal links: they overwrite the visit's real source.
- Manual UTMs on Google Ads: not needed with auto-tagging; incomplete ones create
(not set). - No UTMs on Meta ads: paid traffic looks like Organic Social or Referral.
- Data retention left at 2 months: explorations cannot look further back.
- Too many Primary conversions (scrolls, page views, video plays): Google Ads optimises for cheap, useless actions.
- Treating taps as calls and ignoring missed calls in the phone log.
- Banner shown, tags fire anyway: a legal risk and a data problem. Test with "Reddet".
- Comparing platforms carelessly: Meta results (Meta's windows) against GA4 sessions. Compare trends.
- Changing several things at once: new ads, new page and new budget in the same week. You cannot tell what worked.
Self-checkGA4 suddenly shows exactly twice as many page views as last month, but leads did not change. What is the most likely cause?
An exact doubling with no change in leads points to a double install. Check in GTM Preview or Tag Assistant how many Google tags load.
Glossary
- Attribution
- Rules that decide which ad or channel gets credit for a conversion.
- Attribution window
- How long after a click or view a conversion can still be credited.
- Auto-tagging
- Google Ads adds the
gclidclick ID to ad links by itself. - Break-even ROAS
- 1 ÷ gross margin: the lowest ROAS at which ads pay for themselves on the first job (2.5 at a 40% margin).
- Blended cost per customer
- Total marketing spend ÷ all new paying customers, from all channels.
- CAC
- Customer acquisition cost: all costs of winning a new customer (ads, agency, tools, staff time) ÷ new customers.
- Call tracking
- Different phone numbers per channel (static) or per visitor (DNI), so calls can be linked to a source.
- Channel group
- GA4's buckets for visits, such as Paid Social, Organic Search, Email, Unassigned.
- Click ID
- An ID that an ad platform adds to the link:
gclid,fbclid,ctwa_clid. - CMP
- Consent management platform: the tool behind the cookie banner.
- Consent mode
- Google's way of passing the visitor's cookie choice to Google tags; basic or advanced.
- Conversion
- An action you want people to take; in Google's wording, the Google Ads side of a key event.
- Conversion window
- Same as attribution window; also called lookback window. Google Ads defaults to 30 days after a click.
- Conversions API (CAPI)
- Meta's server-to-server way to send events, including offline ones.
- CPM / CPC / CTR
- Cost per 1,000 impressions / cost per click / clicks ÷ impressions.
- Customer log
- Your own sheet or CRM that links each lead to a job and an invoice.
- Data Studio
- Google's free dashboard tool, called Looker Studio until April 2026.
- Deduplication
- Counting a browser event and a server event for the same action only once.
- DNI
- Dynamic number insertion: the website shows a different phone number per visitor or source.
- Enhanced conversions
- Sending hashed email or phone numbers to Google to match more conversions.
- Engagement rate
- GA4: share of sessions longer than 10 seconds, with a key event, or with 2+ page views.
- Event
- One recorded action, such as a page view or a tap on WhatsApp.
- Google tag
- Google's website code for GA4 and Google Ads; replaced the GTM "GA4 Configuration" tag in 2023.
- GTM
- Google Tag Manager: one container that holds and fires all your tags.
- İYS
- İleti Yönetim Sistemi: Türkiye's system where consents for commercial SMS, e-mail and calls are recorded.
- Key event
- A GA4 event marked as important; called "conversion" in GA4 until March 2024.
- Lead
- A person who contacted you; not yet a paying customer.
- LTV
- Lifetime value: gross profit from one customer over the whole relationship (19,200 TL in the Örnek example).
- MER
- Marketing efficiency ratio: total new-customer revenue ÷ total marketing spend.
- Microsoft Clarity
- Free tool for heatmaps and session recordings of website visits.
- Meta Pixel
- Meta's browser code that reports website actions.
- Offline conversion
- A result outside the website (paid job) uploaded to an ad platform later.
- Primary / secondary
- Google Ads conversion actions used for bidding, or only for watching.
- Thresholding
- GA4 hiding rows with few users to protect privacy.
- UTM parameters
- Labels added to a link so GA4 knows the source, medium and campaign of the visit.
- Aydınlatma / açık rıza
- Informing people about data use / their explicit, active consent (KVKK).
All sources
Facts were checked against these pages in October 2026 unless a date is given. Vendor claims are marked as such in the text.
Google Analytics, Tag Manager, developers
- Key events · Configuration limits · Collection limits · Attribution · Data retention · Thresholds · Enhanced measurement · Recommended events · Lookback windows · Engagement rate · Users (Google Analytics Help)
- URL builders · Default channel group · Traffic-source dimensions · Link Google Ads · Link Search Console · Campaign URL Builder
- Tag Manager release notes · Preview and debug · Consent mode · Google tag gateway
Google Ads, Business Profile, Search Console, Data Studio
- Auto-tagging · Phone call conversions · Google forwarding numbers · Call reporting · Click conversions · Website call tracking · Conversion windows · Conversions by time · Access levels (Google Ads Help)
- Offline conversion imports · Upgrade to enhanced conversions for leads · Enhanced conversions for leads · Enhanced conversions · Google Ads API offline uploads
- Primary and secondary actions · GA4 key events in Google Ads · Local actions · Consent mode (Ads) · EU user consent policy
- Business Profile performance · Search Console performance report · Search Console data · Data Studio welcome · Data Studio connectors
Meta
- Pixel reference · Conversions API · Server event parameters · CAPI for Business Messaging · CAPI Gateway · Domain verification
- Click attribution (Mar 2026) · Pixel and CAPI updates (Apr 2026) · Jon Loomer: Offline Conversions API · CustomerLabs: offline via CAPI
- PPC Land: Meta attribution windows · Dataslayer: window removal · Dataslayer: engage-through · Business Wire: reported drops
Türkiye law, call tracking, browsers
- KVKK cookie guide (Jul 2025) · KVKK 2022/229 · KVKK 2024/1361 · Law No. 6698 · Law No. 7499 · SRP Legal summary · DijiLegal · CookieHub · Çerezgo · KVKK 21 Jul 2026 announcement (Erdem & Erdem) · Commercial electronic messages regulation · KPMG: İYS registration
- Zadarma call tracking · Zadarma prices · Netgsm · Bulutfon · Verimor · Ringostat · CallRail: BraBos Cleaning
- Apple ATT · Apple Link Tracking Protection · WebKit tracking prevention
Practitioner and trade sources
- Analytics Mania: key events · Analytics Mania: data retention · Loves Data: key events · Search Engine Journal: attribution models · Boei: WhatsApp clicks · Martech Zone: tel clicks
- Site Kit issue #13290 · PPC Land: Site Kit Site Goals · PPC Land: tag gateway · LocaliQ benchmarks 2026
- Microsoft Clarity · PPC Land: Clarity consent · StatCounter: search share, Turkey · Terminus: Meta UTM tracking · Craftshift: Meta UTM links · Dataslayer: Google Ads vs GA4 · Chatfuel: Meta partner access
Left out because they could not be verified (Oct 2026): upload time limits for Google offline and enhanced-conversion uploads, Search Console data history length, the GBP "Messages" metric after Google ended Business Profile chat, Aggregated Event Measurement changes, Meta's offline-event upload window beyond 7 days, Turkish small-business tracking case studies, the 2026 KVKK and İYS fine amounts, Meta's own help pages on attribution defaults and dynamic URL parameters (they did not load; secondary sources are used and labelled), whether GA4 treats fb and ig as social sources, and how Google adjusts the Business Profile "Directions" count.