What this is
Website Personalization lets you show targeted pop-up messages to visitors on your website. Instead of showing the same message to every visitor, you can create different versions of a message and control who sees each one, based on details like the page they're on, their industry, or how they've interacted with the message before.
This lets your website respond to who's actually visiting it, rather than treating every visitor the same way. This feature is currently in beta.
When to use this
Use Website Personalization when you want to:
- Show different offers or messaging to different types of visitors
- Promote a specific CTA, such as booking a demo, on high-intent pages
- Personalize messaging based on a visitor's industry or company
- Control how often a visitor sees a message, so it doesn't feel repetitive
- Test different messaging approaches before rolling them out broadly
Creating a message
The builder is organized into five tabs: Content, Rules, Design, Behavior, and Get Code.
- In Content, add one or more variants, including the headline, body text, and CTA button for each
- In Rules, create rules to determine which variant each visitor sees, and choose what happens when no rule matches
- In Design, customize the message's layout and appearance
- In Behavior, choose when and how often the message appears, and set up the visitor data source if you use industry or company rules
- Test your rules using the Visitor Simulator, which appears below the preview
- Save your changes
- In Get Code, copy the script and add it to your website
The sections below go into more detail on each part of this process.
Variants
Variants are the different versions of your message. You can add, rename, and delete variants as needed. At least one variant must remain, and each variant name must be unique. Each variant includes:
- Variant Name: An internal name used to identify the variant. Visitors don't see this.
- Headline: The main message shown to visitors.
- Body: Supporting text, up to 150 characters.
- Button Text: The CTA label, such as "Book a demo." The button only appears if this field is filled in.
- Button Link: The page visitors are sent to when they select the CTA.
Message text is displayed as plain text, so HTML isn't supported.
Preview
As you edit a variant, the preview panel shows how the message will appear. You can preview each variant individually and switch between desktop and mobile views.
Rules
Rules determine which variant a given visitor sees. Rules are evaluated from top to bottom, and the first rule that matches is the one that's applied.
Each rule includes:
- Rule Name: A name used to identify the rule.
- If: The conditions a visitor must meet.
- Then: The variant to show when those conditions are met, or Nothing (suppress popup) to show no message. This is useful for exclusions, such as hiding the message from existing customers.
Available If conditions:
| Condition | How it matches |
| Current URL | contains, is exactly, or starts with. Compared against the page path and query string, not the domain (for example, /pricing?plan=pro). |
| Visitor Industry | is one of (a comma-separated list), is exactly, or contains |
| Company Domain | is one of (a comma-separated list), is exactly, or contains |
| Times Shown | is exactly, is at least, or is at most. Counts how many times the message has appeared in that visitor's browser. |
| Times Dismissed | At least a number of times you choose. Counts how many times the visitor closed the message. |
| Clicked CTA | yes or no. Whether the visitor has clicked the button before. |
| Device | desktop or mobile. A browser window narrower than 768 px counts as mobile. |
| UTM Source | The utm_source value in the page URL must match exactly, including uppercase and lowercase. |
Matching for Current URL, Visitor Industry, and Company Domain ignores uppercase and lowercase. Because Current URL includes the query string, use contains or starts with for pages that may carry parameters.
You can add multiple conditions to a single rule. When a rule has more than one condition, all of them must be met for the rule to match. Every rule needs at least one condition before you can save. Rules can be reordered, edited, collapsed, or deleted.
To show a message on specific pages, use the Current URL condition, such as Current URL contains /pricing. The message runs on the pages where you install the script.
Visitor Industry and Company Domain conditions need visitor data to be available to the script. See Visitor Data Source under Behavior.
If no rules match
When no rule matches a visitor, Website Personalization uses the fallback you set under If No Rule Matches. You can show any of your variants, or choose Show nothing. If you don't create any rules, the fallback is what every visitor sees.
Layout & Design
Layout and design settings control how the message looks on your website, including:
- Position: top left, top right, center, bottom left, or bottom right
- Width and padding
- Corner radius
- Text alignment
- Font and headline size
- Background, text, and button color
- Button style and width
- Shadow and border
- Entry animation: Slide up, Fade in, or None
- Background dimming
- Close button
You can also add an optional image using an image URL. The preview updates as you make changes.
Behavior
Behavior settings control when a message appears and how often a visitor can see it.
Show the Popup lets you choose what triggers the message to appear:
- After a delay: Set how many seconds to wait before showing the message, from 0 to 30, using the Delay field.
- After scrolling down the page: Set how far a visitor needs to scroll before the message appears, from 10% to 100% in 5% increments, using the Scroll Depth field.
- On exit intent (desktop only): Shows the message when the visitor's cursor leaves the top of the browser window. No additional configuration is needed.
Frequency lets you choose how often a visitor sees the message, regardless of which trigger you selected:
- Every page load
- Once per session: The message appears once per browser tab. Reloading the page or moving to other pages in the same tab doesn’t show it again, but opening your site in a new tab or window usually starts a new session.
- Once every N days: Uses the Days Between Shows field
Frequency is enforced using browser storage.
Visitors can close the message with the close button (if enabled), by clicking the dimmed background (if dimming is on), or by pressing Esc. Each of these counts as a dismissal.
Visitor Data Source
Rules based on Visitor Industry or Company Domain need that information to be provided to the script. Website Personalization doesn't currently use Website Tracker identification data automatically. Under Visitor Data Source, use one or both of these options:
- Global Variable: The name of a JavaScript variable on your page that contains the visitor's industry and domain, such as visitorData (the default). Enter the name only, without window.. The variable must be an object with industry and domain properties, and it must be available by the time the message is triggered
- Enrichment Endpoint URL: An optional URL that the visitor's browser calls with a GET request. It must return JSON containing industry and domain. The endpoint must be reachable from the visitor's browser, and if it's on a different domain, it must allow requests from your website
The script checks the global variable first. If the variable exists on your page, the script uses it and doesn’t call the endpoint, even if the variable has no industry or domain. If the variable isn’t found, the script calls the endpoint, when you’ve entered one. If neither provides the information, the visitor is treated as unknown, and rules that depend on industry or domain won’t match. The message waits for the endpoint to answer before it is shown, so use an endpoint that responds quickly. If the request fails or returns invalid data, the visitor is treated as unknown.
Testing a message
To test a message on your live website without frequency limits getting in the way, add ?ppg_test=1 to the end of the page URL. This bypasses the frequency setting only. Rules still apply, and the message still counts toward Times Shown and Times Dismissed in your browser. To reset those counts, clear your browser's site data for your website.
Visitor Simulator
The Visitor Simulator is a card below the preview that stays available while you work in any tab. It lets you test which rule and variant would apply to a hypothetical visitor before your message goes live.
You can change the number of times shown, times dismissed, whether the CTA was clicked, the URL path, utm_source, visitor industry, and company domain, and the result updates automatically. You can also start from built-in example visitors. To test a Device condition, use the desktop and mobile controls above the preview.
The Visitor Simulator shows which rule and variant would be selected. It doesn't reproduce the timing, scroll, or exit-intent triggers on a live page.
Adding the message to your website
Go to the Get Code tab, select Copy Script, and paste it before the closing </body> tag on the pages where you want the message to run.
The script is self-contained: your variants, rules, fallback, design, and behavior settings are all included in it. Saving your changes in Propensity doesn't update a script that's already on your website. After you make changes, copy the updated script and replace the one on your site for the changes to take effect.
Important notes
- If no rules match a visitor, the fallback you set under If No Rule Matches is used. This can be a variant or no message at all
- Page targeting is done with the Current URL condition, and the message only runs on pages where the script is installed
- Visitor Industry and Company Domain rules only work when visitor data is provided through Visitor Data Source
- Times Shown, Times Dismissed, and Clicked CTA are tracked in each visitor's own browser
- The Visitor Simulator tests which rule and variant would be selected, not the trigger timing
- Saving updates your configuration in Propensity. To update what runs on your website, copy and install the updated script
- The script runs in your visitors' browsers, so rule values and message text are visible in your page source. Avoid placing confidential information, such as lists of client domains, in rules or messages