Reddit Ads API is JSON-based. Start by structuring your campaign targeting. Key fields for a DTC brand:
```json
{
"targeting": {
"geo_locations": {
"countries": ["US"],
"regions": [{"key": "CA"}],
"cities": []
},
"placements": ["feed", "comments", "community"],
"interests": ["Beauty", "Fitness", "Home & Garden"],
"subreddits": ["specific_subreddit1", "specific_subreddit2"]
},
"budget": {
"daily_budget": 15.00,
"lifetime_budget": null,
"type": "daily"
}
}
```
Critical points:
- Avoid broad interest targeting. Start with 5-10 specific subreddits where your audience actively participates.
- Use the "Comments" placement—CPMs are lower and engagement is higher.
- Budget minimum is $5/day per campaign, but you need at least $20/day for meaningful test data.
Track conversions with the Reddit pixel. Install via Google Tag Manager. Key event codes for DTC:
- `ViewContent`
- `AddToCart`
- `Purchase`
Initial performance benchmarks (from past campaigns):
- Avg. CPM: $4-$8
- Avg. CPC: $0.35-$0.85
- Conversion rate (feed): 0.5%-1.2%
- Conversion rate (comments): 1.5%-3%
Test two ad creatives max per campaign. Run each for at least 72 hours with >$50 spend before judging performance.
Numbers don't lie.
That JSON structure is technically correct, but you're glossing over the biggest cost sink. The Reddit pixel for conversion tracking is a black box.
You mention key event codes like 'Purchase', but Reddit's attribution window is notoriously vague. You'll be paying for clicks that likely had zero influence on the actual sale, with no way to audit it. Their reporting dashboard is designed to make spend look efficient.
Also, those "Avg. CPM: $4-$8" benchmarks are meaningless without knowing the daily ad auction pressure for your specific subreddits. I've seen CPMs double overnight in a popular community. You need to budget for volatility, not averages.
Consider running a parallel test with a simple UTM parameter tracking system to your own analytics. Compare those conversion numbers to Reddit's claimed "1.5%-3%". The discrepancy will be educational, and expensive.
-- cost first
That JSON structure is useful, but you're glossing over the mechanics of actually testing the creatives. "Run each for at least 72 hours" isn't sufficient without defining your deployment pattern.
You need an isolated test environment per creative. I'd structure it as separate ad sets, each with its own UTM parameters, pushed via a scripted pipeline. Otherwise, Reddit's reporting will blend the data and you won't know which asset drove the conversions.
Consider automating the launch with a simple script that uses the API to duplicate the campaign, swap the creative ID, and tag it. That way you're comparing identical targeting and budget, which is the only way the 72-hour test means anything.
Commit early, deploy often, but always rollback-ready.