Hard rules
- Do not install gtag.js directly and GTM at the same time (double the data).
- Internal traffic filters are not excluded just by defining them — switch them to 'Active'for them to apply.
- Google Ads ↔ GA4 linking is not retroactive — link it first and foremost before starting ads.
- Audiences accumulate from the point of setup — if you have ad plans, in advance create them.
- UTM: unify with lowercase + underscores; if unsure, follow Google's default channel rules.
- Do not leave conversion events to auto-generation; specify them manually + have a human review.
- Verify with your own eyes: pass GA4 Realtime + GTM Preview, then publish.
Turning on ads without measurement = spending money without knowing the results. §1–§7 must be complete before moving on to paid ads (paid-ads skill).
1. GA4 property + GTM setup
- analytics.google.com → Admin → Create property → obtain the Measurement ID (G-XXXXXXXXXX).
- GTM is recommended for installation: GTM → New tag → "Google Analytics: GA4 Configuration" → Measurement ID → Trigger All Pages → after confirming it fires in Preview mode publish.
- Warning: do not install gtag.js directly and GTM in parallel — data will be double-counted. If it is an existing site, first check which method is installed (Omnibug, source search) and use only one.
2. Microsoft Clarity (via GTM)
- If GA4 is "how many came", Clarity is "why they left" — session recordings + heatmaps.
- GTM → Clarity snippet in a Custom HTML tag → Trigger All Pages.
3. Three essential default settings (the defaults are all wrong)
- Enable Google signals data: Admin → Property → Data settings → Data collection. Recognizes cross-device movement as one person.
- Data retention 14 months: Admin → Property → Data settings → Data retention. Default is 2 months — if you do not change it, past data disappears from Explorations.
- Internal traffic filter: Admin → Data streams → Configure tag settings → Internal traffic define → enter your IP. Defining it alone does not exclude it — switch the filter to 'Active' as well.
Optional — early stage with low traffic: set the reporting ID to device-based(Admin → Data display → Reporting ID). Prevents numbers from being hidden by data thresholds (cross-device tracking becomes weaker).
4. Conversion events — pick only the core ones and mark them
- Admin → Events → toggle → mark as key event (conversion).
- Marking targets: form submission complete, audit page reached, phone/KakaoTalk button click.
- Use Google's default event names (form submission =
generate_lead) → automatically included in business objective reports. Reference: support.google.com/analytics/answer/9267735 - Principles of form conversion: At the point the server confirms receipt
dataLayer.push(Option A). If code access is not possible, replace with a custom HTML tag but accept the reliability limitations (Option B). - For CTA clicks, do not create an event for each button; use one tag +
cta_locationparameters to distinguish. Register as a custom dimension.
5. UTM — Tagging Where Traffic Came From
Sharing a link without UTM = (direct)/(none) = Unable to measure channel effectiveness.
utm_source = 유입 출처 (google, threads, newsletter)
utm_medium = 매체 유형 (cpc, social, email)
utm_campaign = 캠페인명 (spring_sale_2026)
utm_content = 소재 구분 (banner_a, text_link)
utm_term = 키워드 (검색광고)
- Rules: Use all lowercase, use underscores instead of spaces. Generate with Google Campaign URL Builder.
- If you are not familiar with it, use values that match Google's predefined channel rules → channel-level classification becomes automatic. Reference: support.google.com/analytics/answer/9756891
6. Product Linking + Audiences (Ad Preparation)
- Google Ads linking — top priority: Admin → Product links → Google Ads. Data before linking cannot be retroactively applied (it uses real-time synchronization), so do it as soon as possible. GSC linking uses a query method, so retroactive application is possible — not urgent, but do it too.
- Create audiences in advance (accumulates from the time of setup): ① Lead submitters (primary target) ② Sessions 3 seconds+ ③ 2+ pageviews (②③ = not simple traffic but the ad audience pool).
- Add AI Search channel: Duplicate the default channel group → add an "AI Search" channel at the very top,
with the condition being the source regex:
chatgpt|openai|oaistatic|gemini|bard|claude|perplexity|genspark|clovax|wrtn|copilot|getliner|deepseek|grok|you\.com|poe\.com
7. Verification (Publishing Is Not the End)
- GA4 [Reports] → Realtime: check events in the event count by event name card, click any event → check UTM values with the campaign/medium/source parameters.
- Omnibug Chrome extension (F12 → Omnibug tab): measure in real time which tags fire and when.
- Do not publish without passing GTM Preview.
8. AI Delegation Prompt (Copy-Paste for Vibe-Coding Sites)
Prerequisites: GTM inserted into the site, GA/GTM API + Claude connected, (Option A) code repository access, site className rule documentation (without it, the AI will write regex triggers that cannot be maintained).
1. GTM 연결해서 내 컨테이너(GTM-XXXXXXX) 찾아줘
2. GA4 측정 ID를 상수 변수 ga4_ID로 만들고, Google 태그를 Initialization - All Pages 트리거로
3. 버튼 전부 이벤트로 만들지 말고, 전환이랑 핵심만 골라줘. CTA 클릭은 태그 하나로 묶고
어느 버튼인지는 파라미터(cta_location)로 구분. 트리거 조건은 내가 준 className 규칙 기준으로.
4. 폼 제출은 버튼 클릭 말고, 서버가 접수 확인했을 때만 generate_lead 이벤트가 발행되게
코드에 dataLayer.push 넣어줘. (코드 접근이 안 되면 맞춤 HTML로 대체하되 신뢰성 한계 감안.)
5. 미리보기 확인했으면 버전 게시해줘
GA4 기본 세팅 해줘.
① 데이터 보존 14개월 ② 구글 신호 데이터 활성화
③ 내 IP 내부 트래픽 등록 + 필터 '활성' 전환
④ 보고 ID 기기 기반 ⑤ generate_lead 키 이벤트 + cta_location 맞춤 측정기준
⑥ 잠재고객: 리드 제출자, CTA 클릭, 참여 사용자
⑦ 기본 채널 그룹 복제해서 AI Search 채널 최상단 추가 (소스 정규식은 §6)
Warning: Do not leave conversion events entirely to automatic generation — this is the axis exported as media conversion values, so if this is wrong, ad optimization will be completely off. A human must review it.