What are Cohorts?
A cohort is a privacy-safe representation of an audience.Traditionally, user IDs like third-party cookies have been used to communicate information about audiences and activate (target) them. A publisher might communicate behavioral data for a user to an ad server by attaching the data to a cookie ID. The ad server uses the cookie ID to record information about the user—both information from the publisher and other data parties they work with—and the ad server can later target an ad for a request from that user based on the information it has attached to their cookie ID.With cohorts, a code represents the group of users that fall into an audience. In the example above, when the publisher requests an ad from the ad server for the user, it includes the cohort code in the request, but not a user ID. The ad server can use the cohort code(s) to decision on the ad to respond with, but no other publisher or user data is leaked and a profile of the user cannot be built.By removing user identifiers from the equation, users' privacy is protected, the publisher's data cannot be targeted off of their site/app, and publishers can provide reachability (scale) to the ecosystem since cohorts can be built & activated in environments like Apple Safari, Mozilla Firefox, and iOS where third-party cookies and other deterministic identifiers are prohibited.Cohort Types
- Behavioral
- Classification Model
- Contextual
Based on user actions and event patterns tracked through the SDK.Example: A user who reads 5+ sports articles becomes part of the "sports_enthusiast" cohort.
User reads article about tennis
↓
Track event: "Pageview" with properties
↓
Permutive evaluates: "User read 3+ sports articles in 7 days?"
↓
User enters cohort: "sports_enthusiast"What are Activations?
Activations are subsets of cohorts configured for specific ad platforms. Not all cohorts are activated for all platforms—activations allow you to control which cohorts are sent to which ad networks.Why use Activations?
Why use Activations?
- Platform-specific targeting - Different ad platforms may need different cohorts
- Data governance - Control which platforms receive which user segments
- Performance optimization - Only send relevant cohorts to each platform
- Compliance - Manage consent and privacy requirements per platform
Available Activation Types
| Activation Type | Platform | Use Case |
|---|---|---|
dfp | Google Ad Manager | Standard behavioral cohort activations |
dfp_contextual | Google Ad Manager | Real-time contextual cohorts |
appnexus_adserver | Xandr/AppNexus | Standard behavioral cohort activations |
appnexus_adserver_contextual | Xandr/AppNexus | Real-time contextual cohorts |
freewheel | Freewheel | CTV/video ad targeting |
Cohorts vs. Activations
| Aspect | Cohorts | Activations |
|---|---|---|
| Definition | All segments a user belongs to | Cohorts configured for specific platforms |
| Scope | Entire Permutive system | Platform-specific |
| Purpose | User segmentation | Ad targeting |
| Configuration | Automatic based on events | Configured in dashboard |
currentCohorts and activations via currentActivations.
Example:
Accessing Cohorts and Activations
- Get Cohorts
- Get Activations
- Reactive Updates
Get all cohorts the user currently belongs to:
Use Cases
Personalization
Personalization
Feature Flags / A/B Testing
Feature Flags / A/B Testing
Dynamic Ad Targeting
Dynamic Ad Targeting
Activations are automatically used by our add-on libraries:
Analytics and Logging
Analytics and Logging
Contextual Cohorts in Detail
Contextual cohorts require SDK version 1.10.0+, feature enabled by your CSM, and page/video tracking with URLs.Contextual Data Guide
Complete contextual cohorts documentation
Deprecated APIs
The SDK previously used integer-based segment IDs. These are now deprecated:Classification Model cohorts and contextual cohorts use string identifiers. The new APIs support all cohort types uniformly.
Troubleshooting
Empty cohorts list
Empty cohorts list
Problem:
currentCohorts returns an empty list.Solutions:- Wait a few seconds after initialization
- Track some events and check again
- Use TriggersProvider for reactive updates
- Enable debug logging to see sync status
Activations different from cohorts
Activations different from cohorts
Problem: User is in a cohort but it doesn’t appear in activations.Cause: Not all cohorts are activated for all platforms. This is configured in your Permutive dashboard.Solution: Check your dashboard configuration or contact your Customer Success Manager.
Contextual cohorts not appearing
Contextual cohorts not appearing
Problem:
dfp_contextual activations are empty.Solutions:- Verify feature is enabled with your CSM
- Update to SDK 1.10.0+
- Ensure you’re using PageTracker with valid URLs
- Check debug logs for classification errors
Best Practices
- Do
- Don't
- Use
currentCohortsfor one-time checks - Use TriggersProvider for reactive updates
- Check activation keys exist before accessing
- Handle empty lists gracefully
- Log cohorts for debugging (in development only)