124 lines
3.6 KiB
Markdown
124 lines
3.6 KiB
Markdown
|
|
# RevenueCat Integration
|
||
|
|
|
||
|
|
## Setup
|
||
|
|
|
||
|
|
Add RevenueCat config to `config.json`:
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"revenuecat": {
|
||
|
|
"v1SecretKey": "sk_...",
|
||
|
|
"projectId": "your-project-id"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
Get the **V1 Secret API Key** from RevenueCat Dashboard → Project Settings → API Keys. Use the **secret** key (sk_), NOT the public key.
|
||
|
|
|
||
|
|
## API Endpoints
|
||
|
|
|
||
|
|
### Get Overview Metrics
|
||
|
|
RevenueCat doesn't expose dashboard overview via API. Use the V1 subscriber endpoint to track individual conversions, or scrape the dashboard via browser automation.
|
||
|
|
|
||
|
|
**Alternative: Webhooks.** Set up RevenueCat webhooks to log events (trial_started, initial_purchase, renewal, cancellation) to a local JSON file that the skill can read.
|
||
|
|
|
||
|
|
### Get Subscriber Info (V1)
|
||
|
|
```
|
||
|
|
GET https://api.revenuecat.com/v1/subscribers/{app_user_id}
|
||
|
|
Authorization: Bearer {v1SecretKey}
|
||
|
|
```
|
||
|
|
|
||
|
|
Returns: active subscriptions, entitlements, purchase history, management URL.
|
||
|
|
|
||
|
|
### List Subscribers (V2 — if available)
|
||
|
|
```
|
||
|
|
GET https://api.revenuecat.com/v2/projects/{projectId}/customers
|
||
|
|
Authorization: Bearer {v2SecretKey}
|
||
|
|
```
|
||
|
|
|
||
|
|
## Daily Report Script
|
||
|
|
|
||
|
|
`scripts/daily-report.js` runs daily to:
|
||
|
|
|
||
|
|
1. **Pull TikTok analytics** from Postiz (last 3 days of posts)
|
||
|
|
2. **Pull conversion data** from RevenueCat webhook logs OR manual input
|
||
|
|
3. **Cross-reference** post timing with conversion spikes
|
||
|
|
4. **Generate report** identifying which hooks drove actual revenue
|
||
|
|
|
||
|
|
### Cross-Reference Logic
|
||
|
|
|
||
|
|
```
|
||
|
|
For each day in last 3 days:
|
||
|
|
1. Get all TikTok posts and their view counts
|
||
|
|
2. Get all new trials + paid conversions from RevenueCat
|
||
|
|
3. Correlate: conversion spikes within 24h of high-view posts
|
||
|
|
4. Score each hook: (conversions in 24h window) / (views / 1000) = conversion rate per 1K views
|
||
|
|
5. Rank hooks by conversion rate, not just views
|
||
|
|
```
|
||
|
|
|
||
|
|
### Why 3 Days?
|
||
|
|
- TikTok posts peak at 24-48h then tail off
|
||
|
|
- Conversion attribution window is ~24-72h
|
||
|
|
- Shorter = miss delayed conversions, longer = too noisy
|
||
|
|
|
||
|
|
## Webhook Setup (Recommended)
|
||
|
|
|
||
|
|
In RevenueCat Dashboard → Project Settings → Webhooks:
|
||
|
|
|
||
|
|
1. Set webhook URL to your server OR log to file
|
||
|
|
2. Events to track:
|
||
|
|
- `INITIAL_PURCHASE` — new paid subscriber
|
||
|
|
- `TRIAL_STARTED` — new trial
|
||
|
|
- `TRIAL_CONVERTED` — trial → paid
|
||
|
|
- `RENEWAL` — existing subscriber renewed
|
||
|
|
- `CANCELLATION` — subscriber cancelled
|
||
|
|
- `EXPIRATION` — subscription expired
|
||
|
|
|
||
|
|
Store events in `tiktok-marketing/rc-events.json`:
|
||
|
|
```json
|
||
|
|
[
|
||
|
|
{
|
||
|
|
"event": "INITIAL_PURCHASE",
|
||
|
|
"timestamp": "2026-02-15T14:00:00Z",
|
||
|
|
"product": "fullAccessMonthly",
|
||
|
|
"revenue": 4.99,
|
||
|
|
"currency": "USD"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
```
|
||
|
|
|
||
|
|
If no webhook available, the user can manually update this file or the agent can prompt for daily numbers:
|
||
|
|
- "How many new trials today?"
|
||
|
|
- "How many paid conversions?"
|
||
|
|
- "Current MRR?"
|
||
|
|
|
||
|
|
## Report Output
|
||
|
|
|
||
|
|
The daily report generates `tiktok-marketing/reports/YYYY-MM-DD.md`:
|
||
|
|
|
||
|
|
```markdown
|
||
|
|
# Daily Marketing Report — Feb 15, 2026
|
||
|
|
|
||
|
|
## TikTok Performance (Last 3 Days)
|
||
|
|
| Date | Hook | Views | Likes | Saves |
|
||
|
|
|------|------|-------|-------|-------|
|
||
|
|
| Feb 15 | boyfriend + catalogue | 12,400 | 340 | 67 |
|
||
|
|
| Feb 14 | sister prison cell | 8,200 | 215 | 43 |
|
||
|
|
| Feb 13 | nan hook | 3,100 | 89 | 12 |
|
||
|
|
|
||
|
|
## Conversions (Last 3 Days)
|
||
|
|
- New trials: 14
|
||
|
|
- Trial → Paid: 6
|
||
|
|
- New direct purchases: 2
|
||
|
|
- Revenue: $47.92
|
||
|
|
|
||
|
|
## Attribution
|
||
|
|
- Feb 15 spike (8 trials) correlates with "boyfriend + catalogue" post (12.4K views)
|
||
|
|
- Estimated conversion rate: 0.65 per 1K views (GOOD)
|
||
|
|
|
||
|
|
## Recommendations
|
||
|
|
- DOUBLE DOWN on relationship conflict hooks (boyfriend/sister/nan)
|
||
|
|
- Drop listicle format (Feb 13 — low views, 0 correlating conversions)
|
||
|
|
- Test: "My [person] didn't believe AI could redesign our [room]"
|
||
|
|
```
|