# ExoClick Router Cutover

This is the live cutover runbook for moving ExoClick destination URLs from direct landing pages to Rainmaker's in-house traffic router.

## Objective

Move paid traffic to stable `/go/:slug` links so Rainmaker becomes the source of truth for:

- landing rotation
- attribution
- click logging
- funnel stitching
- reporting

## Live Router Links

Use these exact destination URLs in ExoClick:

| Current Unit | New Destination URL |
| --- | --- |
| banner-before-after | `https://rainmakersports.app/go/banner-before-after` |
| banner-this-could-be-you | `https://rainmakersports.app/go/banner-this-could-be-you` |
| video-ad1 | `https://rainmakersports.app/go/video-ad1` |
| video-ad4 | `https://rainmakersports.app/go/video-ad4` |

Public export:

- `https://rainmakersports.app/exoclick-router-links.csv`

## Cutover Steps

1. Duplicate or pause-edit the current ExoClick ads so rollback is easy.
2. Replace each direct landing URL with its matching `/go/:slug` URL.
3. Keep the ad creative names aligned with the slug names above.
4. Save and re-enable campaigns.
5. Click each live ad once after publish and confirm:
   - it resolves through `/go/:slug`
   - it lands on `landing2` or `landing3`
   - URL contains `click_id`, `slug`, `variant`, `campaign`, `creative`

## First-Hour Monitoring

Watch:

- `GET /api/stats/traffic-router?days=1`

You want to see rows for each active slug with:

- clicks increasing
- landing views increasing
- CTA clicks increasing
- signups and purchases tied to slug + variant

## Pass Criteria

The cutover is healthy when:

- `rm_go_clicks` is receiving new rows from live ExoClick traffic
- `/api/stats/traffic-router?days=1` shows active counts by slug and variant
- no meaningful share of paid traffic is falling back to `(none)/(none)`

## Rollback

If anything breaks:

1. swap ExoClick destination URLs back to the previous direct landing links
2. leave the router code live
3. inspect the latest `rm_go_clicks` and traffic router stats rows to identify the break

## Notes

- The router and billing attribution have already been certified end-to-end.
- The scoreboard is V1 and good enough for live migration.
- Optimization rules and auto-weight changes come after traffic is live on the router.
