Guides

🔁

Advanced Frequency Modes

Three frequency modes that go beyond simple session or day limits — for Adobe Target practitioners who need smarter show/hide control.

Most frequency modes (once per session, once per day, etc.) work entirely in the visitor's browser with no extra setup. The three modes below require a small amount of coordination — either with Adobe Target or with a developer on your site. This guide explains each one in plain terms.

Shows once per visitor, forever — storage key is prefixed for easy QA and AT profile linking

1

Select Profile attribute (AT) in Experience Lab

Open the Frequency section and choose Profile attribute (AT). No other fields are needed.

ELExperience Lab · Sidebar

Frequency

Frequency Type
Profile attribute (AT)

The storage key is prefixed with _at_profile_ — easy to spot in DevTools and easy to link to Adobe Target visitor profiles.

2

Generate and deploy as normal

Configure the rest of your banner, modal, or countdown, generate the script, and paste it into Adobe Target as a Custom Code modification. The activity works exactly like any other — the banner shows once per visitor, then never again.

3

To reset a visitor during QA

Open Chrome DevTools (F12) → ApplicationLocal Storage → your site's domain. Find the key starting with _at_profile_, delete it, then refresh — the banner reappears.

Chrome DevTools
ElementsConsoleSourcesNetworkApplication

Storage

▸ Local Storage
https://your-site.com
KeyValue
_gaGA1.1.123456…
_at_profile_at_banner_sale_ends…{"shown":true}
at_banner_newsletter_frequency{"shown":true}
Right-click the highlighted row → Delete to reset display for this visitor
📝Need cross-device suppression?
By default the conversion flag lives in the visitor's browser — switch device and the banner can show again. For most campaigns this is fine. If you need the flag to follow the visitor across devices, use Adobe Target profile attributes (steps below) or AEP audiences. Both require the visitor to be logged in so Target can recognise them as the same person.

Cross-device suppression with Adobe Target profile attributes

Adobe Target stores a server-side profile for every visitor. When a visitor logs in and you pass their identifier to Target, their profile follows them across devices and browsers. You can write a flag to that profile on conversion — Target then excludes them from the activity on every device automatically. No localStorage, no tag manager needed for the suppression itself.

⚠️Requires authenticated visitors
This only works for visitors who log in. Anonymous visitors have no cross-device identity, so Target cannot link their sessions across devices. If most of your traffic is anonymous, the localStorage approach is still the right choice.

Part 1 — Pass the visitor ID to Adobe Target on login

When a visitor logs in, your site needs to tell Target who they are. This is done by setting the mbox3rdPartyId— a unique ID you control, typically a hashed email address or a CRM customer ID. Target uses this to link all of that visitor's sessions into one profile.

If your site uses at.js:

Add to your login success handler (or Adobe Tags rule that fires on login)
// Call this after the visitor successfully logs in.
// Use a value that uniquely identifies them — hashed email or CRM ID.
// Never use a plain email address (always hash it first).
adobe.target.registerExtension && adobe.target.registerExtension({});
window.targetPageParamsAll = window.targetPageParamsAll || function() { return {}; };

// The simplest approach: set it as a global param so all future mbox calls include it
window.targetPageParams = function() {
  return {
    mbox3rdPartyId: 'HASHED_EMAIL_OR_CRM_ID'  // replace with your actual value
  };
};

If your site uses Adobe Web SDK (Alloy):

Add to your login success handler
// Send the authenticated identity to AEP/Target via the Web SDK
alloy("sendEvent", {
  renderDecisions: true,
  xdm: {
    identityMap: {
      // Use whichever namespace matches your identity setup in AEP
      Email: [{
        id: "HASHED_EMAIL_OR_CRM_ID",
        authenticatedState: "authenticated",
        primary: true
      }]
    }
  }
});

Part 2 — Set the profile attribute on conversion

On the confirmation/thank-you page, fire a Target call that writes a profile attribute marking this visitor as converted. You can do this in Adobe Tags (no developer needed) or in your site code.

Using at.js:

Confirmation page — Adobe Tags Custom Code action or site code
// Writes profile.bannerConverted = 'true' to the visitor's Target profile.
// Choose an attribute name that describes your specific campaign,
// e.g. profile.trialBannerConverted or profile.summerSaleConverted
adobe.target.trackEvent({
  mbox: 'conversion-flag',   // any mbox name — it just needs to fire
  params: {
    'profile.bannerConverted': 'true'
  }
});

Using Adobe Web SDK (Alloy):

Confirmation page — Adobe Tags Custom Code action or site code
alloy("sendEvent", {
  xdm: { eventType: "commerce.purchases" },   // or whatever event type fits
  data: {
    __adobe: {
      target: {
        "profile.bannerConverted": "true"
      }
    }
  }
});
💡Doing this in Adobe Tags
Create a Rule that fires on your confirmation page URL. Add a Custom Code action and paste in the snippet above. Publish — no developer needed. The profile attribute is written to Target the moment the visitor lands on the confirmation page.

Part 3 — Create an audience in Adobe Target

1

Go to Audiences in Adobe Target

In Adobe Target, navigate to Audiences → Create Audience. Give it a clear name, e.g. Converted — Banner Suppressed.

2

Add a Visitor Profile rule

Click Add Rule → Visitor Profile. In the attribute field, type the exact attribute name you used in your code — bannerConverted (without the profile. prefix — Target strips it in the audience builder). Set the condition to equals and the value to true.

3

Save the audience

Click Save. The audience will now include any visitor whose profile has bannerConverted = true — across all their devices.

1In Adobe Target, go to Audiences → Create Audience and give it a clear name — e.g. Converted — Banner Suppressed
2Click Add Rule and select Visitor Profile from the category list
3Set the attribute to bannerConverted, condition to equals, and value to true. Save the audience.
experience.adobe.com/#/@org/target/audiences/create
AAdobe Target
AudiencesCreate Audience
Audience Name *
Converted — Banner Suppressed
Audience Rules
Geo
Browser
Custom Parameters
Operating System
Site Pages
Traffic Sources
Time Frame
Visitor Profile
Visitor Profile
bannerConverted
equals
true
Audience matches visitors where all rules are true

* Attribute name note — In the audience builder, enter bannerConverted without the profile. prefix. Adobe Target strips it automatically when displaying profile attributes in the audience UI.

Part 4 — Exclude the audience from your activity

1

Open your Target activity

Go to your banner/countdown activity in Adobe Target and click Edit (or open it in the three-dot menu).

2

Go to the Targeting step

In the activity workflow, click through to the Targeting step (step 2). This is where you control who sees which experience.

3

Change the activity audience to exclude converted visitors

You have two options. Option A (cleanest): Set the activity's main audience to All Visitors and add an audience exclusion — click the gear icon next to the experience → Exclude Audience → select your Converted — Banner Suppressed audience. Option B: Create a new audience called Not Yet Converted using the same Visitor Profile rule but with condition does not equal true(or “does not exist”), and set that as the activity audience.

4

Save and activate

Save changes and activate (or re-activate) the activity. Visitors who have the profile attribute set will no longer receive the experience — on any device they log in from.

💡Testing
To verify: complete a test conversion (fire the profile attribute), then open a new browser or incognito window, log in as the same test visitor, and load the page. The banner should not appear. To reset, you'll need to clear the profile attribute — either wait for AT's profile expiry (90 days by default) or contact your AT admin to reset the profile via the Profile API.

🎯 Want this set up properly from the start?

Getting frequency logic, profile attributes, and audience exclusions right takes time — especially across multiple activities. Experience Lab handles the full setup: activity configuration, frequency strategy, AT profile wiring, and QA. You get it done once, done right.

Let's talk