# Reddit Campaign UTM Tracking

**Campaign:** FRE-670 - Reddit Beta Recruitment  
**Dates:** May 3-9, 2026  
**Owner:** CMO + CTO

---

## Tracking URLs

Use these exact URLs in each subreddit post:

### r/Screenwriting (Primary)
```
https://scripter.app/beta?utm_source=reddit&utm_medium=social&utm_campaign=beta_recruitment&utm_content=screenwriting
```

### r/Filmmakers (Cross-post)
```
https://scripter.app/beta?utm_source=reddit&utm_medium=social&utm_campaign=beta_recruitment&utm_content=filmmakers
```

### r/Scriptwriting (Follow-up)
```
https://scripter.app/beta?utm_source=reddit&utm_medium=social&utm_campaign=beta_recruitment&utm_content=scriptwriting
```

---

## UTM Parameters Breakdown

| Parameter | Value | Purpose |
|-----------|-------|---------|
| utm_source | reddit | Traffic source |
| utm_medium | social | Channel type |
| utm_campaign | beta_recruitment | Campaign identifier |
| utm_content | [subreddit] | Specific subreddit tracking |

---

## Analytics Dashboard Setup

### Metrics to Track

**Daily Metrics (May 3-9):**
- Page views by utm_content
- Form starts by utm_content
- Form completions (applications) by utm_content
- Conversion rate: applications / page views

**Campaign Totals:**
- Total Reddit traffic
- Total applications from Reddit
- Overall conversion rate
- Cost per acquisition (time investment / applications)

### Dashboard Spec

**Location:** Analytics dashboard (CTO to implement)

**Charts:**
1. **Daily applications by subreddit** (bar chart)
2. **Conversion funnel** (page view → form start → submit)
3. **Cumulative applications** (line chart, target: 100)

**Filters:**
- Date range: May 3-9, 2026
- utm_campaign: beta_recruitment
- utm_source: reddit

---

## Implementation Checklist

- [x] Add UTM tracking to analytics platform (April 27)
- [x] Create Reddit campaign dashboard spec (April 27)
- [x] Set up conversion events (form start, form submit) (April 27)
- [ ] Test tracking URLs (April 28-30)
- [x] Create daily report template (April 27)
- [ ] Share dashboard access with CMO (CTO action)

**Owner:** CMO + CTO  
**Status:** Frontend + backend implementation complete, testing scheduled April 28-30

---

## Daily Reporting Template

### Day 1 (May 3) - Launch Day
- r/Screenwriting post time: [HH:MM PT]
- r/Filmmakers post time: [HH:MM PT]
- Page views: [number]
- Applications: [number]
- Top performing sub: [name]
- Notes: [AMA engagement, mod responses, etc.]

### Day 2 (May 4) - AMA Day
- Comments responded to: [number]
- Page views: [number]
- Applications: [number]
- Cumulative: [number]
- Notes: [engagement quality, questions asked]

### Day 3 (May 5)
- Page views: [number]
- Applications: [number]
- Cumulative: [number]
- Notes: [momentum check]

### Day 4 (May 6) - Update Post Day
- Update post published: [Y/N]
- Page views: [number]
- Applications: [number]
- Cumulative: [number]
- Notes: [60/100 filled update impact]

### Day 5-7 (May 7-9)
- [Continue daily tracking]

---

## Success Metrics

| Metric | Target | Actual | Status |
|--------|--------|--------|--------|
| Total applications | 150 | - | ⏳ |
| Accepted users | 100 | - | ⏳ |
| r/Screenwriting conversion | 66% | - | ⏳ |
| Post upvotes (r/Screenwriting) | 200+ | - | ⏳ |
| Comments (AMA) | 50+ | - | ⏳ |

---

## Post-Campaign Analysis (May 10-12)

**Questions to Answer:**
1. Which subreddit performed best?
2. What was the peak application day?
3. What questions came up most in AMA?
4. What would we do differently next time?
5. Should we run this campaign again?

**Report Owner:** CMO  
**Report Due:** May 12, 2026

---

---

## Implementation Details (April 27, 2026)

### Backend Changes

**File:** `/server/trpc/beta-router.ts`

Added UTM parameter fields to the beta signup schema:
- `utmSource` - Traffic source (e.g., "reddit")
- `utmMedium` - Channel type (e.g., "social")
- `utmCampaign` - Campaign identifier (e.g., "beta_recruitment")
- `utmContent` - Specific content (e.g., "screenwriting", "filmmakers")
- `utmTerm` - Optional term parameter

All UTM parameters are stored in the `metadata` JSON field of the `waitlistSignups` table.

### Frontend Changes

**File:** `/src/routes/beta/BetaSignup.tsx`

Added automatic UTM capture:
- Component extracts UTM parameters from URL query string on mount
- Parameters are passed to the API on form submission
- Works transparently - no user action required

**File:** `/src/lib/api/trpc-hooks.ts`

Updated `useBetaSignup` hook type definition to include UTM fields.

---

## Testing Guide

### Manual Testing (April 28-30)

1. **Test URL with all parameters:**
   ```
   https://scripter.app/beta?utm_source=reddit&utm_medium=social&utm_campaign=beta_recruitment&utm_content=screenwriting
   ```

2. **Fill out and submit the form**

3. **Verify in database:**
   ```sql
   SELECT email, name, source, metadata 
   FROM waitlistSignups 
   WHERE metadata LIKE '%utmSource%' 
   ORDER BY createdAt DESC 
   LIMIT 1;
   ```

4. **Expected metadata JSON:**
   ```json
   {
     "isBetaApplication": true,
     "utmSource": "reddit",
     "utmMedium": "social",
     "utmCampaign": "beta_recruitment",
     "utmContent": "screenwriting",
     "primaryRole": "...",
     ...
   }
   ```

### Test Cases

| Test | URL | Expected utmSource | Expected utmContent |
|------|-----|-------------------|---------------------|
| r/Screenwriting | `?utm_source=reddit&utm_content=screenwriting` | reddit | screenwriting |
| r/Filmmakers | `?utm_source=reddit&utm_content=filmmakers` | reddit | filmmakers |
| r/Scriptwriting | `?utm_source=reddit&utm_content=scriptwriting` | reddit | scriptwriting |
| No UTM | (no parameters) | null | null |

---

**Status:** ✅ UTM tracking implemented (backend + frontend)  
**Implementation:** Beta signup form now captures utm_source, utm_medium, utm_campaign, utm_content, utm_term from URL parameters  
**Next:** Test tracking URLs (April 28-30), CTO to implement analytics dashboard views
