Every marketer running journeys in Adobe Journey Optimizer eventually runs into the same question: how do you make sure the right people (and only the right people) receive a given communication? Someone might not have given permission to be contacted on a certain channel, live in a geographic location or fall into a demographic you shouldn't communicate with, or have an account that's gone inactive even though their information is still sitting in your system.
Getting this right protects two things at once. It keeps you compliant with regulations like the General Data Protection Regulation and the California Consumer Privacy Act, and it protects your deliverability. Emails sent to people who marked them as spam or asked not to be contacted are a fast path to getting spam filtered and having your emails blocked altogether. So let's dive in to three ways you can manage suppressions in Adobe Journey Optimizer.
The most straightforward approach is building exclusion audiences directly in Journey Optimizer or Adobe Experience Platform, then applying them at journey entry. You build your qualifying audience the way you normally would, then layer an exclusion audience on top, so anyone who matches it never enters the journey. It's a really flat, simple approach: nothing more programmatic than an audience you build once and apply at entry.
The tradeoff is that it takes some upfront work to build that exclusion audience, and you'll want to repeat those same actions at the construction of every journey going forward.
That's why exit criteria matter as much as entry criteria. If someone updates their preferences while they're already progressing through a journey, entry criteria alone won't catch it, since that evaluation only happens once, at the initial entrance. Adding exit criteria means Journey Optimizer keeps checking whether someone still qualifies and removes them the moment they don't.
Here's a look at how you can build an exclusion audience in Journey Optimizer and add the exit criteria:
There's also a reporting tradeoff you should know about when choosing this method. If you exclude someone at entry, you lose visibility into how many people would have entered the journey if not for the exclusion. You can still check the size of the exclusion audience itself for a rough sense of scale, but that's a lookalike figure, not the actual number of people who would have entered and were held back.
Some teams instead leave the exclusion audience out of entry entirely and apply it only as an exit criterion, which brings that reporting back, at the cost of a higher (and noisier) number of journey entries. Either way, this approach is broad strokes by nature. It applies across the whole journey rather than to a specific channel.
The second approach inserts a condition before each communication action: a yes-or-no check for whether someone has consent for that specific communication before the journey moves forward.
Conditional checks are critical here, because they're usable for channel-based communication in a way entry and exit criteria aren't. Take a journey that starts with pseudonymous, web-based personalization, the kind of thing that happens when someone's browsing and adding items to cart. Once that person converts, the communication shifts to being tied to their account instead of their anonymous actions, and at that point you're moving into a level of communication that requires a different, higher bar of consent. A conditional check at that juncture confirms someone's given permission before the journey proceeds any further.
Here's an example of what a conditional check looks like in Journey Optimizer:
The same logic applies at login. When an anonymous profile becomes an identified one, you can re-evaluate which audiences someone belongs to right then, and use that to determine which channels to boot them out of, rather than waiting for the next full entry-criteria evaluation to catch up.
The third approach lives at the Adobe Experience Platform level, in policies tied to marketing actions. A policy can determine whether someone can be communicated with via a certain marketing action based on their audiences or profile attributes. For example, you can have a rule that says don't communicate with anyone whose profile includes a "don't send me emails" attribute, applied to everything tagged with the email marketing action.
Policies and marketing actions don't need a one-to-one relationship, which is what makes this approach so scalable. The same "don't email me" policy could apply to a personal communication marketing action too, while a separate marketing action for transactional emails stays untouched, since a "thank you for your purchase" email matters in a way that "you considered purchasing" marketing email doesn't. When you build a channel in Journey Optimizer, say, a marketing emails channel, you can attach several marketing actions to it at once, and every policy tied to those actions applies automatically, filtering out anyone who shouldn't be reached.
The below image shows how you can create consent policies in Adobe Experience Platform:
This is, in a lot of ways, the ideal approach, as it's much more programmatic and scalable than either of the other two. The challenge right now is that it doesn't come with built-in reporting. We're actively working with Adobe on getting that in place.
The strongest setups combine all three. Entry and exit criteria handle broad audience management with the least ongoing effort. Conditional checks step in at the specific junctures where channel-level precision matters. Policies apply scalable, programmatic rules across every relevant marketing action, and in a lot of ways represent the ideal approach for that reason alone. If reporting on exactly who was excluded and why matters most to you, lean more heavily on conditions and exit criteria. If scale across many actions and channels matters more, let policies do the heavier lifting.
|
PRO TIP A quick note on Real-Time CDP: entry criteria for audience qualification carries over well to Real-Time CDP destinations. Policies are configured in Adobe Experience Platform rather than Journey Optimizer, so that piece travels too. Conditional checks and exit criteria, on the other hand, are specific to Journey Optimizer journeys. If your suppression strategy spans both tools, expect entry criteria and policies to do double duty while conditional checks stay journey-specific. There's more to gain from aligning your entry criteria and audience strategy across both platforms if Real-Time CDP is already part of your stack. |
None of these approaches require you to choose blind. We help clients set up entry criteria, conditional checks, and policies to match their specific compliance and channel needs, and where policy-based reporting still falls short, we build Customer Journey Analytics dashboards that show who was excluded, why, and at what point they hit that exit criteria, giving you audit-compliant reporting. We're also actively testing in this landscape and communicating with Adobe directly to help improve the built-in reporting capabilities.
Beyond the reporting question, this is really about making sure your journeys are reaching the right people and respecting the communication preferences your customers have already told you about, which matters both for compliance and for staying out of the spam filter. If you're working through how to structure communication suppression across Journey Optimizer and Experience Platform, we'd love to talk through your setup. Reach out to our Journey Optimizer team to get started.