diff --git a/skills/ab-test-setup/SKILL.md b/skills/ab-test-setup/SKILL.md index 5d7a73f..a3cd076 100644 --- a/skills/ab-test-setup/SKILL.md +++ b/skills/ab-test-setup/SKILL.md @@ -14,20 +14,9 @@ If `.claude/product-marketing-context.md` exists, read it before asking question Before designing a test, understand: -1. **Test Context** - - What are you trying to improve? - - What change are you considering? - - What made you want to test this? - -2. **Current State** - - Baseline conversion rate? - - Current traffic volume? - - Any historical test data? - -3. **Constraints** - - Technical implementation complexity? - - Timeline requirements? - - Tools available? +1. **Test Context** - What are you trying to improve? What change are you considering? +2. **Current State** - Baseline conversion rate? Current traffic volume? +3. **Constraints** - Technical complexity? Timeline? Tools available? --- @@ -41,7 +30,6 @@ Before designing a test, understand: ### 2. Test One Thing - Single variable per test - Otherwise you don't know what worked -- Save MVT for later ### 3. Statistical Rigor - Pre-determine sample size @@ -67,81 +55,41 @@ for [audience]. We'll know this is true when [metrics]. ``` -### Examples +### Example -**Weak hypothesis:** -"Changing the button color might increase clicks." +**Weak**: "Changing the button color might increase clicks." -**Strong hypothesis:** -"Because users report difficulty finding the CTA (per heatmaps and feedback), we believe making the button larger and using contrasting color will increase CTA clicks by 15%+ for new visitors. We'll measure click-through rate from page view to signup start." - -### Good Hypotheses Include - -- **Observation**: What prompted this idea -- **Change**: Specific modification -- **Effect**: Expected outcome and direction -- **Audience**: Who this applies to -- **Metric**: How you'll measure success +**Strong**: "Because users report difficulty finding the CTA (per heatmaps and feedback), we believe making the button larger and using contrasting color will increase CTA clicks by 15%+ for new visitors. We'll measure click-through rate from page view to signup start." --- ## Test Types -### A/B Test (Split Test) -- Two versions: Control (A) vs. Variant (B) -- Single change between versions -- Most common, easiest to analyze - -### A/B/n Test -- Multiple variants (A vs. B vs. C...) -- Requires more traffic -- Good for testing several options - -### Multivariate Test (MVT) -- Multiple changes in combinations -- Tests interactions between changes -- Requires significantly more traffic -- Complex analysis - -### Split URL Test -- Different URLs for variants -- Good for major page changes -- Easier implementation sometimes +| Type | Description | Traffic Needed | +|------|-------------|----------------| +| A/B | Two versions, single change | Moderate | +| A/B/n | Multiple variants | Higher | +| MVT | Multiple changes in combinations | Very high | +| Split URL | Different URLs for variants | Moderate | --- -## Sample Size Calculation - -### Inputs Needed - -1. **Baseline conversion rate**: Your current rate -2. **Minimum detectable effect (MDE)**: Smallest change worth detecting -3. **Statistical significance level**: Usually 95% -4. **Statistical power**: Usually 80% +## Sample Size ### Quick Reference -| Baseline Rate | 10% Lift | 20% Lift | 50% Lift | -|---------------|----------|----------|----------| +| Baseline | 10% Lift | 20% Lift | 50% Lift | +|----------|----------|----------|----------| | 1% | 150k/variant | 39k/variant | 6k/variant | | 3% | 47k/variant | 12k/variant | 2k/variant | | 5% | 27k/variant | 7k/variant | 1.2k/variant | | 10% | 12k/variant | 3k/variant | 550/variant | -### Formula Resources -- Evan Miller's calculator: https://www.evanmiller.org/ab-testing/sample-size.html -- Optimizely's calculator: https://www.optimizely.com/sample-size-calculator/ +**Calculators:** +- [Evan Miller's](https://www.evanmiller.org/ab-testing/sample-size.html) +- [Optimizely's](https://www.optimizely.com/sample-size-calculator/) -### Test Duration - -``` -Duration = Sample size needed per variant × Number of variants - ─────────────────────────────────────────────────── - Daily traffic to test page × Conversion rate -``` - -Minimum: 1-2 business cycles (usually 1-2 weeks) -Maximum: Avoid running too long (novelty effects, external factors) +**For detailed sample size tables and duration calculations**: See [references/sample-size-guide.md](references/sample-size-guide.md) --- @@ -155,228 +103,106 @@ Maximum: Avoid running too long (novelty effects, external factors) ### Secondary Metrics - Support primary metric interpretation - Explain why/how the change worked -- Help understand user behavior ### Guardrail Metrics - Things that shouldn't get worse -- Revenue, retention, satisfaction - Stop test if significantly negative -### Metric Examples by Test Type - -**Homepage CTA test:** -- Primary: CTA click-through rate -- Secondary: Time to click, scroll depth -- Guardrail: Bounce rate, downstream conversion - -**Pricing page test:** -- Primary: Plan selection rate -- Secondary: Time on page, plan distribution -- Guardrail: Support tickets, refund rate - -**Signup flow test:** -- Primary: Signup completion rate -- Secondary: Field-level completion, time to complete -- Guardrail: User activation rate (post-signup quality) +### Example: Pricing Page Test +- **Primary**: Plan selection rate +- **Secondary**: Time on page, plan distribution +- **Guardrail**: Support tickets, refund rate --- ## Designing Variants -### Control (A) -- Current experience, unchanged -- Don't modify during test +### What to Vary -### Variant (B+) +| Category | Examples | +|----------|----------| +| Headlines/Copy | Message angle, value prop, specificity, tone | +| Visual Design | Layout, color, images, hierarchy | +| CTA | Button copy, size, placement, number | +| Content | Information included, order, amount, social proof | -**Best practices:** +### Best Practices - Single, meaningful change - Bold enough to make a difference - True to the hypothesis -**What to vary:** - -Headlines/Copy: -- Message angle -- Value proposition -- Specificity level -- Tone/voice - -Visual Design: -- Layout structure -- Color and contrast -- Image selection -- Visual hierarchy - -CTA: -- Button copy -- Size/prominence -- Placement -- Number of CTAs - -Content: -- Information included -- Order of information -- Amount of content -- Social proof type - -### Documenting Variants - -``` -Control (A): -- Screenshot -- Description of current state - -Variant (B): -- Screenshot or mockup -- Specific changes made -- Hypothesis for why this will win -``` - --- ## Traffic Allocation -### Standard Split -- 50/50 for A/B test -- Equal split for multiple variants +| Approach | Split | When to Use | +|----------|-------|-------------| +| Standard | 50/50 | Default for A/B | +| Conservative | 90/10, 80/20 | Limit risk of bad variant | +| Ramping | Start small, increase | Technical risk mitigation | -### Conservative Rollout -- 90/10 or 80/20 initially -- Limits risk of bad variant -- Longer to reach significance - -### Ramping -- Start small, increase over time -- Good for technical risk mitigation -- Most tools support this - -### Considerations +**Considerations:** - Consistency: Users see same variant on return -- Segment sizes: Ensure segments are large enough -- Time of day/week: Balanced exposure +- Balanced exposure across time of day/week --- -## Implementation Approaches +## Implementation -### Client-Side Testing - -**Tools**: PostHog, Optimizely, VWO, custom - -**How it works**: +### Client-Side - JavaScript modifies page after load -- Quick to implement -- Can cause flicker +- Quick to implement, can cause flicker +- Tools: PostHog, Optimizely, VWO -**Best for**: -- Marketing pages -- Copy/visual changes -- Quick iteration - -### Server-Side Testing - -**Tools**: PostHog, LaunchDarkly, Split, custom - -**How it works**: -- Variant determined before page renders -- No flicker -- Requires development work - -**Best for**: -- Product features -- Complex changes -- Performance-sensitive pages - -### Feature Flags - -- Binary on/off (not true A/B) -- Good for rollouts -- Can convert to A/B with percentage split +### Server-Side +- Variant determined before render +- No flicker, requires dev work +- Tools: PostHog, LaunchDarkly, Split --- ## Running the Test ### Pre-Launch Checklist - - [ ] Hypothesis documented - [ ] Primary metric defined - [ ] Sample size calculated -- [ ] Test duration estimated - [ ] Variants implemented correctly - [ ] Tracking verified - [ ] QA completed on all variants -- [ ] Stakeholders informed ### During the Test **DO:** - Monitor for technical issues - Check segment quality -- Document any external factors +- Document external factors **DON'T:** - Peek at results and stop early - Make changes to variants - Add traffic from new sources -- End early because you "know" the answer -### Peeking Problem - -Looking at results before reaching sample size and stopping when you see significance leads to: -- False positives -- Inflated effect sizes -- Wrong decisions - -**Solutions:** -- Pre-commit to sample size and stick to it -- Use sequential testing if you must peek -- Trust the process +### The Peeking Problem +Looking at results before reaching sample size and stopping early leads to false positives and wrong decisions. Pre-commit to sample size and trust the process. --- ## Analyzing Results ### Statistical Significance - - 95% confidence = p-value < 0.05 -- Means: <5% chance result is random +- Means <5% chance result is random - Not a guarantee—just a threshold -### Practical Significance +### Analysis Checklist -Statistical ≠ Practical - -- Is the effect size meaningful for business? -- Is it worth the implementation cost? -- Is it sustainable over time? - -### What to Look At - -1. **Did you reach sample size?** - - If not, result is preliminary - -2. **Is it statistically significant?** - - Check confidence intervals - - Check p-value - -3. **Is the effect size meaningful?** - - Compare to your MDE - - Project business impact - -4. **Are secondary metrics consistent?** - - Do they support the primary? - - Any unexpected effects? - -5. **Any guardrail concerns?** - - Did anything get worse? - - Long-term risks? - -6. **Segment differences?** - - Mobile vs. desktop? - - New vs. returning? - - Traffic source? +1. **Reach sample size?** If not, result is preliminary +2. **Statistically significant?** Check confidence intervals +3. **Effect size meaningful?** Compare to MDE, project impact +4. **Secondary metrics consistent?** Support the primary? +5. **Guardrail concerns?** Anything get worse? +6. **Segment differences?** Mobile vs. desktop? New vs. returning? ### Interpreting Results @@ -389,84 +215,15 @@ Statistical ≠ Practical --- -## Documenting and Learning +## Documentation -### Test Documentation +Document every test with: +- Hypothesis +- Variants (with screenshots) +- Results (sample, metrics, significance) +- Decision and learnings -``` -Test Name: [Name] -Test ID: [ID in testing tool] -Dates: [Start] - [End] -Owner: [Name] - -Hypothesis: -[Full hypothesis statement] - -Variants: -- Control: [Description + screenshot] -- Variant: [Description + screenshot] - -Results: -- Sample size: [achieved vs. target] -- Primary metric: [control] vs. [variant] ([% change], [confidence]) -- Secondary metrics: [summary] -- Segment insights: [notable differences] - -Decision: [Winner/Loser/Inconclusive] -Action: [What we're doing] - -Learnings: -[What we learned, what to test next] -``` - -### Building a Learning Repository - -- Central location for all tests -- Searchable by page, element, outcome -- Prevents re-running failed tests -- Builds institutional knowledge - ---- - -## Output Format - -### Test Plan Document - -``` -# A/B Test: [Name] - -## Hypothesis -[Full hypothesis using framework] - -## Test Design -- Type: A/B / A/B/n / MVT -- Duration: X weeks -- Sample size: X per variant -- Traffic allocation: 50/50 - -## Variants -[Control and variant descriptions with visuals] - -## Metrics -- Primary: [metric and definition] -- Secondary: [list] -- Guardrails: [list] - -## Implementation -- Method: Client-side / Server-side -- Tool: [Tool name] -- Dev requirements: [If any] - -## Analysis Plan -- Success criteria: [What constitutes a win] -- Segment analysis: [Planned segments] -``` - -### Results Summary -When test is complete - -### Recommendations -Next steps based on results +**For templates**: See [references/test-templates.md](references/test-templates.md) --- @@ -476,19 +233,16 @@ Next steps based on results - Testing too small a change (undetectable) - Testing too many things (can't isolate) - No clear hypothesis -- Wrong audience ### Execution - Stopping early - Changing things mid-test - Not checking implementation -- Uneven traffic allocation ### Analysis - Ignoring confidence intervals - Cherry-picking segments - Over-interpreting inconclusive results -- Not considering practical significance --- diff --git a/skills/ab-test-setup/references/sample-size-guide.md b/skills/ab-test-setup/references/sample-size-guide.md new file mode 100644 index 0000000..c934b02 --- /dev/null +++ b/skills/ab-test-setup/references/sample-size-guide.md @@ -0,0 +1,252 @@ +# Sample Size Guide + +Reference for calculating sample sizes and test duration. + +## Sample Size Fundamentals + +### Required Inputs + +1. **Baseline conversion rate**: Your current rate +2. **Minimum detectable effect (MDE)**: Smallest change worth detecting +3. **Statistical significance level**: Usually 95% (α = 0.05) +4. **Statistical power**: Usually 80% (β = 0.20) + +### What These Mean + +**Baseline conversion rate**: If your page converts at 5%, that's your baseline. + +**MDE (Minimum Detectable Effect)**: The smallest improvement you care about detecting. Set this based on: +- Business impact (is a 5% lift meaningful?) +- Implementation cost (worth the effort?) +- Realistic expectations (what have past tests shown?) + +**Statistical significance (95%)**: Means there's less than 5% chance the observed difference is due to random chance. + +**Statistical power (80%)**: Means if there's a real effect of size MDE, you have 80% chance of detecting it. + +--- + +## Sample Size Quick Reference Tables + +### Conversion Rate: 1% + +| Lift to Detect | Sample per Variant | Total Sample | +|----------------|-------------------|--------------| +| 5% (1% → 1.05%) | 1,500,000 | 3,000,000 | +| 10% (1% → 1.1%) | 380,000 | 760,000 | +| 20% (1% → 1.2%) | 97,000 | 194,000 | +| 50% (1% → 1.5%) | 16,000 | 32,000 | +| 100% (1% → 2%) | 4,200 | 8,400 | + +### Conversion Rate: 3% + +| Lift to Detect | Sample per Variant | Total Sample | +|----------------|-------------------|--------------| +| 5% (3% → 3.15%) | 480,000 | 960,000 | +| 10% (3% → 3.3%) | 120,000 | 240,000 | +| 20% (3% → 3.6%) | 31,000 | 62,000 | +| 50% (3% → 4.5%) | 5,200 | 10,400 | +| 100% (3% → 6%) | 1,400 | 2,800 | + +### Conversion Rate: 5% + +| Lift to Detect | Sample per Variant | Total Sample | +|----------------|-------------------|--------------| +| 5% (5% → 5.25%) | 280,000 | 560,000 | +| 10% (5% → 5.5%) | 72,000 | 144,000 | +| 20% (5% → 6%) | 18,000 | 36,000 | +| 50% (5% → 7.5%) | 3,100 | 6,200 | +| 100% (5% → 10%) | 810 | 1,620 | + +### Conversion Rate: 10% + +| Lift to Detect | Sample per Variant | Total Sample | +|----------------|-------------------|--------------| +| 5% (10% → 10.5%) | 130,000 | 260,000 | +| 10% (10% → 11%) | 34,000 | 68,000 | +| 20% (10% → 12%) | 8,700 | 17,400 | +| 50% (10% → 15%) | 1,500 | 3,000 | +| 100% (10% → 20%) | 400 | 800 | + +### Conversion Rate: 20% + +| Lift to Detect | Sample per Variant | Total Sample | +|----------------|-------------------|--------------| +| 5% (20% → 21%) | 60,000 | 120,000 | +| 10% (20% → 22%) | 16,000 | 32,000 | +| 20% (20% → 24%) | 4,000 | 8,000 | +| 50% (20% → 30%) | 700 | 1,400 | +| 100% (20% → 40%) | 200 | 400 | + +--- + +## Duration Calculator + +### Formula + +``` +Duration (days) = (Sample per variant × Number of variants) / (Daily traffic × % exposed) +``` + +### Examples + +**Scenario 1: High-traffic page** +- Need: 10,000 per variant (2 variants = 20,000 total) +- Daily traffic: 5,000 visitors +- 100% exposed to test +- Duration: 20,000 / 5,000 = **4 days** + +**Scenario 2: Medium-traffic page** +- Need: 30,000 per variant (60,000 total) +- Daily traffic: 2,000 visitors +- 100% exposed +- Duration: 60,000 / 2,000 = **30 days** + +**Scenario 3: Low-traffic with partial exposure** +- Need: 15,000 per variant (30,000 total) +- Daily traffic: 500 visitors +- 50% exposed to test +- Effective daily: 250 +- Duration: 30,000 / 250 = **120 days** (too long!) + +### Minimum Duration Rules + +Even with sufficient sample size, run tests for at least: +- **1 full week**: To capture day-of-week variation +- **2 business cycles**: If B2B (weekday vs. weekend patterns) +- **Through paydays**: If e-commerce (beginning/end of month) + +### Maximum Duration Guidelines + +Avoid running tests longer than 4-8 weeks: +- Novelty effects wear off +- External factors intervene +- Opportunity cost of other tests + +--- + +## Online Calculators + +### Recommended Tools + +**Evan Miller's Calculator** +https://www.evanmiller.org/ab-testing/sample-size.html +- Simple interface +- Bookmark-worthy + +**Optimizely's Calculator** +https://www.optimizely.com/sample-size-calculator/ +- Business-friendly language +- Duration estimates + +**AB Test Guide Calculator** +https://www.abtestguide.com/calc/ +- Includes Bayesian option +- Multiple test types + +**VWO Duration Calculator** +https://vwo.com/tools/ab-test-duration-calculator/ +- Duration-focused +- Good for planning + +--- + +## Adjusting for Multiple Variants + +With more than 2 variants (A/B/n tests), you need more sample: + +| Variants | Multiplier | +|----------|------------| +| 2 (A/B) | 1x | +| 3 (A/B/C) | ~1.5x | +| 4 (A/B/C/D) | ~2x | +| 5+ | Consider reducing variants | + +**Why?** More comparisons increase chance of false positives. You're comparing: +- A vs B +- A vs C +- B vs C (sometimes) + +Apply Bonferroni correction or use tools that handle this automatically. + +--- + +## Common Sample Size Mistakes + +### 1. Underpowered tests +**Problem**: Not enough sample to detect realistic effects +**Fix**: Be realistic about MDE, get more traffic, or don't test + +### 2. Overpowered tests +**Problem**: Waiting for sample size when you already have significance +**Fix**: This is actually fine—you committed to sample size, honor it + +### 3. Wrong baseline rate +**Problem**: Using wrong conversion rate for calculation +**Fix**: Use the specific metric and page, not site-wide averages + +### 4. Ignoring segments +**Problem**: Calculating for full traffic, then analyzing segments +**Fix**: If you plan segment analysis, calculate sample for smallest segment + +### 5. Testing too many things +**Problem**: Dividing traffic too many ways +**Fix**: Prioritize ruthlessly, run fewer concurrent tests + +--- + +## When Sample Size Requirements Are Too High + +Options when you can't get enough traffic: + +1. **Increase MDE**: Accept only detecting larger effects (20%+ lift) +2. **Lower confidence**: Use 90% instead of 95% (risky, document it) +3. **Reduce variants**: Test only the most promising variant +4. **Combine traffic**: Test across multiple similar pages +5. **Test upstream**: Test earlier in funnel where traffic is higher +6. **Don't test**: Make decision based on qualitative data instead +7. **Longer test**: Accept longer duration (weeks/months) + +--- + +## Sequential Testing + +If you must check results before reaching sample size: + +### What is it? +Statistical method that adjusts for multiple looks at data. + +### When to use +- High-risk changes +- Need to stop bad variants early +- Time-sensitive decisions + +### Tools that support it +- Optimizely (Stats Accelerator) +- VWO (SmartStats) +- PostHog (Bayesian approach) + +### Tradeoff +- More flexibility to stop early +- Slightly larger sample size requirement +- More complex analysis + +--- + +## Quick Decision Framework + +### Can I run this test? + +``` +Daily traffic to page: _____ +Baseline conversion rate: _____ +MDE I care about: _____ + +Sample needed per variant: _____ (from tables above) +Days to run: Sample / Daily traffic = _____ + +If days > 60: Consider alternatives +If days > 30: Acceptable for high-impact tests +If days < 14: Likely feasible +If days < 7: Easy to run, consider running longer anyway +``` diff --git a/skills/ab-test-setup/references/test-templates.md b/skills/ab-test-setup/references/test-templates.md new file mode 100644 index 0000000..a504421 --- /dev/null +++ b/skills/ab-test-setup/references/test-templates.md @@ -0,0 +1,268 @@ +# A/B Test Templates Reference + +Templates for planning, documenting, and analyzing experiments. + +## Test Plan Template + +```markdown +# A/B Test: [Name] + +## Overview +- **Owner**: [Name] +- **Test ID**: [ID in testing tool] +- **Page/Feature**: [What's being tested] +- **Planned dates**: [Start] - [End] + +## Hypothesis + +Because [observation/data], +we believe [change] +will cause [expected outcome] +for [audience]. +We'll know this is true when [metrics]. + +## Test Design + +| Element | Details | +|---------|---------| +| Test type | A/B / A/B/n / MVT | +| Duration | X weeks | +| Sample size | X per variant | +| Traffic allocation | 50/50 | +| Tool | [Tool name] | +| Implementation | Client-side / Server-side | + +## Variants + +### Control (A) +[Screenshot] +- Current experience +- [Key details about current state] + +### Variant (B) +[Screenshot or mockup] +- [Specific change #1] +- [Specific change #2] +- Rationale: [Why we think this will win] + +## Metrics + +### Primary +- **Metric**: [metric name] +- **Definition**: [how it's calculated] +- **Current baseline**: [X%] +- **Minimum detectable effect**: [X%] + +### Secondary +- [Metric 1]: [what it tells us] +- [Metric 2]: [what it tells us] +- [Metric 3]: [what it tells us] + +### Guardrails +- [Metric that shouldn't get worse] +- [Another safety metric] + +## Segment Analysis Plan +- Mobile vs. desktop +- New vs. returning visitors +- Traffic source +- [Other relevant segments] + +## Success Criteria +- Winner: [Primary metric improves by X% with 95% confidence] +- Loser: [Primary metric decreases significantly] +- Inconclusive: [What we'll do if no significant result] + +## Pre-Launch Checklist +- [ ] Hypothesis documented and reviewed +- [ ] Primary metric defined and trackable +- [ ] Sample size calculated +- [ ] Test duration estimated +- [ ] Variants implemented correctly +- [ ] Tracking verified in all variants +- [ ] QA completed on all variants +- [ ] Stakeholders informed +- [ ] Calendar hold for analysis date +``` + +--- + +## Results Documentation Template + +```markdown +# A/B Test Results: [Name] + +## Summary +| Element | Value | +|---------|-------| +| Test ID | [ID] | +| Dates | [Start] - [End] | +| Duration | X days | +| Result | Winner / Loser / Inconclusive | +| Decision | [What we're doing] | + +## Hypothesis (Reminder) +[Copy from test plan] + +## Results + +### Sample Size +| Variant | Target | Actual | % of target | +|---------|--------|--------|-------------| +| Control | X | Y | Z% | +| Variant | X | Y | Z% | + +### Primary Metric: [Metric Name] +| Variant | Value | 95% CI | vs. Control | +|---------|-------|--------|-------------| +| Control | X% | [X%, Y%] | — | +| Variant | X% | [X%, Y%] | +X% | + +**Statistical significance**: p = X.XX (95% = sig / not sig) +**Practical significance**: [Is this lift meaningful for the business?] + +### Secondary Metrics + +| Metric | Control | Variant | Change | Significant? | +|--------|---------|---------|--------|--------------| +| [Metric 1] | X | Y | +Z% | Yes/No | +| [Metric 2] | X | Y | +Z% | Yes/No | + +### Guardrail Metrics + +| Metric | Control | Variant | Change | Concern? | +|--------|---------|---------|--------|----------| +| [Metric 1] | X | Y | +Z% | Yes/No | + +### Segment Analysis + +**Mobile vs. Desktop** +| Segment | Control | Variant | Lift | +|---------|---------|---------|------| +| Mobile | X% | Y% | +Z% | +| Desktop | X% | Y% | +Z% | + +**New vs. Returning** +| Segment | Control | Variant | Lift | +|---------|---------|---------|------| +| New | X% | Y% | +Z% | +| Returning | X% | Y% | +Z% | + +## Interpretation + +### What happened? +[Explanation of results in plain language] + +### Why do we think this happened? +[Analysis and reasoning] + +### Caveats +[Any limitations, external factors, or concerns] + +## Decision + +**Winner**: [Control / Variant] + +**Action**: [Implement variant / Keep control / Re-test] + +**Timeline**: [When changes will be implemented] + +## Learnings + +### What we learned +- [Key insight 1] +- [Key insight 2] + +### What to test next +- [Follow-up test idea 1] +- [Follow-up test idea 2] + +### Impact +- **Projected lift**: [X% improvement in Y metric] +- **Business impact**: [Revenue, conversions, etc.] +``` + +--- + +## Test Repository Entry Template + +For tracking all tests in a central location: + +```markdown +| Test ID | Name | Page | Dates | Primary Metric | Result | Lift | Link | +|---------|------|------|-------|----------------|--------|------|------| +| 001 | Hero headline test | Homepage | 1/1-1/15 | CTR | Winner | +12% | [Link] | +| 002 | Pricing table layout | Pricing | 1/10-1/31 | Plan selection | Loser | -5% | [Link] | +| 003 | Signup form fields | Signup | 2/1-2/14 | Completion | Inconclusive | +2% | [Link] | +``` + +--- + +## Quick Test Brief Template + +For simple tests that don't need full documentation: + +```markdown +## [Test Name] + +**What**: [One sentence description] +**Why**: [One sentence hypothesis] +**Metric**: [Primary metric] +**Duration**: [X weeks] +**Result**: [TBD / Winner / Loser / Inconclusive] +**Learnings**: [Key takeaway] +``` + +--- + +## Stakeholder Update Template + +```markdown +## A/B Test Update: [Name] + +**Status**: Running / Complete +**Days remaining**: X (or complete) +**Current sample**: X% of target + +### Preliminary observations +[What we're seeing - without making decisions yet] + +### Next steps +[What happens next] + +### Timeline +- [Date]: Analysis complete +- [Date]: Decision and recommendation +- [Date]: Implementation (if winner) +``` + +--- + +## Experiment Prioritization Scorecard + +For deciding which tests to run: + +| Factor | Weight | Test A | Test B | Test C | +|--------|--------|--------|--------|--------| +| Potential impact | 30% | | | | +| Confidence in hypothesis | 25% | | | | +| Ease of implementation | 20% | | | | +| Risk if wrong | 15% | | | | +| Strategic alignment | 10% | | | | +| **Total** | | | | | + +Scoring: 1-5 (5 = best) + +--- + +## Hypothesis Bank Template + +For collecting test ideas: + +```markdown +| ID | Page/Area | Observation | Hypothesis | Potential Impact | Status | +|----|-----------|-------------|------------|------------------|--------| +| H1 | Homepage | Low scroll depth | Shorter hero will increase scroll | High | Testing | +| H2 | Pricing | Users compare plans | Comparison table will help | Medium | Backlog | +| H3 | Signup | Drop-off at email | Social login will increase completion | Medium | Backlog | +``` diff --git a/skills/analytics-tracking/SKILL.md b/skills/analytics-tracking/SKILL.md index 5c6f41e..1ef392c 100644 --- a/skills/analytics-tracking/SKILL.md +++ b/skills/analytics-tracking/SKILL.md @@ -14,20 +14,9 @@ If `.claude/product-marketing-context.md` exists, read it before asking question Before implementing tracking, understand: -1. **Business Context** - - What decisions will this data inform? - - What are the key conversion actions? - - What questions need answering? - -2. **Current State** - - What tracking exists? - - What tools are in use (GA4, Mixpanel, Amplitude, etc.)? - - What's working/not working? - -3. **Technical Context** - - What's the tech stack? - - Who will implement and maintain? - - Any privacy/compliance requirements? +1. **Business Context** - What decisions will this data inform? What are key conversions? +2. **Current State** - What tracking exists? What tools are in use? +3. **Technical Context** - What's the tech stack? Any privacy/compliance requirements? --- @@ -60,63 +49,36 @@ Before implementing tracking, understand: ### Structure ``` -Event Name | Event Category | Properties | Trigger | Notes ----------- | ------------- | ---------- | ------- | ----- +Event Name | Category | Properties | Trigger | Notes +---------- | -------- | ---------- | ------- | ----- ``` ### Event Types -**Pageviews** -- Automatic in most tools -- Enhanced with page metadata +| Type | Examples | +|------|----------| +| Pageviews | Automatic, enhanced with metadata | +| User Actions | Button clicks, form submissions, feature usage | +| System Events | Signup completed, purchase, subscription changed | +| Custom Conversions | Goal completions, funnel stages | -**User Actions** -- Button clicks -- Form submissions -- Feature usage -- Content interactions - -**System Events** -- Signup completed -- Purchase completed -- Subscription changed -- Errors occurred - -**Custom Conversions** -- Goal completions -- Funnel stages -- Business-specific milestones +**For comprehensive event lists**: See [references/event-library.md](references/event-library.md) --- ## Event Naming Conventions -### Format Options +### Recommended Format: Object-Action -**Object-Action (Recommended)** ``` signup_completed button_clicked form_submitted article_read -``` - -**Action-Object** -``` -click_button -submit_form -complete_signup -``` - -**Category_Object_Action** -``` checkout_payment_completed -blog_article_viewed -onboarding_step_completed ``` ### Best Practices - - Lowercase with underscores - Be specific: `cta_hero_clicked` vs. `button_clicked` - Include context in properties, not event name @@ -125,235 +87,94 @@ onboarding_step_completed --- -## Essential Events to Track +## Essential Events ### Marketing Site -**Navigation** -- page_view (enhanced) -- outbound_link_clicked -- scroll_depth (25%, 50%, 75%, 100%) - -**Engagement** -- cta_clicked (button_text, location) -- video_played (video_id, duration) -- form_started -- form_submitted (form_type) -- resource_downloaded (resource_name) - -**Conversion** -- signup_started -- signup_completed -- demo_requested -- contact_submitted +| Event | Properties | +|-------|------------| +| cta_clicked | button_text, location | +| form_submitted | form_type | +| signup_completed | method, source | +| demo_requested | - | ### Product/App -**Onboarding** -- signup_completed -- onboarding_step_completed (step_number, step_name) -- onboarding_completed -- first_key_action_completed +| Event | Properties | +|-------|------------| +| onboarding_step_completed | step_number, step_name | +| feature_used | feature_name | +| purchase_completed | plan, value | +| subscription_cancelled | reason | -**Core Usage** -- feature_used (feature_name) -- action_completed (action_type) -- session_started -- session_ended - -**Monetization** -- trial_started -- pricing_viewed -- checkout_started -- purchase_completed (plan, value) -- subscription_cancelled - -### E-commerce - -**Browsing** -- product_viewed (product_id, category, price) -- product_list_viewed (list_name, products) -- product_searched (query, results_count) - -**Cart** -- product_added_to_cart -- product_removed_from_cart -- cart_viewed - -**Checkout** -- checkout_started -- checkout_step_completed (step) -- payment_info_entered -- purchase_completed (order_id, value, products) +**For full event library by business type**: See [references/event-library.md](references/event-library.md) --- -## Event Properties (Parameters) +## Event Properties -### Standard Properties to Consider +### Standard Properties -**Page/Screen** -- page_title -- page_location (URL) -- page_referrer -- content_group - -**User** -- user_id (if logged in) -- user_type (free, paid, admin) -- account_id (B2B) -- plan_type - -**Campaign** -- source -- medium -- campaign -- content -- term - -**Product** (e-commerce) -- product_id -- product_name -- category -- price -- quantity -- currency - -**Timing** -- timestamp -- session_duration -- time_on_page +| Category | Properties | +|----------|------------| +| Page | page_title, page_location, page_referrer | +| User | user_id, user_type, account_id, plan_type | +| Campaign | source, medium, campaign, content, term | +| Product | product_id, product_name, category, price | ### Best Practices - - Use consistent property names - Include relevant context -- Don't duplicate GA4 automatic properties +- Don't duplicate automatic properties - Avoid PII in properties -- Document expected values --- ## GA4 Implementation -### Configuration +### Quick Setup -**Data Streams** -- One stream per platform (web, iOS, Android) -- Enable enhanced measurement +1. Create GA4 property and data stream +2. Install gtag.js or GTM +3. Enable enhanced measurement +4. Configure custom events +5. Mark conversions in Admin -**Enhanced Measurement Events** -- page_view (automatic) -- scroll (90% depth) -- outbound_click -- site_search -- video_engagement -- file_download - -**Recommended Events** -- Use Google's predefined events when possible -- Correct naming for enhanced reporting -- See: https://support.google.com/analytics/answer/9267735 - -### Custom Events (GA4) +### Custom Event Example ```javascript -// gtag.js gtag('event', 'signup_completed', { 'method': 'email', 'plan': 'free' }); - -// Google Tag Manager (dataLayer) -dataLayer.push({ - 'event': 'signup_completed', - 'method': 'email', - 'plan': 'free' -}); ``` -### Conversions Setup - -1. Collect event in GA4 -2. Mark as conversion in Admin > Events -3. Set conversion counting (once per session or every time) -4. Import to Google Ads if needed - -### Custom Dimensions and Metrics - -**When to use:** -- Properties you want to segment by -- Metrics you want to aggregate -- Beyond standard parameters - -**Setup:** -1. Create in Admin > Custom definitions -2. Scope: Event, User, or Item -3. Parameter name must match +**For detailed GA4 implementation**: See [references/ga4-implementation.md](references/ga4-implementation.md) --- -## Google Tag Manager Implementation +## Google Tag Manager ### Container Structure -**Tags** -- GA4 Configuration (base) -- GA4 Event tags (one per event or grouped) -- Conversion pixels (Facebook, LinkedIn, etc.) - -**Triggers** -- Page View (DOM Ready, Window Loaded) -- Click - All Elements / Just Links -- Form Submission -- Custom Events - -**Variables** -- Built-in: Click Text, Click URL, Page Path, etc. -- Data Layer variables -- JavaScript variables -- Lookup tables - -### Best Practices - -- Use folders to organize -- Consistent naming (Tag_Type_Description) -- Version notes on every publish -- Preview mode for testing -- Workspaces for team collaboration +| Component | Purpose | +|-----------|---------| +| Tags | Code that executes (GA4, pixels) | +| Triggers | When tags fire (page view, click) | +| Variables | Dynamic values (click text, data layer) | ### Data Layer Pattern ```javascript -// Push custom event dataLayer.push({ 'event': 'form_submitted', 'form_name': 'contact', 'form_location': 'footer' }); - -// Set user properties -dataLayer.push({ - 'user_id': '12345', - 'user_type': 'premium' -}); - -// E-commerce event -dataLayer.push({ - 'event': 'purchase', - 'ecommerce': { - 'transaction_id': 'T12345', - 'value': 99.99, - 'currency': 'USD', - 'items': [{ - 'item_id': 'SKU123', - 'item_name': 'Product Name', - 'price': 99.99 - }] - } -}); ``` +**For detailed GTM implementation**: See [references/gtm-implementation.md](references/gtm-implementation.md) + --- ## UTM Parameter Strategy @@ -362,40 +183,17 @@ dataLayer.push({ | Parameter | Purpose | Example | |-----------|---------|---------| -| utm_source | Where traffic comes from | google, facebook, newsletter | -| utm_medium | Marketing medium | cpc, email, social, referral | -| utm_campaign | Campaign name | spring_sale, product_launch | -| utm_content | Differentiate versions | hero_cta, sidebar_link | +| utm_source | Traffic source | google, newsletter | +| utm_medium | Marketing medium | cpc, email, social | +| utm_campaign | Campaign name | spring_sale | +| utm_content | Differentiate versions | hero_cta | | utm_term | Paid search keywords | running+shoes | ### Naming Conventions - -**Lowercase everything** -- google, not Google -- email, not Email - -**Use underscores or hyphens consistently** -- product_launch or product-launch -- Pick one, stick with it - -**Be specific but concise** -- blog_footer_cta, not cta1 -- 2024_q1_promo, not promo - -### UTM Documentation - -Track all UTMs in a spreadsheet or tool: - -| Campaign | Source | Medium | Content | Full URL | Owner | Date | -|----------|--------|--------|---------|----------|-------|------| -| ... | ... | ... | ... | ... | ... | ... | - -### UTM Builder - -Provide a consistent UTM builder link to team: -- Google's URL builder -- Internal tool -- Spreadsheet formula +- Lowercase everything +- Use underscores or hyphens consistently +- Be specific but concise: `blog_footer_cta`, not `cta1` +- Document all UTMs in a spreadsheet --- @@ -403,72 +201,44 @@ Provide a consistent UTM builder link to team: ### Testing Tools -**GA4 DebugView** -- Real-time event monitoring -- Enable with ?debug_mode=true -- Or via Chrome extension - -**GTM Preview Mode** -- Test triggers and tags -- See data layer state -- Validate before publish - -**Browser Extensions** -- GA Debugger -- Tag Assistant -- dataLayer Inspector +| Tool | Use For | +|------|---------| +| GA4 DebugView | Real-time event monitoring | +| GTM Preview Mode | Test triggers before publish | +| Browser Extensions | Tag Assistant, dataLayer Inspector | ### Validation Checklist - [ ] Events firing on correct triggers - [ ] Property values populating correctly - [ ] No duplicate events -- [ ] Works across browsers -- [ ] Works on mobile +- [ ] Works across browsers and mobile - [ ] Conversions recorded correctly -- [ ] User ID passing when logged in - [ ] No PII leaking ### Common Issues -**Events not firing** -- Trigger misconfigured -- Tag paused -- GTM not loaded on page - -**Wrong values** -- Variable not configured -- Data layer not pushing correctly -- Timing issues (fire before data ready) - -**Duplicate events** -- Multiple GTM containers -- Multiple tag instances -- Trigger firing multiple times +| Issue | Check | +|-------|-------| +| Events not firing | Trigger config, GTM loaded | +| Wrong values | Variable path, data layer structure | +| Duplicate events | Multiple containers, trigger firing twice | --- ## Privacy and Compliance ### Considerations - - Cookie consent required in EU/UK/CA - No PII in analytics properties - Data retention settings - User deletion capabilities -- Cross-device tracking consent ### Implementation - -**Consent Mode (GA4)** -- Wait for consent before tracking -- Use consent mode for partial tracking -- Integrate with consent management platform - -**Data Minimization** -- Only collect what you need +- Use consent mode (wait for consent) - IP anonymization -- No PII in custom dimensions +- Only collect what you need +- Integrate with consent management platform --- @@ -476,51 +246,32 @@ Provide a consistent UTM builder link to team: ### Tracking Plan Document -``` +```markdown # [Site/Product] Tracking Plan ## Overview - Tools: GA4, GTM - Last updated: [Date] -- Owner: [Name] ## Events -### Marketing Events - | Event Name | Description | Properties | Trigger | |------------|-------------|------------|---------| -| signup_started | User initiates signup | source, page | Click signup CTA | -| signup_completed | User completes signup | method, plan | Signup success page | - -### Product Events -[Similar table] +| signup_completed | User completes signup | method, plan | Success page | ## Custom Dimensions -| Name | Scope | Parameter | Description | -|------|-------|-----------|-------------| -| user_type | User | user_type | Free, trial, paid | +| Name | Scope | Parameter | +|------|-------|-----------| +| user_type | User | user_type | ## Conversions -| Conversion | Event | Counting | Google Ads | -|------------|-------|----------|------------| -| Signup | signup_completed | Once per session | Yes | - -## UTM Convention - -[Guidelines] +| Conversion | Event | Counting | +|------------|-------|----------| +| Signup | signup_completed | Once per session | ``` -### Implementation Code - -Provide ready-to-use code snippets - -### Testing Checklist - -Specific validation steps - --- ## Task-Specific Questions diff --git a/skills/analytics-tracking/references/event-library.md b/skills/analytics-tracking/references/event-library.md new file mode 100644 index 0000000..586025e --- /dev/null +++ b/skills/analytics-tracking/references/event-library.md @@ -0,0 +1,251 @@ +# Event Library Reference + +Comprehensive list of events to track by business type and context. + +## Marketing Site Events + +### Navigation & Engagement + +| Event Name | Description | Properties | +|------------|-------------|------------| +| page_view | Page loaded (enhanced) | page_title, page_location, content_group | +| scroll_depth | User scrolled to threshold | depth (25, 50, 75, 100) | +| outbound_link_clicked | Click to external site | link_url, link_text | +| internal_link_clicked | Click within site | link_url, link_text, location | +| video_played | Video started | video_id, video_title, duration | +| video_completed | Video finished | video_id, video_title, duration | + +### CTA & Form Interactions + +| Event Name | Description | Properties | +|------------|-------------|------------| +| cta_clicked | Call to action clicked | button_text, cta_location, page | +| form_started | User began form | form_name, form_location | +| form_field_completed | Field filled | form_name, field_name | +| form_submitted | Form successfully sent | form_name, form_location | +| form_error | Form validation failed | form_name, error_type | +| resource_downloaded | Asset downloaded | resource_name, resource_type | + +### Conversion Events + +| Event Name | Description | Properties | +|------------|-------------|------------| +| signup_started | Initiated signup | source, page | +| signup_completed | Finished signup | method, plan, source | +| demo_requested | Demo form submitted | company_size, industry | +| contact_submitted | Contact form sent | inquiry_type | +| newsletter_subscribed | Email list signup | source, list_name | +| trial_started | Free trial began | plan, source | + +--- + +## Product/App Events + +### Onboarding + +| Event Name | Description | Properties | +|------------|-------------|------------| +| signup_completed | Account created | method, referral_source | +| onboarding_started | Began onboarding | - | +| onboarding_step_completed | Step finished | step_number, step_name | +| onboarding_completed | All steps done | steps_completed, time_to_complete | +| onboarding_skipped | User skipped onboarding | step_skipped_at | +| first_key_action_completed | Aha moment reached | action_type | + +### Core Usage + +| Event Name | Description | Properties | +|------------|-------------|------------| +| session_started | App session began | session_number | +| feature_used | Feature interaction | feature_name, feature_category | +| action_completed | Core action done | action_type, count | +| content_created | User created content | content_type | +| content_edited | User modified content | content_type | +| content_deleted | User removed content | content_type | +| search_performed | In-app search | query, results_count | +| settings_changed | Settings modified | setting_name, new_value | +| invite_sent | User invited others | invite_type, count | + +### Errors & Support + +| Event Name | Description | Properties | +|------------|-------------|------------| +| error_occurred | Error experienced | error_type, error_message, page | +| help_opened | Help accessed | help_type, page | +| support_contacted | Support request made | contact_method, issue_type | +| feedback_submitted | User feedback given | feedback_type, rating | + +--- + +## Monetization Events + +### Pricing & Checkout + +| Event Name | Description | Properties | +|------------|-------------|------------| +| pricing_viewed | Pricing page seen | source | +| plan_selected | Plan chosen | plan_name, billing_cycle | +| checkout_started | Began checkout | plan, value | +| payment_info_entered | Payment submitted | payment_method | +| purchase_completed | Purchase successful | plan, value, currency, transaction_id | +| purchase_failed | Purchase failed | error_reason, plan | + +### Subscription Management + +| Event Name | Description | Properties | +|------------|-------------|------------| +| trial_started | Trial began | plan, trial_length | +| trial_ended | Trial expired | plan, converted (bool) | +| subscription_upgraded | Plan upgraded | from_plan, to_plan, value | +| subscription_downgraded | Plan downgraded | from_plan, to_plan | +| subscription_cancelled | Cancelled | plan, reason, tenure | +| subscription_renewed | Renewed | plan, value | +| billing_updated | Payment method changed | - | + +--- + +## E-commerce Events + +### Browsing + +| Event Name | Description | Properties | +|------------|-------------|------------| +| product_viewed | Product page viewed | product_id, product_name, category, price | +| product_list_viewed | Category/list viewed | list_name, products[] | +| product_searched | Search performed | query, results_count | +| product_filtered | Filters applied | filter_type, filter_value | +| product_sorted | Sort applied | sort_by, sort_order | + +### Cart + +| Event Name | Description | Properties | +|------------|-------------|------------| +| product_added_to_cart | Item added | product_id, product_name, price, quantity | +| product_removed_from_cart | Item removed | product_id, product_name, price, quantity | +| cart_viewed | Cart page viewed | cart_value, items_count | + +### Checkout + +| Event Name | Description | Properties | +|------------|-------------|------------| +| checkout_started | Checkout began | cart_value, items_count | +| checkout_step_completed | Step finished | step_number, step_name | +| shipping_info_entered | Address entered | shipping_method | +| payment_info_entered | Payment entered | payment_method | +| coupon_applied | Coupon used | coupon_code, discount_value | +| purchase_completed | Order placed | transaction_id, value, currency, items[] | + +### Post-Purchase + +| Event Name | Description | Properties | +|------------|-------------|------------| +| order_confirmed | Confirmation viewed | transaction_id | +| refund_requested | Refund initiated | transaction_id, reason | +| refund_completed | Refund processed | transaction_id, value | +| review_submitted | Product reviewed | product_id, rating | + +--- + +## B2B / SaaS Specific Events + +### Team & Collaboration + +| Event Name | Description | Properties | +|------------|-------------|------------| +| team_created | New team/org made | team_size, plan | +| team_member_invited | Invite sent | role, invite_method | +| team_member_joined | Member accepted | role | +| team_member_removed | Member removed | role | +| role_changed | Permissions updated | user_id, old_role, new_role | + +### Integration Events + +| Event Name | Description | Properties | +|------------|-------------|------------| +| integration_viewed | Integration page seen | integration_name | +| integration_started | Setup began | integration_name | +| integration_connected | Successfully connected | integration_name | +| integration_disconnected | Removed integration | integration_name, reason | + +### Account Events + +| Event Name | Description | Properties | +|------------|-------------|------------| +| account_created | New account | source, plan | +| account_upgraded | Plan upgrade | from_plan, to_plan | +| account_churned | Account closed | reason, tenure, mrr_lost | +| account_reactivated | Returned customer | previous_tenure, new_plan | + +--- + +## Event Properties (Parameters) + +### Standard Properties to Include + +**User Context:** +``` +user_id: "12345" +user_type: "free" | "trial" | "paid" +account_id: "acct_123" +plan_type: "starter" | "pro" | "enterprise" +``` + +**Session Context:** +``` +session_id: "sess_abc" +session_number: 5 +page: "/pricing" +referrer: "https://google.com" +``` + +**Campaign Context:** +``` +source: "google" +medium: "cpc" +campaign: "spring_sale" +content: "hero_cta" +``` + +**Product Context (E-commerce):** +``` +product_id: "SKU123" +product_name: "Product Name" +category: "Category" +price: 99.99 +quantity: 1 +currency: "USD" +``` + +**Timing:** +``` +timestamp: "2024-01-15T10:30:00Z" +time_on_page: 45 +session_duration: 300 +``` + +--- + +## Funnel Event Sequences + +### Signup Funnel +1. signup_started +2. signup_step_completed (email) +3. signup_step_completed (password) +4. signup_completed +5. onboarding_started + +### Purchase Funnel +1. pricing_viewed +2. plan_selected +3. checkout_started +4. payment_info_entered +5. purchase_completed + +### E-commerce Funnel +1. product_viewed +2. product_added_to_cart +3. cart_viewed +4. checkout_started +5. shipping_info_entered +6. payment_info_entered +7. purchase_completed diff --git a/skills/analytics-tracking/references/ga4-implementation.md b/skills/analytics-tracking/references/ga4-implementation.md new file mode 100644 index 0000000..2cf874f --- /dev/null +++ b/skills/analytics-tracking/references/ga4-implementation.md @@ -0,0 +1,290 @@ +# GA4 Implementation Reference + +Detailed implementation guide for Google Analytics 4. + +## Configuration + +### Data Streams + +- One stream per platform (web, iOS, Android) +- Enable enhanced measurement for automatic tracking +- Configure data retention (2 months default, 14 months max) +- Enable Google Signals (for cross-device, if consented) + +### Enhanced Measurement Events (Automatic) + +| Event | Description | Configuration | +|-------|-------------|---------------| +| page_view | Page loads | Automatic | +| scroll | 90% scroll depth | Toggle on/off | +| outbound_click | Click to external domain | Automatic | +| site_search | Search query used | Configure parameter | +| video_engagement | YouTube video plays | Toggle on/off | +| file_download | PDF, docs, etc. | Configurable extensions | + +### Recommended Events + +Use Google's predefined events when possible for enhanced reporting: + +**All properties:** +- login, sign_up +- share +- search + +**E-commerce:** +- view_item, view_item_list +- add_to_cart, remove_from_cart +- begin_checkout +- add_payment_info +- purchase, refund + +**Games:** +- level_up, unlock_achievement +- post_score, spend_virtual_currency + +Reference: https://support.google.com/analytics/answer/9267735 + +--- + +## Custom Events + +### gtag.js Implementation + +```javascript +// Basic event +gtag('event', 'signup_completed', { + 'method': 'email', + 'plan': 'free' +}); + +// Event with value +gtag('event', 'purchase', { + 'transaction_id': 'T12345', + 'value': 99.99, + 'currency': 'USD', + 'items': [{ + 'item_id': 'SKU123', + 'item_name': 'Product Name', + 'price': 99.99 + }] +}); + +// User properties +gtag('set', 'user_properties', { + 'user_type': 'premium', + 'plan_name': 'pro' +}); + +// User ID (for logged-in users) +gtag('config', 'GA_MEASUREMENT_ID', { + 'user_id': 'USER_ID' +}); +``` + +### Google Tag Manager (dataLayer) + +```javascript +// Custom event +dataLayer.push({ + 'event': 'signup_completed', + 'method': 'email', + 'plan': 'free' +}); + +// Set user properties +dataLayer.push({ + 'user_id': '12345', + 'user_type': 'premium' +}); + +// E-commerce purchase +dataLayer.push({ + 'event': 'purchase', + 'ecommerce': { + 'transaction_id': 'T12345', + 'value': 99.99, + 'currency': 'USD', + 'items': [{ + 'item_id': 'SKU123', + 'item_name': 'Product Name', + 'price': 99.99, + 'quantity': 1 + }] + } +}); + +// Clear ecommerce before sending (best practice) +dataLayer.push({ ecommerce: null }); +dataLayer.push({ + 'event': 'view_item', + 'ecommerce': { + // ... + } +}); +``` + +--- + +## Conversions Setup + +### Creating Conversions + +1. **Collect the event** - Ensure event is firing in GA4 +2. **Mark as conversion** - Admin > Events > Mark as conversion +3. **Set counting method**: + - Once per session (leads, signups) + - Every event (purchases) +4. **Import to Google Ads** - For conversion-optimized bidding + +### Conversion Values + +```javascript +// Event with conversion value +gtag('event', 'purchase', { + 'value': 99.99, + 'currency': 'USD' +}); +``` + +Or set default value in GA4 Admin when marking conversion. + +--- + +## Custom Dimensions and Metrics + +### When to Use + +**Custom dimensions:** +- Properties you want to segment/filter by +- User attributes (plan type, industry) +- Content attributes (author, category) + +**Custom metrics:** +- Numeric values to aggregate +- Scores, counts, durations + +### Setup Steps + +1. Admin > Data display > Custom definitions +2. Create dimension or metric +3. Choose scope: + - **Event**: Per event (content_type) + - **User**: Per user (account_type) + - **Item**: Per product (product_category) +4. Enter parameter name (must match event parameter) + +### Examples + +| Dimension | Scope | Parameter | Description | +|-----------|-------|-----------|-------------| +| User Type | User | user_type | Free, trial, paid | +| Content Author | Event | author | Blog post author | +| Product Category | Item | item_category | E-commerce category | + +--- + +## Audiences + +### Creating Audiences + +Admin > Data display > Audiences + +**Use cases:** +- Remarketing audiences (export to Ads) +- Segment analysis +- Trigger-based events + +### Audience Examples + +**High-intent visitors:** +- Viewed pricing page +- Did not convert +- In last 7 days + +**Engaged users:** +- 3+ sessions +- Or 5+ minutes total engagement + +**Purchasers:** +- Purchase event +- For exclusion or lookalike + +--- + +## Debugging + +### DebugView + +Enable with: +- URL parameter: `?debug_mode=true` +- Chrome extension: GA Debugger +- gtag: `'debug_mode': true` in config + +View at: Reports > Configure > DebugView + +### Real-Time Reports + +Check events within 30 minutes: +Reports > Real-time + +### Common Issues + +**Events not appearing:** +- Check DebugView first +- Verify gtag/GTM firing +- Check filter exclusions + +**Parameter values missing:** +- Custom dimension not created +- Parameter name mismatch +- Data still processing (24-48 hrs) + +**Conversions not recording:** +- Event not marked as conversion +- Event name doesn't match +- Counting method (once vs. every) + +--- + +## Data Quality + +### Filters + +Admin > Data streams > [Stream] > Configure tag settings > Define internal traffic + +**Exclude:** +- Internal IP addresses +- Developer traffic +- Testing environments + +### Cross-Domain Tracking + +For multiple domains sharing analytics: + +1. Admin > Data streams > [Stream] > Configure tag settings +2. Configure your domains +3. List all domains that should share sessions + +### Session Settings + +Admin > Data streams > [Stream] > Configure tag settings + +- Session timeout (default 30 min) +- Engaged session duration (10 sec default) + +--- + +## Integration with Google Ads + +### Linking + +1. Admin > Product links > Google Ads links +2. Enable auto-tagging in Google Ads +3. Import conversions in Google Ads + +### Audience Export + +Audiences created in GA4 can be used in Google Ads for: +- Remarketing campaigns +- Customer match +- Similar audiences diff --git a/skills/analytics-tracking/references/gtm-implementation.md b/skills/analytics-tracking/references/gtm-implementation.md new file mode 100644 index 0000000..914ada1 --- /dev/null +++ b/skills/analytics-tracking/references/gtm-implementation.md @@ -0,0 +1,380 @@ +# Google Tag Manager Implementation Reference + +Detailed guide for implementing tracking via Google Tag Manager. + +## Container Structure + +### Tags + +Tags are code snippets that execute when triggered. + +**Common tag types:** +- GA4 Configuration (base setup) +- GA4 Event (custom events) +- Google Ads Conversion +- Facebook Pixel +- LinkedIn Insight Tag +- Custom HTML (for other pixels) + +### Triggers + +Triggers define when tags fire. + +**Built-in triggers:** +- Page View: All Pages, DOM Ready, Window Loaded +- Click: All Elements, Just Links +- Form Submission +- Scroll Depth +- Timer +- Element Visibility + +**Custom triggers:** +- Custom Event (from dataLayer) +- Trigger Groups (multiple conditions) + +### Variables + +Variables capture dynamic values. + +**Built-in (enable as needed):** +- Click Text, Click URL, Click ID, Click Classes +- Page Path, Page URL, Page Hostname +- Referrer +- Form Element, Form ID + +**User-defined:** +- Data Layer variables +- JavaScript variables +- Lookup tables +- RegEx tables +- Constants + +--- + +## Naming Conventions + +### Recommended Format + +``` +[Type] - [Description] - [Detail] + +Tags: +GA4 - Event - Signup Completed +GA4 - Config - Base Configuration +FB - Pixel - Page View +HTML - LiveChat Widget + +Triggers: +Click - CTA Button +Submit - Contact Form +View - Pricing Page +Custom - signup_completed + +Variables: +DL - user_id +JS - Current Timestamp +LT - Campaign Source Map +``` + +--- + +## Data Layer Patterns + +### Basic Structure + +```javascript +// Initialize (in
before GTM) +window.dataLayer = window.dataLayer || []; + +// Push event +dataLayer.push({ + 'event': 'event_name', + 'property1': 'value1', + 'property2': 'value2' +}); +``` + +### Page Load Data + +```javascript +// Set on page load (before GTM container) +window.dataLayer = window.dataLayer || []; +dataLayer.push({ + 'pageType': 'product', + 'contentGroup': 'products', + 'user': { + 'loggedIn': true, + 'userId': '12345', + 'userType': 'premium' + } +}); +``` + +### Form Submission + +```javascript +document.querySelector('#contact-form').addEventListener('submit', function() { + dataLayer.push({ + 'event': 'form_submitted', + 'formName': 'contact', + 'formLocation': 'footer' + }); +}); +``` + +### Button Click + +```javascript +document.querySelector('.cta-button').addEventListener('click', function() { + dataLayer.push({ + 'event': 'cta_clicked', + 'ctaText': this.innerText, + 'ctaLocation': 'hero' + }); +}); +``` + +### E-commerce Events + +```javascript +// Product view +dataLayer.push({ ecommerce: null }); // Clear previous +dataLayer.push({ + 'event': 'view_item', + 'ecommerce': { + 'items': [{ + 'item_id': 'SKU123', + 'item_name': 'Product Name', + 'price': 99.99, + 'item_category': 'Category', + 'quantity': 1 + }] + } +}); + +// Add to cart +dataLayer.push({ ecommerce: null }); +dataLayer.push({ + 'event': 'add_to_cart', + 'ecommerce': { + 'items': [{ + 'item_id': 'SKU123', + 'item_name': 'Product Name', + 'price': 99.99, + 'quantity': 1 + }] + } +}); + +// Purchase +dataLayer.push({ ecommerce: null }); +dataLayer.push({ + 'event': 'purchase', + 'ecommerce': { + 'transaction_id': 'T12345', + 'value': 99.99, + 'currency': 'USD', + 'tax': 5.00, + 'shipping': 10.00, + 'items': [{ + 'item_id': 'SKU123', + 'item_name': 'Product Name', + 'price': 99.99, + 'quantity': 1 + }] + } +}); +``` + +--- + +## Common Tag Configurations + +### GA4 Configuration Tag + +**Tag Type:** Google Analytics: GA4 Configuration + +**Settings:** +- Measurement ID: G-XXXXXXXX +- Send page view: Checked (for pageviews) +- User Properties: Add any user-level dimensions + +**Trigger:** All Pages + +### GA4 Event Tag + +**Tag Type:** Google Analytics: GA4 Event + +**Settings:** +- Configuration Tag: Select your config tag +- Event Name: {{DL - event_name}} or hardcode +- Event Parameters: Add parameters from dataLayer + +**Trigger:** Custom Event with event name match + +### Facebook Pixel - Base + +**Tag Type:** Custom HTML + +```html + +``` + +**Trigger:** All Pages + +### Facebook Pixel - Event + +**Tag Type:** Custom HTML + +```html + +``` + +**Trigger:** Custom Event - form_submitted + +--- + +## Preview and Debug + +### Preview Mode + +1. Click "Preview" in GTM +2. Enter site URL +3. GTM debug panel opens at bottom + +**What to check:** +- Tags fired on this event +- Tags not fired (and why) +- Variables and their values +- Data layer contents + +### Debug Tips + +**Tag not firing:** +- Check trigger conditions +- Verify data layer push +- Check tag sequencing + +**Wrong variable value:** +- Check data layer structure +- Verify variable path (nested objects) +- Check timing (data may not exist yet) + +**Multiple firings:** +- Check trigger uniqueness +- Look for duplicate tags +- Check tag firing options + +--- + +## Workspaces and Versioning + +### Workspaces + +Use workspaces for team collaboration: +- Default workspace for production +- Separate workspaces for large changes +- Merge when ready + +### Version Management + +**Best practices:** +- Name every version descriptively +- Add notes explaining changes +- Review changes before publish +- Keep production version noted + +**Version notes example:** +``` +v15: Added purchase conversion tracking +- New tag: GA4 - Event - Purchase +- New trigger: Custom Event - purchase +- New variables: DL - transaction_id, DL - value +- Tested: Chrome, Safari, Mobile +``` + +--- + +## Consent Management + +### Consent Mode Integration + +```javascript +// Default state (before consent) +gtag('consent', 'default', { + 'analytics_storage': 'denied', + 'ad_storage': 'denied' +}); + +// Update on consent +function grantConsent() { + gtag('consent', 'update', { + 'analytics_storage': 'granted', + 'ad_storage': 'granted' + }); +} +``` + +### GTM Consent Overview + +1. Enable Consent Overview in Admin +2. Configure consent for each tag +3. Tags respect consent state automatically + +--- + +## Advanced Patterns + +### Tag Sequencing + +**Setup tags to fire in order:** +Tag Configuration > Advanced Settings > Tag Sequencing + +**Use cases:** +- Config tag before event tags +- Pixel initialization before tracking +- Cleanup after conversion + +### Exception Handling + +**Trigger exceptions** - Prevent tag from firing: +- Exclude certain pages +- Exclude internal traffic +- Exclude during testing + +### Custom JavaScript Variables + +```javascript +// Get URL parameter +function() { + var params = new URLSearchParams(window.location.search); + return params.get('campaign') || '(not set)'; +} + +// Get cookie value +function() { + var match = document.cookie.match('(^|;) ?user_id=([^;]*)(;|$)'); + return match ? match[2] : null; +} + +// Get data from page +function() { + var el = document.querySelector('.product-price'); + return el ? parseFloat(el.textContent.replace('$', '')) : 0; +} +``` diff --git a/skills/copywriting/SKILL.md b/skills/copywriting/SKILL.md index 74f3c23..289f351 100644 --- a/skills/copywriting/SKILL.md +++ b/skills/copywriting/SKILL.md @@ -15,14 +15,12 @@ If `.claude/product-marketing-context.md` exists, read it before asking question Gather this context (ask if not provided): ### 1. Page Purpose -- What type of page is this? (homepage, landing page, pricing, feature, about) +- What type of page? (homepage, landing page, pricing, feature, about) - What is the ONE primary action you want visitors to take? -- What's the secondary action (if any)? ### 2. Audience -- Who is the ideal customer for this page? +- Who is the ideal customer? - What problem are they trying to solve? -- What have they already tried? - What objections or hesitations do they have? - What language do they use to describe their problem? @@ -35,66 +33,49 @@ Gather this context (ask if not provided): ### 4. Context - Where is traffic coming from? (ads, organic, email) - What do visitors already know before arriving? -- What messaging are they seeing before this page? --- ## Copywriting Principles ### Clarity Over Cleverness -- If you have to choose between clear and creative, choose clear -- Every sentence should have one job -- Remove words that don't add meaning +If you have to choose between clear and creative, choose clear. ### Benefits Over Features -- Features: What it does -- Benefits: What that means for the customer -- Always connect features to outcomes +Features: What it does. Benefits: What that means for the customer. ### Specificity Over Vagueness - Vague: "Save time on your workflow" - Specific: "Cut your weekly reporting from 4 hours to 15 minutes" ### Customer Language Over Company Language -- Use words your customers use -- Avoid jargon unless your audience uses it -- Mirror voice-of-customer from reviews, interviews, support tickets +Use words your customers use. Mirror voice-of-customer from reviews, interviews, support tickets. ### One Idea Per Section -- Don't try to say everything everywhere -- Each section should advance one argument -- Build a logical flow down the page +Each section should advance one argument. Build a logical flow down the page. --- ## Writing Style Rules -Follow these core principles. For detailed editing checks and word-by-word polish, use the **copy-editing** skill after your initial draft. +### Core Principles -### Core Style Principles - -1. **Simple over complex** — Use everyday words. "Use" instead of "utilize," "help" instead of "facilitate." - -2. **Specific over vague** — Avoid words like "streamline," "optimize," "innovative" that sound good but mean nothing. - -3. **Active over passive** — "We generate reports" not "Reports are generated." - -4. **Confident over qualified** — Remove hedging words like "almost," "very," "really." - -5. **Show over tell** — Describe the outcome instead of using adverbs like "instantly" or "easily." - -6. **Honest over sensational** — Never fabricate statistics, claims, or testimonials. +1. **Simple over complex** — "Use" not "utilize," "help" not "facilitate" +2. **Specific over vague** — Avoid "streamline," "optimize," "innovative" +3. **Active over passive** — "We generate reports" not "Reports are generated" +4. **Confident over qualified** — Remove "almost," "very," "really" +5. **Show over tell** — Describe the outcome instead of using adverbs +6. **Honest over sensational** — Never fabricate statistics or testimonials ### Quick Quality Check -Before finalizing, scan for: -- Jargon that could confuse outsiders -- Sentences trying to do too much (max 3 conjunctions) -- Passive voice constructions -- Exclamation points (remove them) -- Marketing buzzwords without substance +- Jargon that could confuse outsiders? +- Sentences trying to do too much? +- Passive voice constructions? +- Exclamation points? (remove them) +- Marketing buzzwords without substance? -For a thorough line-by-line review, run the copy through the **copy-editing** skill's Seven Sweeps framework. +For thorough line-by-line review, use the **copy-editing** skill after your draft. --- @@ -109,252 +90,71 @@ Get to the point. Don't bury the value in qualifications. ### Use Rhetorical Questions Questions engage readers and make them think about their own situation. +- "Hate returning stuff to Amazon?" +- "Tired of chasing approvals?" -✅ Hate returning stuff to Amazon? - -✅ Need to share a screenshot? - -✅ Tired of chasing approvals? - -### Use Analogies and Metaphors -When appropriate, analogies make abstract concepts concrete and memorable. - -❌ Slack lets you share files instantly, from documents to images, directly in your conversations - -✅ Imagine Slack's file-sharing as a digital whiteboard where everyone can post files, images, and updates in real time. +### Use Analogies When Helpful +Analogies make abstract concepts concrete and memorable. ### Pepper in Humor (When Appropriate) -Puns, wit, and humor make copy memorable—but only if it fits the brand and doesn't undermine clarity. +Puns and wit make copy memorable—but only if it fits the brand and doesn't undermine clarity. --- ## Page Structure Framework -### Above the Fold (First Screen) +### Above the Fold **Headline** - Your single most important message -- Should communicate core value proposition +- Communicate core value proposition - Specific > generic -**Headline Formulas:** +**Example formulas:** +- "{Achieve outcome} without {pain point}" +- "The {category} for {audience}" +- "Never {unpleasant event} again" +- "{Question highlighting main pain point}" -**{Achieve desirable outcome} without {pain point}** -*Example: Understand how users are really experiencing your site without drowning in numbers* - -**The {opposite of usual process} way to {achieve desirable outcome}** -*Example: The easiest way to turn your passion into income* - -**Never {unpleasant event} again** -*Example: Never miss a sales opportunity again* - -**{Key feature/product type} for {target audience}** -*Example: Advanced analytics for Shopify e-commerce* - -**{Key feature/product type} for {target audience} to {what it's used for}** -*Example: An online whiteboard for teams to ideate and brainstorm together* - -**You don't have to {skills or resources} to {achieve desirable outcome}** -*Example: With Ahrefs, you don't have to be an SEO pro to rank higher and get more traffic* - -**{Achieve desirable outcome} by {how product makes it possible}** -*Example: Generate more leads by seeing which companies visit your site* - -**{Key benefit of your product}** -*Example: Sound clear in online meetings* - -**{Question highlighting the main pain point}** -*Example: Hate returning stuff to Amazon?* - -**Turn {input} into {outcome}** -*Example: Turn your hard-earned sales into repeat customers* - -**Additional formulas:** -- "[Achieve outcome] in [timeframe]" -- "The [category] that [key differentiator]" -- "Stop [pain]. Start [pleasure]." -- "[Number] [people] use [product] to [outcome]" +**For comprehensive headline formulas**: See [references/copy-frameworks.md](references/copy-frameworks.md) **Subheadline** -- Expands on the headline -- Adds specificity or addresses secondary concern +- Expands on headline +- Adds specificity - 1-2 sentences max **Primary CTA** - Action-oriented button text -- Communicate what they get, not what they do -- "Start Free Trial" > "Sign Up" -- "Get Your Report" > "Submit" +- Communicate what they get: "Start Free Trial" > "Sign Up" -**Supporting Visual** -- Product screenshot, demo, or hero image -- Should reinforce the message, not distract +### Core Sections -### Social Proof Section +| Section | Purpose | +|---------|---------| +| Social Proof | Build credibility (logos, stats, testimonials) | +| Problem/Pain | Show you understand their situation | +| Solution/Benefits | Connect to outcomes (3-5 key benefits) | +| How It Works | Reduce perceived complexity (3-4 steps) | +| Objection Handling | FAQ, comparisons, guarantees | +| Final CTA | Recap value, repeat CTA, risk reversal | -Options (use 1-2): -- Customer logos (recognizable > many) -- Key metric ("10,000+ teams") -- Short testimonial with attribution -- Star rating with review count - -### Problem/Pain Section - -- Articulate the problem better than they can -- Show you understand their situation -- Create recognition ("that's exactly my problem") - -Structure: -- "You know the feeling..." or "If you're like most [role]..." -- Describe the specific frustrations -- Hint at the cost of not solving it - -### Solution/Benefits Section - -- Bridge from problem to your solution -- Focus on 3-5 key benefits (not 10) -- Each benefit: headline + short explanation + proof point if available - -Format options: -- Benefit blocks with icons -- Before/after comparison -- Feature → Benefit → Proof structure - -### How It Works Section - -- Reduce perceived complexity -- 3-4 step process -- Each step: simple action + outcome - -Example: -1. "Connect your tools (2 minutes)" -2. "Set your preferences" -3. "Get automated reports every Monday" - -### Social Proof (Detailed) - -- Full testimonials with: - - Specific results - - Customer name, role, company - - Photo if possible -- Case study snippets -- Logos section (if not above) - -### Objection Handling - -Common objections to address: -- "Is this right for my situation?" -- "What if it doesn't work?" -- "Is it hard to set up?" -- "How is this different from X?" - -Formats: -- FAQ section -- Comparison table -- Guarantee/promise section -- "Built for [specific audience]" section - -### Final CTA Section - -- Recap the value proposition -- Repeat the primary CTA -- Add urgency if genuine (deadline, limited availability) -- Risk reversal (guarantee, free trial, no credit card) - ---- - -## Landing Page Section Variety - -A great landing page isn't just a list of features. Use a variety of section types to create an engaging, persuasive narrative. Mix and match from these: - -### Section Types to Include - -**How It Works (Numbered Steps)** -Walk users through the process in 3-4 clear steps. Reduces perceived complexity and shows the path to value. - -**Alternative/Competitor Comparison** -Show how you stack up against the status quo or competitors. Tables, side-by-side comparisons, or "Unlike X, we..." sections. - -**Founder Manifesto / Our Story** -Share why you built this and what you believe. Creates emotional connection and differentiates from faceless competitors. - -**Testimonials** -Customer quotes with names, photos, and specific results. Multiple formats: quote cards, video testimonials, tweet embeds. - -**Case Studies** -Deeper stories of customer success. Problem → Solution → Results format with specific metrics. - -**Use Cases** -Show different ways the product is used. Helps visitors self-identify: "This is for people like me." - -**Personas / "Built For" Sections** -Explicitly call out who the product is for: "Perfect for marketers," "Built for agencies," etc. - -**Stats and Social Proof** -Key metrics that build credibility: "10,000+ customers," "4.9/5 rating," "$2M saved for customers." - -**Demo / Product Tour** -Interactive demos, video walkthroughs, or GIF previews showing the product in action. - -**FAQ Section** -Address common objections and questions. Good for SEO and reducing support burden. - -**Integrations / Partners** -Show what tools you connect with. Logos build credibility and answer "Will this work with my stack?" - -**Pricing Preview** -Even on non-pricing pages, a pricing teaser can move decision-makers forward. - -**Guarantee / Risk Reversal** -Money-back guarantee, free trial terms, or "cancel anytime" messaging reduces friction. - -### Recommended Section Mix - -For a landing page, aim for variety. Don't just stack features: - -**Typical Feature-Heavy Page (Weak):** -1. Hero -2. Feature 1 -3. Feature 2 -4. Feature 3 -5. Feature 4 -6. CTA - -**Varied, Engaging Page (Strong):** -1. Hero with clear value prop -2. Social proof bar (logos or stats) -3. Problem/pain section -4. How it works (3 steps) -5. Key benefits (2-3, not 10) -6. Testimonial -7. Use cases or personas -8. Comparison to alternatives -9. Case study snippet -10. FAQ -11. Final CTA with guarantee +**For detailed section types and page templates**: See [references/copy-frameworks.md](references/copy-frameworks.md) --- ## CTA Copy Guidelines **Weak CTAs (avoid):** -- Submit -- Sign Up -- Learn More -- Click Here -- Get Started +- Submit, Sign Up, Learn More, Click Here, Get Started **Strong CTAs (use):** - Start Free Trial - Get [Specific Thing] - See [Product] in Action - Create Your First [Thing] -- Book My Demo - Download the Guide -- Try It Free -**CTA formula:** -[Action Verb] + [What They Get] + [Qualifier if needed] +**Formula:** [Action Verb] + [What They Get] + [Qualifier if needed] Examples: - "Start My Free Trial" @@ -363,72 +163,36 @@ Examples: --- -## Output Format - -When writing copy, provide: - -### Page Copy -Organized by section with clear labels: -- Headline -- Subheadline -- CTA -- Section headers -- Body copy -- Secondary CTAs - -### Annotations -For key elements, explain: -- Why you made this choice -- What principle it applies -- Alternatives considered - -### Alternatives -For headlines and CTAs, provide 2-3 options: -- Option A: [copy] — [rationale] -- Option B: [copy] — [rationale] -- Option C: [copy] — [rationale] - -### Meta Content (if relevant) -- Page title (for SEO) -- Meta description - ---- - ## Page-Specific Guidance -### Homepage Copy +### Homepage - Serve multiple audiences without being generic - Lead with broadest value proposition - Provide clear paths for different visitor intents -- Balance "ready to buy" and "still researching" -### Landing Page Copy +### Landing Page - Single message, single CTA - Match headline to ad/traffic source - Complete argument on one page -- Remove distractions (often no nav) -### Pricing Page Copy +### Pricing Page - Help visitors choose the right plan -- Clarify what's included at each level - Address "which is right for me?" anxiety - Make recommended plan obvious -### Feature Page Copy -- Connect feature to benefit to outcome +### Feature Page +- Connect feature → benefit → outcome - Show use cases and examples -- Differentiate from competitors' versions - Clear path to try or buy -### About Page Copy +### About Page - Tell the story of why you exist -- Connect company mission to customer benefit -- Build trust through transparency -- Still include a CTA (it's still a marketing page) +- Connect mission to customer benefit +- Still include a CTA --- -## Voice and Tone Considerations +## Voice and Tone Before writing, establish: @@ -442,17 +206,43 @@ Before writing, establish: - Bold or understated? - Technical or accessible? -Maintain consistency throughout, but adjust intensity: +Maintain consistency, but adjust intensity: - Headlines can be bolder - Body copy should be clearer - CTAs should be action-oriented --- +## Output Format + +When writing copy, provide: + +### Page Copy +Organized by section: +- Headline, Subheadline, CTA +- Section headers and body copy +- Secondary CTAs + +### Annotations +For key elements, explain: +- Why you made this choice +- What principle it applies + +### Alternatives +For headlines and CTAs, provide 2-3 options: +- Option A: [copy] — [rationale] +- Option B: [copy] — [rationale] + +### Meta Content (if relevant) +- Page title (for SEO) +- Meta description + +--- + ## Related Skills -- **copy-editing**: For polishing and improving existing copy (use after writing your first draft) -- **page-cro**: If the page structure/strategy needs work, not just copy +- **copy-editing**: For polishing existing copy (use after your draft) +- **page-cro**: If page structure/strategy needs work, not just copy - **email-sequence**: For email copywriting - **popup-cro**: For popup and modal copy -- **ab-test-setup**: To test copy variations properly +- **ab-test-setup**: To test copy variations diff --git a/skills/copywriting/references/copy-frameworks.md b/skills/copywriting/references/copy-frameworks.md new file mode 100644 index 0000000..9957b96 --- /dev/null +++ b/skills/copywriting/references/copy-frameworks.md @@ -0,0 +1,338 @@ +# Copy Frameworks Reference + +Headline formulas, page section types, and structural templates. + +## Headline Formulas + +### Outcome-Focused + +**{Achieve desirable outcome} without {pain point}** +> Understand how users are really experiencing your site without drowning in numbers + +**{Achieve desirable outcome} by {how product makes it possible}** +> Generate more leads by seeing which companies visit your site + +**Turn {input} into {outcome}** +> Turn your hard-earned sales into repeat customers + +**[Achieve outcome] in [timeframe]** +> Get your tax refund in 10 days + +--- + +### Problem-Focused + +**Never {unpleasant event} again** +> Never miss a sales opportunity again + +**{Question highlighting the main pain point}** +> Hate returning stuff to Amazon? + +**Stop [pain]. Start [pleasure].** +> Stop chasing invoices. Start getting paid on time. + +--- + +### Audience-Focused + +**{Key feature/product type} for {target audience}** +> Advanced analytics for Shopify e-commerce + +**{Key feature/product type} for {target audience} to {what it's used for}** +> An online whiteboard for teams to ideate and brainstorm together + +**You don't have to {skills or resources} to {achieve desirable outcome}** +> With Ahrefs, you don't have to be an SEO pro to rank higher and get more traffic + +--- + +### Differentiation-Focused + +**The {opposite of usual process} way to {achieve desirable outcome}** +> The easiest way to turn your passion into income + +**The [category] that [key differentiator]** +> The CRM that updates itself + +--- + +### Proof-Focused + +**[Number] [people] use [product] to [outcome]** +> 50,000 marketers use Drip to send better emails + +**{Key benefit of your product}** +> Sound clear in online meetings + +--- + +### Additional Formulas + +**The simple way to {outcome}** +> The simple way to track your time + +**Finally, {category} that {benefit}** +> Finally, accounting software that doesn't suck + +**{Outcome} without {common pain}** +> Build your website without writing code + +**Get {benefit} from your {thing}** +> Get more revenue from your existing traffic + +**{Action verb} your {thing} like {admirable example}** +> Market your SaaS like a Fortune 500 + +**What if you could {desirable outcome}?** +> What if you could close deals 30% faster? + +**Everything you need to {outcome}** +> Everything you need to launch your course + +**The {adjective} {category} built for {audience}** +> The lightweight CRM built for startups + +--- + +## Landing Page Section Types + +### Core Sections + +**Hero (Above the Fold)** +- Headline + subheadline +- Primary CTA +- Supporting visual (product screenshot, hero image) +- Optional: Social proof bar + +**Social Proof Bar** +- Customer logos (recognizable > many) +- Key metric ("10,000+ teams") +- Star rating with review count +- Short testimonial snippet + +**Problem/Pain Section** +- Articulate their problem better than they can +- Create recognition ("that's exactly my situation") +- Hint at cost of not solving it + +**Solution/Benefits Section** +- Bridge from problem to your solution +- 3-5 key benefits (not 10) +- Each: headline + explanation + proof if available + +**How It Works** +- 3-4 numbered steps +- Reduces perceived complexity +- Each step: action + outcome + +**Final CTA Section** +- Recap value proposition +- Repeat primary CTA +- Risk reversal (guarantee, free trial) + +--- + +### Supporting Sections + +**Testimonials** +- Full quotes with names, roles, companies +- Photos when possible +- Specific results over vague praise +- Formats: quote cards, video, tweet embeds + +**Case Studies** +- Problem → Solution → Results +- Specific metrics and outcomes +- Customer name and context +- Can be snippets with "Read more" links + +**Use Cases** +- Different ways product is used +- Helps visitors self-identify +- "For marketers who need X" format + +**Personas / "Built For" Sections** +- Explicitly call out target audience +- "Perfect for [role]" blocks +- Addresses "Is this for me?" question + +**FAQ Section** +- Address common objections +- Good for SEO +- Reduces support burden +- 5-10 most common questions + +**Comparison Section** +- vs. competitors (name them or don't) +- vs. status quo (spreadsheets, manual processes) +- Tables or side-by-side format + +**Integrations / Partners** +- Logos of tools you connect with +- "Works with your stack" messaging +- Builds credibility + +**Founder Story / Manifesto** +- Why you built this +- What you believe +- Emotional connection +- Differentiates from faceless competitors + +**Demo / Product Tour** +- Interactive demos +- Video walkthroughs +- GIF previews +- Shows product in action + +**Pricing Preview** +- Teaser even on non-pricing pages +- Starting price or "from $X/mo" +- Moves decision-makers forward + +**Guarantee / Risk Reversal** +- Money-back guarantee +- Free trial terms +- "Cancel anytime" +- Reduces friction + +**Stats Section** +- Key metrics that build credibility +- "10,000+ customers" +- "4.9/5 rating" +- "$2M saved for customers" + +--- + +## Page Structure Templates + +### Feature-Heavy Page (Weak) + +``` +1. Hero +2. Feature 1 +3. Feature 2 +4. Feature 3 +5. Feature 4 +6. CTA +``` + +This is a list, not a persuasive narrative. + +--- + +### Varied, Engaging Page (Strong) + +``` +1. Hero with clear value prop +2. Social proof bar (logos or stats) +3. Problem/pain section +4. How it works (3 steps) +5. Key benefits (2-3, not 10) +6. Testimonial +7. Use cases or personas +8. Comparison to alternatives +9. Case study snippet +10. FAQ +11. Final CTA with guarantee +``` + +This tells a story and addresses objections. + +--- + +### Compact Landing Page + +``` +1. Hero (headline, subhead, CTA, image) +2. Social proof bar +3. 3 key benefits with icons +4. Testimonial +5. How it works (3 steps) +6. Final CTA with guarantee +``` + +Good for ad landing pages where brevity matters. + +--- + +### Enterprise/B2B Landing Page + +``` +1. Hero (outcome-focused headline) +2. Logo bar (recognizable companies) +3. Problem section (business pain) +4. Solution overview +5. Use cases by role/department +6. Security/compliance section +7. Integration logos +8. Case study with metrics +9. ROI/value section +10. Contact/demo CTA +``` + +Addresses enterprise buyer concerns. + +--- + +### Product Launch Page + +``` +1. Hero with launch announcement +2. Video demo or walkthrough +3. Feature highlights (3-5) +4. Before/after comparison +5. Early testimonials +6. Launch pricing or early access offer +7. CTA with urgency +``` + +Good for ProductHunt, launches, or announcements. + +--- + +## Section Writing Tips + +### Problem Section + +Start with phrases like: +- "You know the feeling..." +- "If you're like most [role]..." +- "Every day, [audience] struggles with..." +- "We've all been there..." + +Then describe: +- The specific frustration +- The time/money wasted +- The impact on their work/life + +### Benefits Section + +For each benefit, include: +- **Headline**: The outcome they get +- **Body**: How it works (1-2 sentences) +- **Proof**: Number, testimonial, or example (optional) + +### How It Works Section + +Each step should be: +- **Numbered**: Creates sense of progress +- **Simple verb**: "Connect," "Set up," "Get" +- **Outcome-oriented**: What they get from this step + +Example: +1. Connect your tools (takes 2 minutes) +2. Set your preferences +3. Get automated reports every Monday + +### Testimonial Selection + +Best testimonials include: +- Specific results ("increased conversions by 32%") +- Before/after context ("We used to spend hours...") +- Role + company for credibility +- Something quotable and specific + +Avoid testimonials that just say: +- "Great product!" +- "Love it!" +- "Easy to use!" diff --git a/skills/onboarding-cro/SKILL.md b/skills/onboarding-cro/SKILL.md index 6abdb6e..d9d3264 100644 --- a/skills/onboarding-cro/SKILL.md +++ b/skills/onboarding-cro/SKILL.md @@ -14,60 +14,40 @@ If `.claude/product-marketing-context.md` exists, read it before asking question Before providing recommendations, understand: -1. **Product Context** - - What type of product? (SaaS tool, marketplace, app, etc.) - - B2B or B2C? - - What's the core value proposition? - -2. **Activation Definition** - - What's the "aha moment" for your product? - - What action indicates a user "gets it"? - - What's your current activation rate? - -3. **Current State** - - What happens immediately after signup? - - Is there an existing onboarding flow? - - Where do users currently drop off? +1. **Product Context** - What type of product? B2B or B2C? Core value proposition? +2. **Activation Definition** - What's the "aha moment"? What action indicates a user "gets it"? +3. **Current State** - What happens after signup? Where do users drop off? --- ## Core Principles ### 1. Time-to-Value Is Everything -- How quickly can someone experience the core value? -- Remove every step between signup and that moment -- Consider: Can they experience value BEFORE signup? +Remove every step between signup and experiencing core value. ### 2. One Goal Per Session -- Don't try to teach everything at once -- Focus first session on one successful outcome -- Save advanced features for later +Focus first session on one successful outcome. Save advanced features for later. ### 3. Do, Don't Show -- Interactive > Tutorial -- Doing the thing > Learning about the thing -- Show UI in context of real tasks +Interactive > Tutorial. Doing the thing > Learning about the thing. ### 4. Progress Creates Motivation -- Show advancement -- Celebrate completions -- Make the path visible +Show advancement. Celebrate completions. Make the path visible. --- ## Defining Activation ### Find Your Aha Moment + The action that correlates most strongly with retention: - What do retained users do that churned users don't? - What's the earliest indicator of future engagement? -- What action demonstrates they "got it"? **Examples by product type:** - Project management: Create first project + add team member - Analytics: Install tracking + see first report - Design tool: Create first design + export/share -- Collaboration: Invite first teammate - Marketplace: Complete first transaction ### Activation Metrics @@ -82,18 +62,11 @@ The action that correlates most strongly with retention: ### Immediate Post-Signup (First 30 Seconds) -**Options:** -1. **Product-first**: Drop directly into product - - Best for: Simple products, B2C, mobile apps - - Risk: Blank slate overwhelm - -2. **Guided setup**: Short wizard to configure - - Best for: Products needing personalization - - Risk: Adds friction before value - -3. **Value-first**: Show outcome immediately - - Best for: Products with demo data or samples - - Risk: May not feel "real" +| Approach | Best For | Risk | +|----------|----------|------| +| Product-first | Simple products, B2C, mobile | Blank slate overwhelm | +| Guided setup | Products needing personalization | Adds friction before value | +| Value-first | Products with demo data | May not feel "real" | **Whatever you choose:** - Clear single next action @@ -115,19 +88,6 @@ The action that correlates most strongly with retention: - Celebration on completion - Dismiss option (don't trap users) -**Checklist item structure:** -- Clear action verb -- Benefit hint -- Estimated time -- Quick-start capability - -Example: -``` -☐ Connect your first data source (2 min) - Get real-time insights from your existing tools - [Connect Now] -``` - ### Empty States Empty states are onboarding opportunities, not dead ends. @@ -138,44 +98,14 @@ Empty states are onboarding opportunities, not dead ends. - Clear primary action to add first item - Optional: Pre-populate with example data -**Structure:** -1. Illustration or preview -2. Brief explanation of value -3. Primary CTA to add first item -4. Optional: Secondary action (import, template) - ### Tooltips and Guided Tours -**When to use:** -- Complex UI that benefits from orientation -- Features that aren't self-evident -- Power features users might miss - -**When to avoid:** -- Simple, intuitive interfaces -- Mobile apps (limited screen space) -- When they interrupt important flows +**When to use:** Complex UI, features that aren't self-evident, power features users might miss **Best practices:** - Max 3-5 steps per tour -- Point to actual UI elements - Dismissable at any time - Don't repeat for returning users -- Consider user-initiated tours - -### Progress Indicators - -**Types:** -- Checklist (discrete tasks) -- Progress bar (% complete) -- Level/stage indicator -- Profile completeness - -**Best practices:** -- Show early progress (start at 20%, not 0%) -- Quick early wins (first items easy to complete) -- Clear benefit of completing -- Don't block features behind completion --- @@ -188,83 +118,40 @@ Empty states are onboarding opportunities, not dead ends. - Incomplete onboarding (24h, 72h) - Activation achieved (celebration + next step) - Feature discovery (days 3, 7, 14) -- Stalled user re-engagement **Email should:** -- Reinforce in-app actions -- Not duplicate in-app messaging +- Reinforce in-app actions, not duplicate them - Drive back to product with specific CTA - Be personalized based on actions taken -### Push Notifications (Mobile) - -- Permission timing is critical (not immediately) -- Clear value proposition for enabling -- Reserve for genuine value moments -- Re-engagement for stalled users - ---- - -## Engagement Loops - -### Building Habits -- What regular action should users take? -- What trigger can prompt return? -- What reward reinforces the behavior? - -**Loop structure:** -Trigger → Action → Variable Reward → Investment - -**Examples:** -- Trigger: Email digest of activity -- Action: Log in to respond -- Reward: Social engagement, progress, achievement -- Investment: Add more data, connections, content - -### Milestone Celebrations -- Acknowledge meaningful achievements -- Show progress relative to journey -- Suggest next milestone -- Shareable moments (social proof generation) - --- ## Handling Stalled Users ### Detection -- Define "stalled" criteria (X days inactive, incomplete setup) -- Monitor at cohort level -- Track recovery rate +Define "stalled" criteria (X days inactive, incomplete setup) ### Re-engagement Tactics -1. **Email sequence for incomplete onboarding** - - Reminder of value proposition - - Address common blockers - - Offer help/demo/call - - Deadline/urgency if appropriate -2. **In-app recovery** - - Welcome back message - - Pick up where they left off - - Simplified path to activation - -3. **Human touch** - - For high-value accounts: personal outreach - - Offer live walkthrough - - Ask what's blocking them +1. **Email sequence** - Reminder of value, address blockers, offer help +2. **In-app recovery** - Welcome back, pick up where left off +3. **Human touch** - For high-value accounts, personal outreach --- ## Measurement ### Key Metrics -- **Activation rate**: % reaching activation event -- **Time to activation**: How long to first value -- **Onboarding completion**: % completing setup -- **Day 1/7/30 retention**: Return rate by timeframe -- **Feature adoption**: Which features get used + +| Metric | Description | +|--------|-------------| +| Activation rate | % reaching activation event | +| Time to activation | How long to first value | +| Onboarding completion | % completing setup | +| Day 1/7/30 retention | Return rate by timeframe | ### Funnel Analysis + Track drop-off at each step: ``` Signup → Step 1 → Step 2 → Activation → Retention @@ -278,142 +165,38 @@ Identify biggest drops and focus there. ## Output Format ### Onboarding Audit -For each issue: -- **Finding**: What's happening -- **Impact**: Why it matters -- **Recommendation**: Specific fix -- **Priority**: High/Medium/Low +For each issue: Finding → Impact → Recommendation → Priority ### Onboarding Flow Design -- **Activation goal**: What they should achieve -- **Step-by-step flow**: Each screen/state -- **Checklist items**: If applicable -- **Empty states**: Copy and CTA -- **Email sequence**: Triggers and content -- **Metrics plan**: What to measure - -### Copy Deliverables -- Welcome screen copy -- Checklist items with microcopy +- Activation goal +- Step-by-step flow +- Checklist items (if applicable) - Empty state copy -- Tooltip content -- Email sequence copy -- Milestone celebration copy +- Email sequence triggers +- Metrics plan --- ## Common Patterns by Product Type -### B2B SaaS Tool -1. Short setup wizard (use case selection) -2. First value-generating action -3. Team invitation prompt -4. Checklist for deeper setup - -### Marketplace/Platform -1. Complete profile -2. First search/browse -3. First transaction -4. Repeat engagement loop - -### Mobile App -1. Permission requests (strategic timing) -2. Quick win in first session -3. Push notification setup -4. Habit loop establishment - -### Content/Social Platform -1. Follow/customize feed -2. First content consumption -3. First content creation -4. Social connection/engagement +| Product Type | Key Steps | +|--------------|-----------| +| B2B SaaS | Setup wizard → First value action → Team invite → Deep setup | +| Marketplace | Complete profile → Browse → First transaction → Repeat loop | +| Mobile App | Permissions → Quick win → Push setup → Habit loop | +| Content Platform | Follow/customize → Consume → Create → Engage | --- ## Experiment Ideas -### Flow Simplification Experiments +When recommending experiments, consider tests for: +- Flow simplification (step count, ordering) +- Progress and motivation mechanics +- Personalization by role or goal +- Support and help availability -**Reduce Friction** -- Add or remove email verification during onboarding -- Test empty states vs. pre-populated dummy data -- Provide pre-filled templates to accelerate setup -- Add OAuth options for faster account linking -- Reduce number of required onboarding steps - -**Step Sequencing** -- Test different ordering of onboarding steps -- Lead with highest-value features first -- Move friction-heavy steps later in flow -- Test required vs. optional step balance - -**Progress & Motivation** -- Add progress bars or completion percentages -- Test onboarding checklists (3-5 items vs. 5-7 items) -- Gamify milestones with badges or rewards -- Show "X% complete" messaging - ---- - -### Guided Experience Experiments - -**Product Tours** -- Add interactive product tours (Navattic, Storylane) -- Test tooltip-based guidance vs. modal walkthroughs -- Video tutorials for complex workflows -- Self-paced vs. guided tour options - -**CTA Optimization** -- Test CTA text variations during onboarding -- Test CTA placement within onboarding screens -- Add in-app tooltips for advanced features -- Sticky CTAs that persist during onboarding - ---- - -### Personalization Experiments - -**User Segmentation** -- Segment users by role to show relevant features -- Segment by goal to customize onboarding path -- Create role-specific dashboards -- Ask use-case question to personalize flow - -**Dynamic Content** -- Personalized welcome messages -- Industry-specific examples and templates -- Dynamic feature recommendations based on answers - ---- - -### Quick Wins & Engagement Experiments - -**Time-to-Value** -- Highlight quick wins early ("Complete your first X") -- Show success messages after key actions -- Display progress celebrations at milestones -- Suggest next steps after each completion - -**Support & Help** -- Offer free onboarding calls for complex products -- Add contextual help throughout onboarding -- Test chat support availability during onboarding -- Proactive outreach for stuck users - ---- - -### Email & Multi-Channel Experiments - -**Onboarding Emails** -- Personalized welcome email from founder -- Behavior-based emails (triggered by actions/inactions) -- Test email timing and frequency -- Include quick tips and video content - -**Feedback Loops** -- Add NPS survey during onboarding -- Ask "What's blocking you?" for incomplete users -- Follow-up based on NPS score +**For comprehensive experiment ideas**: See [references/experiments.md](references/experiments.md) --- diff --git a/skills/onboarding-cro/references/experiments.md b/skills/onboarding-cro/references/experiments.md new file mode 100644 index 0000000..2258410 --- /dev/null +++ b/skills/onboarding-cro/references/experiments.md @@ -0,0 +1,248 @@ +# Onboarding Experiment Ideas + +Comprehensive list of A/B tests and experiments for user onboarding and activation. + +## Flow Simplification Experiments + +### Reduce Friction + +| Test | Hypothesis | +|------|------------| +| Email verification timing | During vs. after onboarding | +| Empty states vs. dummy data | Pre-populated examples | +| Pre-filled templates | Accelerate setup with templates | +| OAuth options | Faster account linking | +| Required step count | Fewer required steps | +| Optional vs. required fields | Minimize requirements | +| Skip options | Allow bypassing non-critical steps | + +### Step Sequencing + +| Test | Hypothesis | +|------|------------| +| Step ordering | Test different sequences | +| Value-first ordering | Highest-value features first | +| Friction placement | Move hard steps later | +| Required vs. optional balance | Ratio of required steps | +| Single vs. branching paths | One path vs. personalized | +| Quick start vs. full setup | Minimal path to value | + +### Progress & Motivation + +| Test | Hypothesis | +|------|------------| +| Progress bars | Show completion percentage | +| Checklist length | 3-5 items vs. 5-7 items | +| Gamification | Badges, rewards, achievements | +| Completion messaging | "X% complete" visibility | +| Starting point | Begin at 20% vs. 0% | +| Celebration moments | Acknowledge completions | + +--- + +## Guided Experience Experiments + +### Product Tours + +| Test | Hypothesis | +|------|------------| +| Interactive tours | Tools like Navattic, Storylane | +| Tooltip vs. modal guidance | Subtle vs. attention-grabbing | +| Video tutorials | For complex workflows | +| Self-paced vs. guided | User control vs. structured | +| Tour length | Shorter vs. comprehensive | +| Tour triggering | Automatic vs. user-initiated | + +### CTA Optimization + +| Test | Hypothesis | +|------|------------| +| CTA text variations | Action-oriented copy testing | +| CTA placement | Position within screens | +| In-app tooltips | Feature discovery prompts | +| Sticky CTAs | Persist during onboarding | +| CTA contrast | Visual prominence | +| Secondary CTAs | "Learn more" vs. primary only | + +### UI Guidance + +| Test | Hypothesis | +|------|------------| +| Hotspot highlights | Draw attention to key features | +| Coachmarks | Contextual tips | +| Feature announcements | New feature discovery | +| Contextual help | Help where users need it | +| Search vs. guided | Self-service vs. directed | + +--- + +## Personalization Experiments + +### User Segmentation + +| Test | Hypothesis | +|------|------------| +| Role-based onboarding | Different paths by role | +| Goal-based paths | Customize by stated goal | +| Role-specific dashboards | Relevant default views | +| Use-case question | Personalize based on answer | +| Industry-specific paths | Vertical customization | +| Experience-based | Beginner vs. expert paths | + +### Dynamic Content + +| Test | Hypothesis | +|------|------------| +| Personalized welcome | Name, company, role | +| Industry examples | Relevant use cases | +| Dynamic recommendations | Based on user answers | +| Template suggestions | Pre-filled for segment | +| Feature highlighting | Relevant to stated goals | +| Benchmark data | Industry-specific metrics | + +--- + +## Quick Wins & Engagement Experiments + +### Time-to-Value + +| Test | Hypothesis | +|------|------------| +| First quick win | "Complete your first X" | +| Success messages | After key actions | +| Progress celebrations | Milestone moments | +| Next step suggestions | After each completion | +| Value demonstration | Show what they achieved | +| Outcome preview | What success looks like | + +### Motivation Mechanics + +| Test | Hypothesis | +|------|------------| +| Achievement badges | Gamification elements | +| Streaks | Consecutive day engagement | +| Leaderboards | Social comparison (if appropriate) | +| Rewards | Incentives for completion | +| Unlock mechanics | Features revealed progressively | + +### Support & Help + +| Test | Hypothesis | +|------|------------| +| Free onboarding calls | For complex products | +| Contextual help | Throughout onboarding | +| Chat support | Availability during onboarding | +| Proactive outreach | For stuck users | +| Self-service resources | Help docs, videos | +| Community access | Peer support early | + +--- + +## Email & Multi-Channel Experiments + +### Onboarding Emails + +| Test | Hypothesis | +|------|------------| +| Founder welcome email | Personal vs. generic | +| Behavior-based triggers | Action/inaction based | +| Email timing | Immediate vs. delayed | +| Email frequency | More vs. fewer touches | +| Quick tips format | Short actionable content | +| Video in email | More engaging format | + +### Email Content + +| Test | Hypothesis | +|------|------------| +| Subject lines | Open rate optimization | +| Personalization depth | Name vs. behavior-based | +| CTA prominence | Single clear action | +| Social proof inclusion | Testimonials in email | +| Urgency messaging | Trial reminders | +| Plain text vs. designed | Format testing | + +### Feedback Loops + +| Test | Hypothesis | +|------|------------| +| NPS during onboarding | When to ask | +| Blocking question | "What's stopping you?" | +| NPS follow-up | Actions based on score | +| In-app feedback | Thumbs up/down on features | +| Survey timing | When to request feedback | +| Feedback incentives | Reward for completing | + +--- + +## Re-engagement Experiments + +### Stalled User Recovery + +| Test | Hypothesis | +|------|------------| +| Re-engagement email timing | When to send | +| Personal outreach | Human vs. automated | +| Simplified path | Reduced steps for returners | +| Incentive offers | Discount or extended trial | +| Problem identification | Ask what's blocking | +| Demo offer | Live walkthrough | + +### Return Experience + +| Test | Hypothesis | +|------|------------| +| Welcome back message | Acknowledge return | +| Progress resume | Pick up where left off | +| Changed state | What happened while away | +| Re-onboarding | Fresh start option | +| Urgency messaging | Trial time remaining | + +--- + +## Technical & UX Experiments + +### Performance + +| Test | Hypothesis | +|------|------------| +| Load time optimization | Faster = higher completion | +| Progressive loading | Perceived performance | +| Offline capability | Mobile experience | +| Error handling | Graceful failure recovery | + +### Mobile Onboarding + +| Test | Hypothesis | +|------|------------| +| Touch targets | Size and spacing | +| Swipe navigation | Mobile-native patterns | +| Screen count | Fewer screens needed | +| Input optimization | Mobile-friendly forms | +| Permission timing | When to ask | + +### Accessibility + +| Test | Hypothesis | +|------|------------| +| Screen reader support | Accessibility impact | +| Keyboard navigation | Non-mouse users | +| Color contrast | Visibility | +| Font sizing | Readability | + +--- + +## Metrics to Track + +For all experiments, measure: + +| Metric | Description | +|--------|-------------| +| Activation rate | % reaching activation event | +| Time to activation | Hours/days to first value | +| Step completion rate | % completing each step | +| Drop-off points | Where users abandon | +| Return rate | Users who come back | +| Day 1/7/30 retention | Engagement over time | +| Feature adoption | Which features get used | +| Support requests | Volume during onboarding | diff --git a/skills/page-cro/SKILL.md b/skills/page-cro/SKILL.md index 3ea877e..3068750 100644 --- a/skills/page-cro/SKILL.md +++ b/skills/page-cro/SKILL.md @@ -14,31 +14,11 @@ If `.claude/product-marketing-context.md` exists, read it before asking question Before providing recommendations, identify: -1. **Page Type**: What kind of page is this? - - Homepage - - Landing page (paid traffic, specific campaign) - - Pricing page - - Feature/product page - - Blog post with CTA - - About page - - Other +1. **Page Type**: Homepage, landing page, pricing, feature, blog, about, other +2. **Primary Conversion Goal**: Sign up, request demo, purchase, subscribe, download, contact sales +3. **Traffic Context**: Where are visitors coming from? (organic, paid, email, social) -2. **Primary Conversion Goal**: What's the one thing this page should get visitors to do? - - Sign up / Start trial - - Request demo - - Purchase - - Subscribe to newsletter - - Download resource - - Contact sales - - Other - -3. **Traffic Context**: If known, where are visitors coming from? - - Organic search (what intent?) - - Paid ads (what messaging?) - - Social media - - Email - - Referral - - Direct +--- ## CRO Analysis Framework @@ -49,59 +29,46 @@ Analyze the page across these dimensions, in order of impact: **Check for:** - Can a visitor understand what this is and why they should care within 5 seconds? - Is the primary benefit clear, specific, and differentiated? -- Does it address a real pain point or desire? - Is it written in the customer's language (not company jargon)? **Common issues:** - Feature-focused instead of benefit-focused -- Too vague ("The best solution for your needs") -- Too clever (sacrificing clarity for creativity) -- Trying to say everything instead of the one most important thing +- Too vague or too clever (sacrificing clarity) +- Trying to say everything instead of the most important thing ### 2. Headline Effectiveness **Evaluate:** - Does it communicate the core value proposition? - Is it specific enough to be meaningful? -- Does it create curiosity or urgency without being clickbait? -- Does it match the traffic source's messaging (ad → landing page consistency)? +- Does it match the traffic source's messaging? **Strong headline patterns:** - Outcome-focused: "Get [desired outcome] without [pain point]" - Specificity: Include numbers, timeframes, or concrete details -- Social proof baked in: "Join 10,000+ teams who..." -- Direct address of pain: "Tired of [specific problem]?" +- Social proof: "Join 10,000+ teams who..." ### 3. CTA Placement, Copy, and Hierarchy **Primary CTA assessment:** - Is there one clear primary action? -- Is it visible without scrolling (above the fold)? +- Is it visible without scrolling? - Does the button copy communicate value, not just action? - Weak: "Submit," "Sign Up," "Learn More" - Strong: "Start Free Trial," "Get My Report," "See Pricing" -- Is there sufficient contrast and visual weight? **CTA hierarchy:** - Is there a logical primary vs. secondary CTA structure? -- Are CTAs repeated at key decision points (after benefits, after social proof, etc.)? -- Is the commitment level appropriate for the page stage? +- Are CTAs repeated at key decision points? ### 4. Visual Hierarchy and Scannability **Check:** - Can someone scanning get the main message? - Are the most important elements visually prominent? -- Is there clear information hierarchy (H1 → H2 → body)? -- Is there enough white space to let elements breathe? +- Is there enough white space? - Do images support or distract from the message? -**Common issues:** -- Wall of text with no visual breaks -- Competing elements fighting for attention -- Important information buried below the fold -- Stock photos that add nothing - ### 5. Trust Signals and Social Proof **Types to look for:** @@ -110,49 +77,37 @@ Analyze the page across these dimensions, in order of impact: - Case study snippets with real numbers - Review scores and counts - Security badges (where relevant) -- "As seen in" media mentions -- Team/founder credibility -**Placement:** -- Near CTAs (to reduce friction at decision point) -- After benefit claims (to validate them) -- Throughout the page at natural break points +**Placement:** Near CTAs and after benefit claims ### 6. Objection Handling -**Identify likely objections for this page type:** +**Common objections to address:** - Price/value concerns - "Will this work for my situation?" - Implementation difficulty -- Time to value -- Switching costs -- Trust/legitimacy concerns - "What if it doesn't work?" -**Check if the page addresses these through:** -- FAQ sections -- Guarantee/refund policies -- Comparison content -- Feature explanations -- Process transparency +**Address through:** FAQ sections, guarantees, comparison content, process transparency ### 7. Friction Points -**Look for unnecessary friction:** +**Look for:** - Too many form fields - Unclear next steps - Confusing navigation - Required information that shouldn't be required -- Broken or slow elements - Mobile experience issues - Long load times +--- + ## Output Format Structure your recommendations as: ### Quick Wins (Implement Now) -Changes that are easy to make and likely to have immediate impact. +Easy changes with likely immediate impact. ### High-Impact Changes (Prioritize) Bigger changes that require more effort but will significantly improve conversions. @@ -161,176 +116,65 @@ Bigger changes that require more effort but will significantly improve conversio Hypotheses worth A/B testing rather than assuming. ### Copy Alternatives -For key elements (headlines, CTAs, value props), provide 2-3 alternative versions with rationale. +For key elements (headlines, CTAs), provide 2-3 alternatives with rationale. --- ## Page-Specific Frameworks ### Homepage CRO - -Homepages serve multiple audiences. Focus on: -- Clear positioning statement that works for cold visitors -- Quick path to most common conversion action -- Navigation that helps visitors self-select -- Handling both "ready to buy" and "still researching" visitors +- Clear positioning for cold visitors +- Quick path to most common conversion +- Handle both "ready to buy" and "still researching" ### Landing Page CRO - -Single-purpose pages. Focus on: - Message match with traffic source - Single CTA (remove navigation if possible) -- Complete argument on one page (minimize clicks to convert) -- Urgency/scarcity if genuine +- Complete argument on one page ### Pricing Page CRO - -High-intent visitors. Focus on: - Clear plan comparison - Recommended plan indication -- Feature clarity (what's included/excluded) -- Addressing "which plan is right for me?" anxiety -- Easy path from pricing to checkout +- Address "which plan is right for me?" anxiety ### Feature Page CRO - -Visitors researching specifics. Focus on: -- Connecting feature to benefit +- Connect feature to benefit - Use cases and examples -- Comparison to alternatives -- Clear CTA to try/buy +- Clear path to try/buy ### Blog Post CRO - -Content-to-conversion. Focus on: -- Contextual CTAs that match content topic -- Lead magnets related to article subject +- Contextual CTAs matching content topic - Inline CTAs at natural stopping points -- Exit-intent as backup --- -## Experiment Ideas by Page Type +## Experiment Ideas -### Homepage Experiments +When recommending experiments, consider tests for: +- Hero section (headline, visual, CTA) +- Trust signals and social proof placement +- Pricing presentation +- Form optimization +- Navigation and UX -**Hero Section** -- Test headline variations (specific vs. abstract, benefit vs. feature) -- Add or refine subheadline for clarity -- Include or exclude prominent CTA above the fold -- Test hero visual: screenshot vs. GIF vs. illustration vs. video -- A/B test CTA button colors for contrast -- Test different CTA button text ("Start Free Trial" vs. "Get Started" vs. "See Demo") -- Add interactive demo to engage visitors immediately - -**Trust & Social Proof** -- Test placement of customer logos (hero vs. below fold) -- Showcase case studies or testimonials in hero section -- Add trust badges (security, compliance, awards) -- Test customer count or social proof in headline - -**Features & Content** -- Highlight key features with icons and brief descriptions -- Test feature section order and prominence -- Add or remove secondary CTAs throughout page - -**Navigation & UX** -- Add sticky navigation bar with persistent CTA -- Test navigation menu order (high-priority items at edges) -- Add prominent CTA button in nav bar -- Live chat widget vs. AI chatbot for instant support -- Optimize footer for clarity and secondary conversions - ---- - -### Pricing Page Experiments - -**Price Presentation** -- Highlight annual billing discounts vs. show monthly only vs. show both -- Test different pricing points ($99 vs. $100 vs. $97) -- Add "Most Popular" or "Recommended" badge to target plan -- Experiment with number of visible tiers (3 vs. 4 vs. 2) -- Use price anchoring strategically - -**Pricing UX** -- Add pricing calculator for complex/usage-based pricing -- Turn complex pricing table into guided multistep form -- Test feature comparison table formats -- Add toggle for monthly/annual with savings highlighted -- Test "Contact Sales" vs. showing enterprise pricing - -**Objection Handling** -- Add FAQ section addressing common pricing objections -- Include ROI calculator or value demonstration -- Add money-back guarantee prominently -- Show price-per-user breakdowns for team plans -- Include "What's included" clarity for each tier - -**Trust Signals** -- Add testimonials specific to pricing/value -- Show customer logos near pricing -- Display review scores from G2/Capterra - ---- - -### Demo Request Page Experiments - -**Form Optimization** -- Simplify demo request form (fewer fields) -- Test multi-step form with progress bar vs. single-step -- Test form placement: above fold vs. after content -- Add or remove phone number field -- Use field enrichment to hide known fields - -**Page Content** -- Optimize demo page content with benefits above form -- Add product video or GIF showing demo experience -- Include "What You'll Learn" section -- Add customer testimonials near form -- Address common objections in FAQ - -**CTA & Routing** -- Test demo button CTAs ("Book Your Demo" vs. "Schedule 15-Min Call") -- Offer on-demand demo alongside live option -- Personalize demo page messaging based on visitor data -- Remove navigation to reduce distractions -- Optimize routing: calendar link for qualified, self-serve for others - ---- - -### Resource/Blog Page Experiments - -**Content CTAs** -- Add floating or sticky CTAs on blog posts -- Test inline CTAs within content vs. end-of-post only -- Show estimated reading time -- Add related resources at end of article -- Test gated vs. free content strategies - -**Resource Section** -- Optimize resource section navigation and filtering -- Add search functionality -- Highlight featured or popular resources -- Test grid vs. list view layouts -- Create resource bundles by topic +**For comprehensive experiment ideas by page type**: See [references/experiments.md](references/experiments.md) --- ## Task-Specific Questions - 1. What's your current conversion rate and goal? 2. Where is traffic coming from? 3. What does your signup/purchase flow look like after this page? -4. Do you have any user research, heatmaps, or session recordings? +4. Do you have user research, heatmaps, or session recordings? 5. What have you already tried? --- ## Related Skills -- **signup-flow-cro**: If the issue is in the signup process itself, not the page leading to it +- **signup-flow-cro**: If the issue is in the signup process itself - **form-cro**: If forms on the page need optimization -- **popup-cro**: If considering popups as part of the conversion strategy -- **copywriting**: If the page needs a complete copy rewrite rather than CRO tweaks +- **popup-cro**: If considering popups as part of the strategy +- **copywriting**: If the page needs a complete copy rewrite - **ab-test-setup**: To properly test recommended changes diff --git a/skills/page-cro/references/experiments.md b/skills/page-cro/references/experiments.md new file mode 100644 index 0000000..e1b5b3b --- /dev/null +++ b/skills/page-cro/references/experiments.md @@ -0,0 +1,239 @@ +# Page CRO Experiment Ideas + +Comprehensive list of A/B tests and experiments organized by page type. + +## Homepage Experiments + +### Hero Section + +| Test | Hypothesis | +|------|------------| +| Headline variations | Specific vs. abstract messaging | +| Subheadline clarity | Add/refine to support headline | +| CTA above fold | Include or exclude prominent CTA | +| Hero visual format | Screenshot vs. GIF vs. illustration vs. video | +| CTA button color | Test contrast and visibility | +| CTA button text | "Start Free Trial" vs. "Get Started" vs. "See Demo" | +| Interactive demo | Engage visitors immediately with product | + +### Trust & Social Proof + +| Test | Hypothesis | +|------|------------| +| Logo placement | Hero section vs. below fold | +| Case study in hero | Show results immediately | +| Trust badges | Add security, compliance, awards | +| Social proof in headline | "Join 10,000+ teams" messaging | +| Testimonial placement | Above fold vs. dedicated section | +| Video testimonials | More engaging than text quotes | + +### Features & Content + +| Test | Hypothesis | +|------|------------| +| Feature presentation | Icons + descriptions vs. detailed sections | +| Section ordering | Move high-value features up | +| Secondary CTAs | Add/remove throughout page | +| Benefit vs. feature focus | Lead with outcomes | +| Comparison section | Show vs. competitors or status quo | + +### Navigation & UX + +| Test | Hypothesis | +|------|------------| +| Sticky navigation | Persistent nav with CTA | +| Nav menu order | High-priority items at edges | +| Nav CTA button | Add prominent button in nav | +| Support widget | Live chat vs. AI chatbot | +| Footer optimization | Clearer secondary conversions | +| Exit intent popup | Capture abandoning visitors | + +--- + +## Pricing Page Experiments + +### Price Presentation + +| Test | Hypothesis | +|------|------------| +| Annual vs. monthly display | Highlight savings or simplify | +| Price points | $99 vs. $100 vs. $97 psychology | +| "Most Popular" badge | Highlight target plan | +| Number of tiers | 3 vs. 4 vs. 2 visible options | +| Price anchoring | Order plans to anchor expectations | +| Custom enterprise tier | Show vs. "Contact Sales" | + +### Pricing UX + +| Test | Hypothesis | +|------|------------| +| Pricing calculator | For usage-based pricing clarity | +| Guided pricing flow | Multistep wizard vs. comparison table | +| Feature comparison format | Table vs. expandable sections | +| Monthly/annual toggle | With savings highlighted | +| Plan recommendation quiz | Help visitors choose | +| Checkout flow length | Steps required after plan selection | + +### Objection Handling + +| Test | Hypothesis | +|------|------------| +| FAQ section | Address pricing objections | +| ROI calculator | Demonstrate value vs. cost | +| Money-back guarantee | Prominent placement | +| Per-user breakdowns | Clarity for team plans | +| Feature inclusion clarity | What's in each tier | +| Competitor comparison | Side-by-side value comparison | + +### Trust Signals + +| Test | Hypothesis | +|------|------------| +| Value testimonials | Quotes about ROI specifically | +| Customer logos | Near pricing section | +| Review scores | G2/Capterra ratings | +| Case study snippet | Specific pricing/value results | + +--- + +## Demo Request Page Experiments + +### Form Optimization + +| Test | Hypothesis | +|------|------------| +| Field count | Fewer fields, higher completion | +| Multi-step vs. single | Progress bar encouragement | +| Form placement | Above fold vs. after content | +| Phone field | Include vs. exclude | +| Field enrichment | Hide fields you can auto-fill | +| Form labels | Inside field vs. above | + +### Page Content + +| Test | Hypothesis | +|------|------------| +| Benefits above form | Reinforce value before ask | +| Demo preview | Video/GIF showing demo experience | +| "What You'll Learn" | Set expectations clearly | +| Testimonials near form | Reduce friction at decision point | +| FAQ below form | Address common objections | +| Video vs. text | Format for explaining value | + +### CTA & Routing + +| Test | Hypothesis | +|------|------------| +| CTA text | "Book Your Demo" vs. "Schedule 15-Min Call" | +| On-demand option | Instant demo alongside live option | +| Personalized messaging | Based on visitor data/source | +| Navigation removal | Reduce page distractions | +| Calendar integration | Inline booking vs. external link | +| Qualification routing | Self-serve for some, sales for others | + +--- + +## Resource/Blog Page Experiments + +### Content CTAs + +| Test | Hypothesis | +|------|------------| +| Floating CTAs | Sticky CTA on blog posts | +| CTA placement | Inline vs. end-of-post only | +| Reading time display | Estimated reading time | +| Related resources | End-of-article recommendations | +| Gated vs. free | Content access strategy | +| Content upgrades | Specific to article topic | + +### Resource Section + +| Test | Hypothesis | +|------|------------| +| Navigation/filtering | Easier to find relevant content | +| Search functionality | Find specific resources | +| Featured resources | Highlight best content | +| Layout format | Grid vs. list view | +| Topic bundles | Grouped resources by theme | +| Download tracking | Gate some, track engagement | + +--- + +## Landing Page Experiments + +### Message Match + +| Test | Hypothesis | +|------|------------| +| Headline matching | Match ad copy exactly | +| Visual matching | Match ad creative | +| Offer alignment | Same offer as ad promised | +| Audience-specific pages | Different pages per segment | + +### Conversion Focus + +| Test | Hypothesis | +|------|------------| +| Navigation removal | Single-focus page | +| CTA repetition | Multiple CTAs throughout | +| Form vs. button | Direct capture vs. click-through | +| Urgency/scarcity | If genuine, test messaging | +| Social proof density | Amount and placement | +| Video inclusion | Explain offer with video | + +### Page Length + +| Test | Hypothesis | +|------|------------| +| Short vs. long | Quick conversion vs. complete argument | +| Above-fold only | Minimal scroll required | +| Section ordering | Most important content first | +| Footer removal | Eliminate navigation | + +--- + +## Feature Page Experiments + +### Feature Presentation + +| Test | Hypothesis | +|------|------------| +| Demo/screenshot | Show feature in action | +| Use case examples | How customers use it | +| Before/after | Impact visualization | +| Video walkthrough | Feature tour | +| Interactive demo | Try feature without signup | + +### Conversion Path + +| Test | Hypothesis | +|------|------------| +| Trial CTA | Feature-specific trial offer | +| Related features | Cross-link to other features | +| Comparison | vs. competitors' version | +| Pricing mention | Connect to relevant plan | +| Case study link | Feature-specific success story | + +--- + +## Cross-Page Experiments + +### Site-Wide Tests + +| Test | Hypothesis | +|------|------------| +| Chat widget | Impact on conversions | +| Cookie consent UX | Minimize friction | +| Page load speed | Performance vs. features | +| Mobile experience | Responsive optimization | +| Accessibility | Impact on conversion | +| Personalization | Dynamic content by segment | + +### Navigation Tests + +| Test | Hypothesis | +|------|------------| +| Menu structure | Information architecture | +| Search placement | Help visitors find content | +| CTA in nav | Always-visible conversion path | +| Breadcrumbs | Navigation clarity | diff --git a/skills/paid-ads/SKILL.md b/skills/paid-ads/SKILL.md index 82e8371..9f2f7a4 100644 --- a/skills/paid-ads/SKILL.md +++ b/skills/paid-ads/SKILL.md @@ -24,7 +24,6 @@ Gather this context (ask if not provided): - What are you promoting? (Product, free trial, lead magnet, demo) - What's the landing page URL? - What makes this offer compelling? -- Any promotions or urgency elements? ### 3. Audience - Who is the ideal customer? @@ -36,71 +35,18 @@ Gather this context (ask if not provided): - Have you run ads before? What worked/didn't? - Do you have existing pixel/conversion data? - What's your current funnel conversion rate? -- Any existing creative assets? --- ## Platform Selection Guide -### Google Ads -**Best for:** High-intent search traffic, capturing existing demand -**Use when:** -- People actively search for your solution -- You have clear keywords with commercial intent -- You want bottom-of-funnel conversions - -**Campaign types:** -- Search: Keyword-targeted text ads -- Performance Max: AI-driven cross-channel -- Display: Banner ads across Google network -- YouTube: Video ads -- Demand Gen: Discovery and Gmail placements - -### Meta (Facebook/Instagram) -**Best for:** Demand generation, visual products, broad targeting -**Use when:** -- Your product has visual appeal -- You're creating demand (not just capturing it) -- You have strong creative assets -- You want to build audiences for retargeting - -**Campaign types:** -- Advantage+ Shopping: E-commerce automation -- Lead Gen: In-platform lead forms -- Conversions: Website conversion optimization -- Traffic: Link clicks to site -- Engagement: Social proof building - -### LinkedIn Ads -**Best for:** B2B targeting, reaching decision-makers -**Use when:** -- You're selling to businesses -- Job title/company targeting matters -- Higher price points justify higher CPCs -- You need to reach specific industries - -**Campaign types:** -- Sponsored Content: Feed posts -- Message Ads: Direct InMail -- Lead Gen Forms: In-platform capture -- Document Ads: Gated content -- Conversation Ads: Interactive messaging - -### Twitter/X Ads -**Best for:** Tech audiences, real-time relevance, thought leadership -**Use when:** -- Your audience is active on X -- You have timely/trending content -- You want to amplify organic content -- Lower CPMs matter more than precision targeting - -### TikTok Ads -**Best for:** Younger demographics, viral creative, brand awareness -**Use when:** -- Your audience skews younger (18-34) -- You can create native-feeling video content -- Brand awareness is a goal -- You have creative capacity for video +| Platform | Best For | Use When | +|----------|----------|----------| +| **Google Ads** | High-intent search traffic | People actively search for your solution | +| **Meta** | Demand generation, visual products | Creating demand, strong creative assets | +| **LinkedIn** | B2B, decision-makers | Job title/company targeting matters, higher price points | +| **Twitter/X** | Tech audiences, thought leadership | Audience is active on X, timely content | +| **TikTok** | Younger demographics, viral creative | Audience skews 18-34, video capacity | --- @@ -116,14 +62,11 @@ Account │ │ ├── Ad 2: [Creative variation B] │ │ └── Ad 3: [Creative variation C] │ └── Ad Set 2: [Targeting variation] -│ └── Ads... └── Campaign 2... ``` ### Naming Conventions -Use consistent naming for easy analysis: - ``` [Platform]_[Objective]_[Audience]_[Offer]_[Date] @@ -133,7 +76,7 @@ GOOG_Search_Brand_Demo_Ongoing LI_LeadGen_CMOs-SaaS_Whitepaper_Mar24 ``` -### Budget Allocation Framework +### Budget Allocation **Testing phase (first 2-4 weeks):** - 70% to proven/safe campaigns @@ -148,213 +91,80 @@ LI_LeadGen_CMOs-SaaS_Whitepaper_Mar24 ## Ad Copy Frameworks -### Primary Text Formulas +### Key Formulas **Problem-Agitate-Solve (PAS):** -``` -[Problem statement] -[Agitate the pain] -[Introduce solution] -[CTA] -``` - -Example: -> Spending hours on manual reporting every week? -> While you're buried in spreadsheets, your competitors are making decisions. -> [Product] automates your reports in minutes. -> Start your free trial → +> [Problem] → [Agitate the pain] → [Introduce solution] → [CTA] **Before-After-Bridge (BAB):** -``` -[Current painful state] -[Desired future state] -[Your product as the bridge] -``` - -Example: -> Before: Chasing down approvals across email, Slack, and spreadsheets. -> After: Every approval tracked, automated, and on time. -> [Product] connects your tools and keeps projects moving. +> [Current painful state] → [Desired future state] → [Your product as bridge] **Social Proof Lead:** -``` -[Impressive stat or testimonial] -[What you do] -[CTA] -``` +> [Impressive stat or testimonial] → [What you do] → [CTA] -Example: -> "We cut our reporting time by 75%." — Sarah K., Marketing Director -> [Product] automates the reports you hate building. -> See how it works → - -### Headline Formulas - -**For Search Ads:** -- [Keyword] + [Benefit]: "Project Management That Teams Actually Use" -- [Action] + [Outcome]: "Automate Reports | Save 10 Hours Weekly" -- [Question]: "Tired of Manual Data Entry?" -- [Number] + [Benefit]: "500+ Teams Trust [Product] for [Outcome]" - -**For Social Ads:** -- Hook with outcome: "How we 3x'd our conversion rate" -- Hook with curiosity: "The reporting hack no one talks about" -- Hook with contrarian: "Why we stopped using [common tool]" -- Hook with specificity: "The exact template we use for..." - -### CTA Variations - -**Soft CTAs (awareness/consideration):** -- Learn More -- See How It Works -- Watch Demo -- Get the Guide - -**Hard CTAs (conversion):** -- Start Free Trial -- Get Started Free -- Book a Demo -- Claim Your Discount -- Buy Now - -**Urgency CTAs (when genuine):** -- Limited Time: 30% Off -- Offer Ends [Date] -- Only X Spots Left +**For detailed templates and headline formulas**: See [references/ad-copy-templates.md](references/ad-copy-templates.md) --- -## Audience Targeting Strategies +## Audience Targeting Overview -### Google Ads Audiences +### Platform Strengths -**Search campaigns:** -- Keywords (exact, phrase, broad match) -- Audience layering (observation mode first) -- Remarketing lists for search ads (RLSA) +| Platform | Key Targeting | Best Signals | +|----------|---------------|--------------| +| Google | Keywords, search intent | What they're searching | +| Meta | Interests, behaviors, lookalikes | Engagement patterns | +| LinkedIn | Job titles, companies, industries | Professional identity | -**Display/YouTube:** -- Custom intent (based on search behavior) -- In-market audiences -- Affinity audiences -- Customer match (upload email lists) -- Similar/lookalike audiences +### Key Concepts -### Meta Audiences +- **Lookalikes**: Base on best customers (by LTV), not all customers +- **Retargeting**: Segment by funnel stage (visitors vs. cart abandoners) +- **Exclusions**: Always exclude existing customers and recent converters -**Core audiences (interest/demographic):** -- Layer interests with AND logic for precision -- Exclude existing customers -- Start broad, let algorithm optimize - -**Custom audiences:** -- Website visitors (by page, time on site, frequency) -- Customer list uploads -- Engagement (video viewers, page engagers) -- App activity - -**Lookalike audiences:** -- Source: Best customers (by LTV, not just all customers) -- Size: Start 1%, expand to 1-3% as you scale -- Layer: Lookalike + interest for early testing - -### LinkedIn Audiences - -**Job-based targeting:** -- Job titles (be specific, avoid broad) -- Job functions + seniority -- Skills (self-reported) - -**Company-based targeting:** -- Company size -- Industry -- Company names (ABM) -- Company growth rate - -**Combinations that work:** -- Job function + seniority + company size -- Industry + job title -- Company list + decision-maker titles +**For detailed targeting strategies by platform**: See [references/audience-targeting.md](references/audience-targeting.md) --- ## Creative Best Practices ### Image Ads - -**What works:** - Clear product screenshots showing UI - Before/after comparisons - Stats and numbers as focal point - Human faces (real, not stock) - Bold, readable text overlay (keep under 20%) -**What doesn't:** -- Generic stock photos -- Too much text -- Cluttered visuals -- Low contrast/hard to read - -### Video Ads - -**Structure for short-form (15-30 sec):** +### Video Ads Structure (15-30 sec) 1. Hook (0-3 sec): Pattern interrupt, question, or bold statement 2. Problem (3-8 sec): Relatable pain point 3. Solution (8-20 sec): Show product/benefit 4. CTA (20-30 sec): Clear next step -**Structure for longer-form (60+ sec):** -1. Hook (0-5 sec) -2. Problem deep-dive (5-20 sec) -3. Solution introduction (20-35 sec) -4. Social proof (35-45 sec) -5. How it works (45-55 sec) -6. CTA with offer (55-60 sec) - **Production tips:** - Captions always (85% watch without sound) - Vertical for Stories/Reels, square for feed - Native feel outperforms polished - First 3 seconds determine if they watch -### Ad Creative Testing - -**Testing hierarchy:** +### Creative Testing Hierarchy 1. Concept/angle (biggest impact) 2. Hook/headline 3. Visual style 4. Body copy 5. CTA -**Testing approach:** -- Test one variable at a time for clean data -- Need 100+ conversions per variant for significance -- Kill losers fast (3-5 days with sufficient spend) -- Iterate on winners - --- ## Campaign Optimization ### Key Metrics by Objective -**Awareness:** -- CPM (cost per 1,000 impressions) -- Reach and frequency -- Video view rate / watch time -- Brand lift (if available) - -**Consideration:** -- CTR (click-through rate) -- CPC (cost per click) -- Landing page views -- Time on site from ads - -**Conversion:** -- CPA (cost per acquisition) -- ROAS (return on ad spend) -- Conversion rate -- Cost per lead / cost per sale +| Objective | Primary Metrics | +|-----------|-----------------| +| Awareness | CPM, Reach, Video view rate | +| Consideration | CTR, CPC, Time on site | +| Conversion | CPA, ROAS, Conversion rate | ### Optimization Levers @@ -369,25 +179,13 @@ Example: - Creative isn't resonating → test new hooks/angles - Audience mismatch → refine targeting - Ad fatigue → refresh creative -- Weak offer → improve value proposition **If CPM is high:** - Audience too narrow → expand targeting - High competition → try different placements - Low relevance score → improve creative fit -- Bidding too aggressively → adjust bid caps -### Bid Strategies - -**Manual/controlled:** -- Use when: Learning phase, small budgets, need control -- Manual CPC, bid caps, cost caps - -**Automated/smart:** -- Use when: Sufficient conversion data (50+ per month), scaling -- Target CPA, target ROAS, maximize conversions - -**Progression:** +### Bid Strategy Progression 1. Start with manual or cost caps 2. Gather conversion data (50+ conversions) 3. Switch to automated with targets based on historical data @@ -397,22 +195,13 @@ Example: ## Retargeting Strategies -### Funnel-Based Retargeting +### Funnel-Based Approach -**Top of funnel (awareness):** -- Audience: Blog readers, video viewers, social engagers -- Message: Educational content, social proof -- Goal: Move to consideration - -**Middle of funnel (consideration):** -- Audience: Pricing page visitors, feature page visitors -- Message: Case studies, demos, comparisons -- Goal: Move to decision - -**Bottom of funnel (decision):** -- Audience: Cart abandoners, trial users, demo no-shows -- Message: Urgency, objection handling, offers -- Goal: Convert +| Funnel Stage | Audience | Message | Goal | +|--------------|----------|---------|------| +| Top | Blog readers, video viewers | Educational, social proof | Move to consideration | +| Middle | Pricing/feature page visitors | Case studies, demos | Move to decision | +| Bottom | Cart abandoners, trial users | Urgency, objection handling | Convert | ### Retargeting Windows @@ -423,114 +212,69 @@ Example: | Cold (any visit) | 30-90 days | 1-2x/week | ### Exclusions to Set Up - -Always exclude: -- Existing customers (unless upsell campaign) +- Existing customers (unless upsell) - Recent converters (7-14 day window) -- Bounced visitors (<10 sec on site) +- Bounced visitors (<10 sec) - Irrelevant pages (careers, support) --- ## Reporting & Analysis -### Weekly Review Checklist - -- [ ] Spend vs. budget pacing -- [ ] CPA/ROAS vs. targets -- [ ] Top and bottom performing ads -- [ ] Audience performance breakdown -- [ ] Frequency check (fatigue risk) -- [ ] Landing page conversion rate -- [ ] Any disapproved ads or policy issues - -### Monthly Analysis - -- [ ] Overall channel performance vs. goals -- [ ] Creative performance trends -- [ ] Audience insights and learnings -- [ ] Budget reallocation recommendations -- [ ] Test results and next tests -- [ ] Competitive landscape changes +### Weekly Review +- Spend vs. budget pacing +- CPA/ROAS vs. targets +- Top and bottom performing ads +- Audience performance breakdown +- Frequency check (fatigue risk) +- Landing page conversion rate ### Attribution Considerations - -- Platform attribution is inflated (they want credit) +- Platform attribution is inflated - Use UTM parameters consistently -- Compare platform data to GA4/analytics -- Consider incrementality testing for mature accounts +- Compare platform data to GA4 - Look at blended CAC, not just platform CPA --- -## Platform-Specific Setup Guides +## Platform Setup -### Google Ads Setup Checklist +Before launching campaigns, ensure proper tracking and account setup. -- [ ] Conversion tracking installed and tested -- [ ] Google Analytics 4 linked -- [ ] Audience lists created (remarketing, customer match) -- [ ] Negative keyword lists built -- [ ] Ad extensions set up (sitelinks, callouts, structured snippets) -- [ ] Brand campaign running (protect branded terms) -- [ ] Competitor campaign considered -- [ ] Location and language targeting set -- [ ] Ad schedule aligned with business hours (if B2B) +**For complete setup checklists by platform**: See [references/platform-setup-checklists.md](references/platform-setup-checklists.md) -### Meta Ads Setup Checklist - -- [ ] Pixel installed and events firing -- [ ] Conversions API set up (server-side tracking) -- [ ] Custom audiences created -- [ ] Product catalog connected (if e-commerce) -- [ ] Domain verified -- [ ] Business Manager properly configured -- [ ] Aggregated event measurement prioritized -- [ ] Creative assets in correct sizes -- [ ] UTM parameters in all URLs - -### LinkedIn Ads Setup Checklist - -- [ ] Insight Tag installed -- [ ] Conversion tracking configured -- [ ] Matched audiences created -- [ ] Company page connected -- [ ] Lead gen form templates created -- [ ] Document assets uploaded (for Document Ads) -- [ ] Audience size validated (not too narrow) -- [ ] Budget realistic for LinkedIn CPCs ($8-15+) +### Universal Pre-Launch Checklist +- [ ] Conversion tracking tested with real conversion +- [ ] Landing page loads fast (<3 sec) +- [ ] Landing page mobile-friendly +- [ ] UTM parameters working +- [ ] Budget set correctly +- [ ] Targeting matches intended audience --- ## Common Mistakes to Avoid -### Strategy Mistakes +### Strategy - Launching without conversion tracking -- Too many campaigns/ad sets (fragmenting budget) +- Too many campaigns (fragmenting budget) - Not giving algorithms enough learning time -- Optimizing for wrong metric (clicks vs. conversions) -- Ignoring landing page experience +- Optimizing for wrong metric -### Targeting Mistakes -- Audiences too narrow (can't exit learning phase) -- Audiences too broad (wasting spend) +### Targeting +- Audiences too narrow or too broad - Not excluding existing customers -- Overlapping audiences competing with each other -- Ignoring negative keywords (Search) +- Overlapping audiences competing -### Creative Mistakes -- Only running one ad per ad set -- Not refreshing creative (ad fatigue) +### Creative +- Only one ad per ad set +- Not refreshing creative (fatigue) - Mismatch between ad and landing page -- Ignoring mobile experience -- Too much text in images (Meta) -### Budget Mistakes -- Spreading budget too thin across campaigns +### Budget +- Spreading too thin across campaigns - Making big budget changes (disrupts learning) -- Not accounting for platform minimums - Stopping campaigns during learning phase -- Weekend/off-hours spend without adjustment --- diff --git a/skills/paid-ads/references/ad-copy-templates.md b/skills/paid-ads/references/ad-copy-templates.md new file mode 100644 index 0000000..1b7620b --- /dev/null +++ b/skills/paid-ads/references/ad-copy-templates.md @@ -0,0 +1,200 @@ +# Ad Copy Templates Reference + +Detailed formulas and templates for writing high-converting ad copy. + +## Primary Text Formulas + +### Problem-Agitate-Solve (PAS) + +``` +[Problem statement] +[Agitate the pain] +[Introduce solution] +[CTA] +``` + +**Example:** +> Spending hours on manual reporting every week? +> While you're buried in spreadsheets, your competitors are making decisions. +> [Product] automates your reports in minutes. +> Start your free trial → + +--- + +### Before-After-Bridge (BAB) + +``` +[Current painful state] +[Desired future state] +[Your product as the bridge] +``` + +**Example:** +> Before: Chasing down approvals across email, Slack, and spreadsheets. +> After: Every approval tracked, automated, and on time. +> [Product] connects your tools and keeps projects moving. + +--- + +### Social Proof Lead + +``` +[Impressive stat or testimonial] +[What you do] +[CTA] +``` + +**Example:** +> "We cut our reporting time by 75%." — Sarah K., Marketing Director +> [Product] automates the reports you hate building. +> See how it works → + +--- + +### Feature-Benefit Bridge + +``` +[Feature] +[So that...] +[Which means...] +``` + +**Example:** +> Real-time collaboration on documents +> So your team always works from the latest version +> Which means no more version confusion or lost work + +--- + +### Direct Response + +``` +[Bold claim/outcome] +[Proof point] +[CTA with urgency if genuine] +``` + +**Example:** +> Cut your reporting time by 80% +> Join 5,000+ marketing teams already using [Product] +> Start free → First month 50% off + +--- + +## Headline Formulas + +### For Search Ads + +| Formula | Example | +|---------|---------| +| [Keyword] + [Benefit] | "Project Management That Teams Actually Use" | +| [Action] + [Outcome] | "Automate Reports \| Save 10 Hours Weekly" | +| [Question] | "Tired of Manual Data Entry?" | +| [Number] + [Benefit] | "500+ Teams Trust [Product] for [Outcome]" | +| [Keyword] + [Differentiator] | "CRM Built for Small Teams" | +| [Price/Offer] + [Keyword] | "Free Project Management \| No Credit Card" | + +### For Social Ads + +| Type | Example | +|------|---------| +| Outcome hook | "How we 3x'd our conversion rate" | +| Curiosity hook | "The reporting hack no one talks about" | +| Contrarian hook | "Why we stopped using [common tool]" | +| Specificity hook | "The exact template we use for..." | +| Question hook | "What if you could cut your admin time in half?" | +| Number hook | "7 ways to improve your workflow today" | +| Story hook | "We almost gave up. Then we found..." | + +--- + +## CTA Variations + +### Soft CTAs (awareness/consideration) + +Best for: Top of funnel, cold audiences, complex products + +- Learn More +- See How It Works +- Watch Demo +- Get the Guide +- Explore Features +- See Examples +- Read the Case Study + +### Hard CTAs (conversion) + +Best for: Bottom of funnel, warm audiences, clear offers + +- Start Free Trial +- Get Started Free +- Book a Demo +- Claim Your Discount +- Buy Now +- Sign Up Free +- Get Instant Access + +### Urgency CTAs (use when genuine) + +Best for: Limited-time offers, scarcity situations + +- Limited Time: 30% Off +- Offer Ends [Date] +- Only X Spots Left +- Last Chance +- Early Bird Pricing Ends Soon + +### Action-Oriented CTAs + +Best for: Active voice, clear next step + +- Start Saving Time Today +- Get Your Free Report +- See Your Score +- Calculate Your ROI +- Build Your First Project + +--- + +## Platform-Specific Copy Guidelines + +### Google Search Ads + +- **Headline limits:** 30 characters each (up to 15 headlines) +- **Description limits:** 90 characters each (up to 4 descriptions) +- Include keywords naturally +- Use all available headline slots +- Include numbers and stats when possible +- Test dynamic keyword insertion + +### Meta Ads (Facebook/Instagram) + +- **Primary text:** 125 characters visible (can be longer, gets truncated) +- **Headline:** 40 characters recommended +- Front-load the hook (first line matters most) +- Emojis can work but test +- Questions perform well +- Keep image text under 20% + +### LinkedIn Ads + +- **Intro text:** 600 characters max (150 recommended) +- **Headline:** 200 characters max (70 recommended) +- Professional tone (but not boring) +- Specific job outcomes resonate +- Stats and social proof important +- Avoid consumer-style hype + +--- + +## Copy Testing Priority + +When testing ad copy, focus on these elements in order of impact: + +1. **Hook/angle** (biggest impact on performance) +2. **Headline** +3. **Primary benefit** +4. **CTA** +5. **Supporting proof points** + +Test one element at a time for clean data. diff --git a/skills/paid-ads/references/audience-targeting.md b/skills/paid-ads/references/audience-targeting.md new file mode 100644 index 0000000..a0f5695 --- /dev/null +++ b/skills/paid-ads/references/audience-targeting.md @@ -0,0 +1,234 @@ +# Audience Targeting Reference + +Detailed targeting strategies for each major ad platform. + +## Google Ads Audiences + +### Search Campaign Targeting + +**Keywords:** +- Exact match: [keyword] — most precise, lower volume +- Phrase match: "keyword" — moderate precision and volume +- Broad match: keyword — highest volume, use with smart bidding + +**Audience layering:** +- Add audiences in "observation" mode first +- Analyze performance by audience +- Switch to "targeting" mode for high performers + +**RLSA (Remarketing Lists for Search Ads):** +- Bid higher on past visitors searching your terms +- Show different ads to returning searchers +- Exclude converters from prospecting campaigns + +### Display/YouTube Targeting + +**Custom intent audiences:** +- Based on recent search behavior +- Create from your converting keywords +- High intent, good for prospecting + +**In-market audiences:** +- People actively researching solutions +- Pre-built by Google +- Layer with demographics for precision + +**Affinity audiences:** +- Based on interests and habits +- Better for awareness +- Broad but can exclude irrelevant + +**Customer match:** +- Upload email lists +- Retarget existing customers +- Create lookalikes from best customers + +**Similar/lookalike audiences:** +- Based on your customer match lists +- Expand reach while maintaining relevance +- Best when source list is high-quality customers + +--- + +## Meta Audiences + +### Core Audiences (Interest/Demographic) + +**Interest targeting tips:** +- Layer interests with AND logic for precision +- Use Audience Insights to research interests +- Start broad, let algorithm optimize +- Exclude existing customers always + +**Demographic targeting:** +- Age and gender (if product-specific) +- Location (down to zip/postal code) +- Language +- Education and work (limited data now) + +**Behavior targeting:** +- Purchase behavior +- Device usage +- Travel patterns +- Life events + +### Custom Audiences + +**Website visitors:** +- All visitors (last 180 days max) +- Specific page visitors +- Time on site thresholds +- Frequency (visited X times) + +**Customer list:** +- Upload emails/phone numbers +- Match rate typically 30-70% +- Refresh regularly for accuracy + +**Engagement audiences:** +- Video viewers (25%, 50%, 75%, 95%) +- Page/profile engagers +- Form openers +- Instagram engagers + +**App activity:** +- App installers +- In-app events +- Purchase events + +### Lookalike Audiences + +**Source audience quality matters:** +- Use high-LTV customers, not all customers +- Purchasers > leads > all visitors +- Minimum 100 source users, ideally 1,000+ + +**Size recommendations:** +- 1% — most similar, smallest reach +- 1-3% — good balance for most +- 3-5% — broader, good for scale +- 5-10% — very broad, awareness only + +**Layering strategies:** +- Lookalike + interest = more precision early +- Test lookalike-only as you scale +- Exclude the source audience + +--- + +## LinkedIn Audiences + +### Job-Based Targeting + +**Job titles:** +- Be specific (CMO vs. "Marketing") +- LinkedIn normalizes titles, but verify +- Stack related titles +- Exclude irrelevant titles + +**Job functions:** +- Broader than titles +- Combine with seniority level +- Good for awareness campaigns + +**Seniority levels:** +- Entry, Senior, Manager, Director, VP, CXO, Partner +- Layer with function for precision + +**Skills:** +- Self-reported, less reliable +- Good for technical roles +- Use as expansion layer + +### Company-Based Targeting + +**Company size:** +- 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5000+ +- Key filter for B2B + +**Industry:** +- Based on company classification +- Can be broad, layer with other criteria + +**Company names (ABM):** +- Upload target account list +- Minimum 300 companies recommended +- Match rate varies + +**Company growth rate:** +- Hiring rapidly = budget available +- Good signal for timing + +### High-Performing Combinations + +| Use Case | Targeting Combination | +|----------|----------------------| +| Enterprise sales | Company size 1000+ + VP/CXO + Industry | +| SMB sales | Company size 11-200 + Manager/Director + Function | +| Developer tools | Skills + Job function + Company type | +| ABM campaigns | Company list + Decision-maker titles | +| Broad awareness | Industry + Seniority + Geography | + +--- + +## Twitter/X Audiences + +### Targeting options: +- Follower lookalikes (accounts similar to followers of X) +- Interest categories +- Keywords (in tweets) +- Conversation topics +- Events +- Tailored audiences (your lists) + +### Best practices: +- Follower lookalikes of relevant accounts work well +- Keyword targeting catches active conversations +- Lower CPMs than LinkedIn/Meta +- Less precise, better for awareness + +--- + +## TikTok Audiences + +### Targeting options: +- Demographics (age, gender, location) +- Interests (TikTok's categories) +- Behaviors (video interactions) +- Device (iOS/Android, connection type) +- Custom audiences (pixel, customer file) +- Lookalike audiences + +### Best practices: +- Younger skew (18-34 primarily) +- Interest targeting is broad +- Creative matters more than targeting +- Let algorithm optimize with broad targeting + +--- + +## Audience Size Guidelines + +| Platform | Minimum Recommended | Ideal Range | +|----------|-------------------|-------------| +| Google Search | 1,000+ searches/mo | 5,000-50,000 | +| Google Display | 100,000+ | 500K-5M | +| Meta | 100,000+ | 500K-10M | +| LinkedIn | 50,000+ | 100K-500K | +| Twitter/X | 50,000+ | 100K-1M | +| TikTok | 100,000+ | 1M+ | + +Too narrow = expensive, slow learning +Too broad = wasted spend, poor relevance + +--- + +## Exclusion Strategy + +Always exclude: +- Existing customers (unless upsell) +- Recent converters (7-14 days) +- Bounced visitors (<10 sec) +- Employees (by company or email list) +- Irrelevant page visitors (careers, support) +- Competitors (if identifiable) diff --git a/skills/paid-ads/references/platform-setup-checklists.md b/skills/paid-ads/references/platform-setup-checklists.md new file mode 100644 index 0000000..16fe2a8 --- /dev/null +++ b/skills/paid-ads/references/platform-setup-checklists.md @@ -0,0 +1,269 @@ +# Platform Setup Checklists + +Complete setup checklists for major ad platforms. + +## Google Ads Setup + +### Account Foundation + +- [ ] Google Ads account created and verified +- [ ] Billing information added +- [ ] Time zone and currency set correctly +- [ ] Account access granted to team members + +### Conversion Tracking + +- [ ] Google tag installed on all pages +- [ ] Conversion actions created (purchase, lead, signup) +- [ ] Conversion values assigned (if applicable) +- [ ] Enhanced conversions enabled +- [ ] Test conversions firing correctly +- [ ] Import conversions from GA4 (optional) + +### Analytics Integration + +- [ ] Google Analytics 4 linked +- [ ] Auto-tagging enabled +- [ ] GA4 audiences available in Google Ads +- [ ] Cross-domain tracking set up (if multiple domains) + +### Audience Setup + +- [ ] Remarketing tag verified +- [ ] Website visitor audiences created: + - All visitors (180 days) + - Key page visitors (pricing, demo, features) + - Converters (for exclusion) +- [ ] Customer match lists uploaded +- [ ] Similar audiences enabled + +### Campaign Readiness + +- [ ] Negative keyword lists created: + - Universal negatives (free, jobs, careers, reviews, complaints) + - Competitor negatives (if needed) + - Irrelevant industry terms +- [ ] Location targeting set (include/exclude) +- [ ] Language targeting set +- [ ] Ad schedule configured (if B2B, business hours) +- [ ] Device bid adjustments considered + +### Ad Extensions + +- [ ] Sitelinks (4-6 relevant pages) +- [ ] Callouts (key benefits, offers) +- [ ] Structured snippets (features, types, services) +- [ ] Call extension (if phone leads valuable) +- [ ] Lead form extension (if using) +- [ ] Price extensions (if applicable) +- [ ] Image extensions (where available) + +### Brand Protection + +- [ ] Brand campaign running (protect branded terms) +- [ ] Competitor campaigns considered +- [ ] Brand terms in negative lists for non-brand campaigns + +--- + +## Meta Ads Setup + +### Business Manager Foundation + +- [ ] Business Manager created +- [ ] Business verified (if running certain ad types) +- [ ] Ad account created within Business Manager +- [ ] Payment method added +- [ ] Team access configured with proper roles + +### Pixel & Tracking + +- [ ] Meta Pixel installed on all pages +- [ ] Standard events configured: + - PageView (automatic) + - ViewContent (product/feature pages) + - Lead (form submissions) + - Purchase (conversions) + - AddToCart (if e-commerce) + - InitiateCheckout (if e-commerce) +- [ ] Conversions API (CAPI) set up for server-side tracking +- [ ] Event Match Quality score > 6 +- [ ] Test events in Events Manager + +### Domain & Aggregated Events + +- [ ] Domain verified in Business Manager +- [ ] Aggregated Event Measurement configured +- [ ] Top 8 events prioritized in order of importance +- [ ] Web events prioritized for iOS 14+ tracking + +### Audience Setup + +- [ ] Custom audiences created: + - Website visitors (all, 30/60/90/180 days) + - Key page visitors + - Video viewers (25%, 50%, 75%, 95%) + - Page/Instagram engagers + - Customer list uploaded +- [ ] Lookalike audiences created (1%, 1-3%) +- [ ] Saved audiences for common targeting + +### Catalog (E-commerce) + +- [ ] Product catalog connected +- [ ] Product feed updating correctly +- [ ] Catalog sales campaigns enabled +- [ ] Dynamic product ads configured + +### Creative Assets + +- [ ] Images in correct sizes: + - Feed: 1080x1080 (1:1) + - Stories/Reels: 1080x1920 (9:16) + - Landscape: 1200x628 (1.91:1) +- [ ] Videos in correct formats +- [ ] Ad copy variations ready +- [ ] UTM parameters in all destination URLs + +### Compliance + +- [ ] Special Ad Categories declared (if housing, credit, employment, politics) +- [ ] Landing page complies with Meta policies +- [ ] No prohibited content in ads + +--- + +## LinkedIn Ads Setup + +### Campaign Manager Foundation + +- [ ] Campaign Manager account created +- [ ] Company Page connected +- [ ] Billing information added +- [ ] Team access configured + +### Insight Tag & Tracking + +- [ ] LinkedIn Insight Tag installed on all pages +- [ ] Tag verified and firing +- [ ] Conversion tracking configured: + - URL-based conversions + - Event-specific conversions +- [ ] Conversion values set (if applicable) + +### Audience Setup + +- [ ] Matched Audiences created: + - Website retargeting audiences + - Company list uploaded (for ABM) + - Contact list uploaded +- [ ] Lookalike audiences created +- [ ] Saved audiences for common targeting + +### Lead Gen Forms (if using) + +- [ ] Lead gen form templates created +- [ ] Form fields selected (minimize for conversion) +- [ ] Privacy policy URL added +- [ ] Thank you message configured +- [ ] CRM integration set up (or CSV export process) + +### Document Ads (if using) + +- [ ] Documents uploaded (PDF, PowerPoint) +- [ ] Gating configured (full gate or preview) +- [ ] Lead gen form connected + +### Creative Assets + +- [ ] Single image ads: 1200x627 (1.91:1) or 1080x1080 (1:1) +- [ ] Carousel images ready +- [ ] Video specs met (if using) +- [ ] Ad copy within character limits: + - Intro text: 600 max, 150 recommended + - Headline: 200 max, 70 recommended + +### Budget Considerations + +- [ ] Budget realistic for LinkedIn CPCs ($8-15+ typical) +- [ ] Audience size validated (50K+ recommended) +- [ ] Daily vs. lifetime budget decided +- [ ] Bid strategy selected + +--- + +## Twitter/X Ads Setup + +### Account Foundation + +- [ ] Ads account created +- [ ] Payment method added +- [ ] Account verified (if required) + +### Tracking + +- [ ] Twitter Pixel installed +- [ ] Conversion events created +- [ ] Website tag verified + +### Audience Setup + +- [ ] Tailored audiences created: + - Website visitors + - Customer lists +- [ ] Follower lookalikes identified +- [ ] Interest and keyword targets researched + +### Creative + +- [ ] Tweet copy within 280 characters +- [ ] Images: 1200x675 (1.91:1) or 1200x1200 (1:1) +- [ ] Video specs met (if using) +- [ ] Cards configured (website, app, etc.) + +--- + +## TikTok Ads Setup + +### Account Foundation + +- [ ] TikTok Ads Manager account created +- [ ] Business verification completed +- [ ] Payment method added + +### Pixel & Tracking + +- [ ] TikTok Pixel installed +- [ ] Events configured (ViewContent, Purchase, etc.) +- [ ] Events API set up (recommended) + +### Audience Setup + +- [ ] Custom audiences created +- [ ] Lookalike audiences created +- [ ] Interest categories identified + +### Creative + +- [ ] Vertical video (9:16) ready +- [ ] Native-feeling content (not too polished) +- [ ] First 3 seconds are compelling hooks +- [ ] Captions added (most watch without sound) +- [ ] Music/sounds selected (licensed if needed) + +--- + +## Universal Pre-Launch Checklist + +Before launching any campaign: + +- [ ] Conversion tracking tested with real conversion +- [ ] Landing page loads fast (<3 sec) +- [ ] Landing page mobile-friendly +- [ ] UTM parameters working +- [ ] Budget set correctly (daily vs. lifetime) +- [ ] Start/end dates correct +- [ ] Targeting matches intended audience +- [ ] Ad creative approved +- [ ] Team notified of launch +- [ ] Reporting dashboard ready