Skip to main content
Understanding cohorts and activations is fundamental to using the Permutive SDK effectively.

Cohorts

Activations

Contextual

What are Cohorts?

Cohort Types

What are Activations?

Available Activation Types

Cohorts vs. Activations

In the SDK, access cohorts via cohorts and activations via activations. Example:

Accessing Cohorts and Activations

Get all cohorts the user currently belongs to:
cohorts and activations return snapshot values at the time they’re called. For real-time updates, use TriggerProvider.

Async API

Requires SDK v3.0.0+. These methods use Swift concurrency (async/await) and are available in Swift only.
The async variants - cohorts(), activations(), and googleCustomTargeting(adTargetable:) - wait for cohorts and activations to settle (for any events still being processed) before returning the current values. If they don’t settle within a short timeout (defaults to 500ms), the methods fall back to the currently cached values. This matters most for time-sensitive ad requests: after tracking the page a user just opened, you want the ad request’s targeting to reflect that page rather than the previous one. Awaiting googleCustomTargeting(adTargetable:) gives the new cohorts a brief window to settle, then builds targeting from the freshest values available. Get cohorts, awaiting any pending events:
Get activations, awaiting any pending events:
Build an ad request whose targeting reflects the page the user just opened:
Reach for the async methods when timing matters (right after tracking). For a quick read where pending cohorts are possible, the synchronous cohorts / activations properties avoid the await.

Use Cases

Activations are used with ad targeting:

Contextual Cohorts

Contextual cohorts are generated in real-time based on content being viewed. They require SDK version 2.0.0+ and feature enablement by your CSM.

Contextual Data Guide

Complete contextual cohorts documentation

tvOS Considerations

tvOS Note: Cohorts and activations work identically on tvOS. The same APIs are available, and cohort data syncs across all Apple platforms when identity is set.

Troubleshooting

Problem: cohorts returns an empty set.Solutions:
  • Wait a few seconds after initialization
  • Track some events to generate data
  • Use TriggerProvider for reactive updates
  • Enable debug logging to see sync status
  • Verify cohorts are configured in your dashboard
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.
Problem: dfp_contextual activations are empty.Solutions:
  • Verify feature is enabled with your CSM
  • Update to SDK 2.0.0+
  • Ensure you’re using PageTracker with valid URLs
  • Verify the URL is publicly accessible
  • Check debug logs for classification errors

Best Practices

  • Use cohorts for one-time checks
  • Use TriggerProvider for reactive updates
  • Check activation keys exist before accessing
  • Handle empty sets gracefully
  • Log cohorts for debugging (in development only)
  • Cache cohort checks that are expensive to re-evaluate

Triggers Provider

Reactive cohort updates

Contextual Data

Content-based segmentation

Google Ad Manager

GAM integration

Xandr Integration

AppNexus integration