agentleFS
fourteenwmfourteenwm/ppc-ai-skills/lead-quality-pattern-analysis/SKILL.md

lead-quality-pattern-analysis

Skill72 starsChanged 4 months agoMITView on GitHub

Red flag detection frameworks for lead quality analysis across GA4 behavioral data. Auto-invoke when analyzing lead quality, identifying bot traffic, investigating no-shows/missing contact info, or reviewing conversion patterns. Provides 5 analysis frameworks (landing pages, geo, devices, time, user behavior) with severity classification.

The file

We split this skill into the rules it gives an agent

7 rules. About 0 are common, 7 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈7

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Verify campaign location targeting (check radius, included/excluded locations)

    line 137
  2. Distinctive:

    Check if conversions from wrong geo BUT targeting is correct → IP geolocation issue (NOT targeting problem)

    line 138
  3. Distinctive:

    Check if conversions from wrong geo AND targeting is wrong → Targeting misconfiguration

    line 139
  4. Distinctive:

    If late night (1-4 AM) >20% → Investigate for bots/international traffic

    line 270
  5. Distinctive:

    Use this table to quickly classify lead quality issues:

    line 380
  6. Distinctive:

    Run GA4 cross-analysis to get behavioral data

    line 395
  7. Distinctive:

    Use severity classification to prioritize

    line 414

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Lead Quality Pattern Analysis Skill

Purpose: Provides standardized red flag detection frameworks for identifying lead quality issues through GA4 behavioral data analysis.

Type: Domain knowledge skill (auto-invoked)


What This Skill Deliberately Does NOT Do

  • Collect the data. It runs on GA4 behavioral data already gathered (Step 1 hands it ga4-cross-analysis output); it pulls nothing itself.
  • Verify flags against campaign settings. It detects patterns in GA4 behavior; confirming whether a flag is a real config gap or a data artifact is ga4-campaign-cross-reference's hypothesis → verification job.
  • Build the prioritized plan. It counts and severity-classifies red flags; turning them into a sequenced action plan is lead-quality-recommendation-prioritization.
  • Apply the fixes. Adding URL or placement exclusions runs through mutation-safety's two-step approval, not here.

Quick Reference: Red Flag Decision Tree

Severity Classification:

  • 🚨 Severe Quality Issues: >3 red flags detected
  • ⚠️ Moderate Quality Concerns: 1-2 red flags detected
  • ℹ️ Configuration Issues: 0 red flags but poor performance

Common Red Flags:

  1. 50% conversions from non-conversion-intent pages (blog/informational)

  2. Geographic mismatch (conversions outside target market)
  3. Bot indicators (Android Webview dominance, unusual browsers)
  4. Suspicious time patterns (1-4 AM peaks, exact intervals)
  5. Abnormal device consistency (100% mobile or 100% desktop)
  6. 100% new users (no returning visitors)
  7. Extremely short session durations (<10 seconds before conversion)
  8. Multiple conversions from single user/IP

Framework 1: Landing Page Distribution Analysis

Purpose

Identify if conversions are coming from high-intent pages (property/product pages) vs low-intent pages (blog/informational content).

Analysis Method

Step 1: Categorize Landing Pages

High-Intent Pages (Conversion-Focused):

  • Service detail pages (e.g., /services/, /properties/)
  • Product pages (e.g., /contact/, /request-quote/)
  • Pricing pages (e.g., /pricing/, /specials/)
  • Community/amenity pages (e.g., /amenities/, /gallery/)

Low-Intent Pages (Informational/Blog):

  • Blog posts (e.g., /blog/, /news/)
  • Resource centers (e.g., /resources/, /guides/)
  • General information (e.g., /about/, /faq/)
  • Category pages (e.g., /neighborhoods/, /lifestyle/)

Step 2: Calculate Distribution

High-Intent % = (High-Intent Conversions ÷ Total Conversions) × 100
Low-Intent % = (Low-Intent Conversions ÷ Total Conversions) × 100

Step 3: Apply Red Flag Thresholds

Low-Intent %SeverityAction
>75%🚨 SevereIMMEDIATE: Add URL exclusions for blog/informational pages
50-75%⚠️ ModerateMEDIUM: Review and selectively exclude low-performing URLs
25-50%ℹ️ MonitorOPTIONAL: Consider excluding if CPA significantly higher
<25%✅ NormalNo action needed (expected mix)

Step 4: Document Findings

Example Table Format:

| Category | Conversions | % of Total | Top Examples |
|----------|-------------|------------|--------------|
| Blog/Community | 64 | 76.2% | /blog/10-tips, /blog/moving-guide |
| Service Pages | 15 | 17.9% | /pricing/2br, /services/studio |
| Other | 5 | 5.9% | /amenities, /contact |

Red Flag Statement (if >50%):

🚨 CRITICAL: 76.2% of conversions from blog/informational content. These users are researching moving tips, not actively seeking services. Leads likely to have low intent and high no-show rates.


Framework 2: Geographic Distribution Analysis

Purpose

Identify conversions from outside target geography (VPNs, proxies, incorrect IP geolocation, or misconfigured targeting).

Analysis Method

Step 1: Map Conversions to Geography

Extract from GA4:

  • City (most specific)
  • State/Region
  • Country

Step 2: Compare to Target Market

Define Target Geography:

  • Primary market (e.g., the city or metro area the business serves)
  • Acceptable radius (e.g., 40-mile radius)
  • Explicitly excluded areas

Calculate Match Rate:

Target Geography Match % = (Conversions in Target ÷ Total Conversions) × 100

Step 3: Identify Patterns

Normal Pattern:

  • Most conversions from target geography
  • Some variance expected (mobile IP geolocation inaccuracy)
  • Scattered outliers (travelers, relocating users)

Suspicious Patterns:

  • Multiple conversions from single user in distant cities
  • Geographic clusters far from target market
  • International traffic when targeting domestic only

Step 4: Cross-Reference with Campaign Settings

CRITICAL: Before flagging geographic issues:

  1. Verify campaign location targeting (check radius, included/excluded locations)
  2. Check if conversions from wrong geo BUT targeting is correct → IP geolocation issue (NOT targeting problem)
  3. Check if conversions from wrong geo AND targeting is wrong → Targeting misconfiguration

Step 5: Apply Red Flag Thresholds

Outside Target %PatternSeverityAction
>50%Distant cities, international🚨 SevereVerify targeting, consider IP exclusions
25-50%Adjacent markets, mobile variance⚠️ ModerateReview targeting radius, check for VPNs
<25%Scattered outliers✅ NormalMobile IP variance expected

Special Case: VPN/Proxy Detection

Indicators:

  • Multiple conversions from same user across different cities
  • IP geolocation shows distant city but form data shows local address
  • Clustering in VPN-heavy cities (certain international locations)

Note: GA4 city data is often inaccurate for mobile users. Always verify campaign targeting before concluding targeting issue.


Framework 3: Device & Browser Pattern Analysis

Purpose

Identify bot traffic, automation tools, and abnormal device/browser patterns indicating low-quality or fraudulent conversions.

Analysis Method

Step 1: Extract Device & Browser Data

From GA4:

  • Device category (mobile, desktop, tablet)
  • Operating system (Android, iOS, Windows, Mac)
  • Browser (Chrome, Safari, Firefox, WebView)
  • Specific browser version

Step 2: Identify Bot Indicators

🚨 SEVERE Bot Indicators:

  • Android WebView >50% - In-app browser (often low-quality ad placements)
  • Headless browsers - Automation tools (Puppeteer, Selenium)
  • Unusual user agents - Bot signatures in UA string
  • Single browser version >90% - Bot pattern (not natural distribution)

⚠️ MODERATE Bot Indicators:

  • 100% mobile or 100% desktop - Unnatural consistency
  • Old browser versions - Outdated bots or scrapers
  • Obscure browsers - Non-mainstream browsers at scale

ℹ️ MONITORING Indicators:

  • Very high mobile % (>85%) - May indicate placement issues
  • Single OS dominance (>95%) - Check if campaign-specific or bot

Step 3: Calculate Distribution

| Device/Browser | Conversions | % of Total | Red Flag? |
|----------------|-------------|------------|-----------|
| Android Mobile (WebView) | 70 | 83.3% | 🚨 YES (in-app ads, low quality) |
| iOS Mobile (Safari) | 10 | 11.9% | ✅ Normal |
| Desktop (Chrome) | 4 | 4.8% | ✅ Normal |

Step 4: Apply Red Flag Thresholds

PatternSeverityAction
Android WebView >50%🚨 SevereExclude in-app placements, review mobile network quality
Single device type 100%⚠️ ModerateReview placement targeting, check for bot traffic
Unusual browser >25%⚠️ ModerateInvestigate user agents, consider browser exclusions
Diverse distribution✅ NormalNo action needed

Step 5: Cross-Reference with User Behavior

If high Android WebView + high no-shows:

  • Root cause: In-app ad placements (users clicking ads while scrolling, not intentionally seeking services)
  • Solution: Exclude mobile app inventory or add audience signals for in-market users

Framework 4: Time Pattern Analysis

Purpose

Detect suspicious conversion timing patterns indicating bot traffic, automation, or low-quality placements.

Analysis Method

Step 1: Extract Hourly Conversion Data

From GA4:

  • Hour of day (0-23 in property timezone)
  • Day of week
  • Conversion timestamp clustering

Step 2: Chart Distribution

| Hour | Conversions | % | Notes |
|------|-------------|---|-------|
| 1 AM | 18 | 21.4% | 🚨 Suspicious (off-hours peak) |
| 2 AM | 15 | 17.9% | 🚨 Suspicious |
| 3 AM | 12 | 14.3% | 🚨 Suspicious |
| 4 AM | 9 | 10.7% | ⚠️ Elevated |
| ... | ... | ... | ... |
| 10 AM | 4 | 4.8% | ✅ Normal business hours |

Step 3: Identify Red Flags

🚨 SEVERE Patterns:

  • 1-4 AM peak (>30% of conversions) - Bot traffic or international placements
  • Exact interval timing (every 5 min, every hour) - Automation script
  • Single hour dominance (>50% in one hour) - Placement or bot issue

⚠️ MODERATE Patterns:

  • Late night elevated (11 PM - 6 AM >40%) - Check for international traffic
  • Weekend-only pattern - May indicate specific placement or audience

ℹ️ MONITORING Patterns:

  • Business hours heavy (9 AM - 6 PM >60%) - Normal for B2B/services
  • Evening peak (6 PM - 11 PM >50%) - Normal for consumer/residential

Step 4: Compare to Industry Benchmarks

Service Business - Expected Pattern:

  • Peak: 6 PM - 11 PM (after work hours) - 40-50%
  • Business hours: 9 AM - 6 PM - 30-40%
  • Late night: 11 PM - 6 AM - 5-15%
  • Early morning: 6 AM - 9 AM - 5-10%

Red Flag Threshold:

  • If late night (1-4 AM) >20% → Investigate for bots/international traffic

Step 5: Cross-Reference with Geography

Pattern: 1-4 AM peak + international cities (Asia, Europe) = International placements Pattern: 1-4 AM peak + domestic cities = Bot traffic or automation


Framework 5: User Behavior Analysis

Purpose

Detect abnormal user engagement patterns indicating low intent, bot traffic, or form spam.

Analysis Method

Step 1: Extract User Engagement Metrics

From GA4:

  • New vs Returning Users (% split)
  • Session Duration (avg seconds before conversion)
  • Pages per Session (avg pages viewed)
  • Engagement Rate (% of engaged sessions)
  • Bounce Rate (% single-page sessions)

Step 2: Calculate Ratios

New User % = (New Users ÷ Total Users) × 100
Avg Session Duration = Total Session Duration ÷ Total Sessions
Avg Pages per Session = Total Pages Viewed ÷ Total Sessions

Step 3: Apply Red Flag Thresholds

New vs Returning User Ratio

New User %SeverityInterpretation
100%🚨 SevereNo returning visitors = no brand engagement, possible bots
95-99%⚠️ ModerateVery low returning rate = low intent or one-time form fills
85-95%ℹ️ MonitorSlightly elevated (check if new campaign or seasonal)
70-85%✅ NormalExpected for prospecting campaigns

Service Business Benchmark: 75-85% new users (normal for service searches)

Session Duration Before Conversion

Avg DurationSeverityInterpretation
<10 seconds🚨 SevereInstant form submission = bot or accidental click
10-30 seconds⚠️ ModerateVery quick = low engagement, possible spam
30-120 seconds✅ NormalQuick but engaged (mobile users)
2-5 minutes✅ NormalResearching, reading content
>10 minutes✅ High IntentDeep engagement, comparison shopping

Service Business Benchmark: 2-5 minutes (viewing pricing details, amenities, pricing)

Pages per Session

Avg PagesSeverityInterpretation
1 page🚨 SevereBounce and convert = form spam or bot
1-2 pages⚠️ ModerateLow engagement
2-4 pages✅ NormalViewing property info, amenities
4-8 pages✅ High IntentComparison shopping, researching
>8 pagesℹ️ MonitorVery engaged OR bot crawling

Service Business Benchmark: 3-5 pages (service page → pricing details → amenities → convert)

Step 4: Identify Patterns

🚨 SEVERE Combination (Form Spam/Bots):

  • 100% new users
  • <10 sec avg session duration
  • 1 page per session
  • Conclusion: Automated form submission or accidental clicks

⚠️ MODERATE Combination (Low Intent):

  • 95% new users

  • 10-30 sec avg duration
  • 1-2 pages per session
  • Conclusion: Users filling forms from blog content without property intent

✅ NORMAL Combination (Engaged Prospects):

  • 75-85% new users
  • 2-5 min avg duration
  • 3-5 pages per session
  • Conclusion: Genuine potential customers researching options

Step 5: Cross-Reference with Other Frameworks

If poor user behavior + blog landing pages:

  • Root Cause: Users reading moving tips, not seeking services
  • Solution: Exclude blog URLs

If poor user behavior + Android WebView:

  • Root Cause: In-app ad clicks while scrolling social feeds
  • Solution: Exclude mobile app inventory

If poor user behavior + 1-4 AM peak:

  • Root Cause: Bot traffic or automation
  • Solution: Implement bot protection, review placement quality

Red Flag Summary Table

Quick Severity Assessment

Use this table to quickly classify lead quality issues:

Red Flags DetectedSeverity ClassificationRecommended Action Timeline
0 flags, poor performanceℹ️ Configuration IssuesReview targeting, bidding, budgets
1 red flag⚠️ Moderate ConcernsInvestigate root cause, implement fix this week
2 red flags⚠️ Moderate ConcernsMultiple fixes needed, prioritize by impact
3 red flags🚨 Severe Quality IssuesImmediate action required (same day)
4+ red flags🚨 Severe Quality IssuesConsider pausing campaign until fixed

Integration with Investigation Workflow

Step 1: Collect Data

  • Run GA4 cross-analysis to get behavioral data
  • Extract landing pages, geo, devices, time, user behavior metrics

Step 2: Apply Each Framework

  • Framework 1: Categorize and calculate landing page distribution
  • Framework 2: Map geography and compare to target market
  • Framework 3: Identify device/browser bot indicators
  • Framework 4: Chart hourly patterns and flag suspicious timing
  • Framework 5: Calculate user engagement ratios

Step 3: Count Red Flags

  • Tally total red flags across all 5 frameworks
  • Apply severity classification (0 / 1-2 / 3+)

Step 4: Identify Root Causes

  • Cross-reference red flags to find patterns
  • Example: Blog pages + 100% new users + short duration = informational traffic, not property seekers

Step 5: Generate Recommendations

  • Use severity classification to prioritize
  • Reference specific framework findings in recommendations

Real-World Example: PMax Lead Quality Analysis

Red Flags Detected: 5 (🚨 SEVERE)

  1. Framework 1 (Landing Pages): 76.2% from blog/community content ✗
  2. Framework 3 (Devices): 83.3% Android WebView ✗
  3. Framework 4 (Time): Peak activity 1-4 AM (53.6%) ✗
  4. Framework 5 (User Behavior): 100% new users ✗
  5. Framework 5 (Engagement): Likely low engagement (not measured but inferred from blog traffic) ✗

Severity Classification: 🚨 SEVERE (5 red flags)

Root Cause Identified:

Performance Max campaign serving in-app ads (Android WebView) that lead users to blog content. Users clicking while scrolling social feeds at night (1-4 AM), filling forms out of curiosity, not genuine purchase intent.

Recommendations Generated:

  • 🚨 IMMEDIATE: Add /blog/* to URL exclusions
  • 🚨 IMMEDIATE: Review mobile app inventory quality
  • ⚠️ MEDIUM: Add audience signals for in-market potential customers
  • ⚠️ MEDIUM: Consider reducing budget during 1-4 AM hours

When to Use This Skill

Auto-Invoked When:

  • Investigating lead quality issues
  • Analyzing GA4 conversion data
  • Identifying bot traffic
  • Reviewing no-show rates or missing contact info
  • User mentions "low quality leads", "bot traffic", "form spam"
  • Creating lead quality analysis reports

Manual Invocation:

  • Baseline analysis for new campaigns
  • Monthly quality audits
  • Client reporting on lead quality metrics

When to Load Other Skills

SkillWhen
ga4-cross-analysisBefore applying the frameworks, when you still need to collect the GA4 behavioral data they read
ga4-campaign-cross-referenceTo verify a flagged pattern against live campaign settings — flag → hypothesis → finding
lead-quality-recommendation-prioritizationTo turn the counted red flags into a prioritized, sequenced action plan
investigation-methodologyFor the broader hypothesis-driven framework when the root cause spans more than lead quality
mutation-safetyTwo-step approval before applying any URL or placement exclusion the analysis recommends
ga4-lead-quality-investigationIt orchestrates the full investigation and auto-loads this skill as its red-flag detection step

Built by Kurt Henninger. More free skills: github.com/fourteenwm/ppc-ai-skills

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.