Getting started
Meet Wisepops: your onsite marketing platform
Getting started with popups
Getting started with notifications
Onsite marketing performance benchmark and best practices
App & features
Popups, sticky bars and embeds
Popups
How to create a popup for mobile
Your first popup with Wisepops: A Step-By-Step Guide
How to add a tab to your popup campaigns
Embeds
Bars
Campaign builder
Design
Create a multi-step campaign
Use a custom font in your campaign
Closing Options
Adding a Countdown Timer
Write Your Own CSS Rules into Your Popups
Display rules
Triggers
Target a Popup to Display on link or CTA Click
On scroll trigger
Target a Popup To Display on Hover
Adding a delay to your popup
Set Custom Events to Trigger Popups
Page targeting
Audience
Targeting new vs. returning visitors
Chrome’s Update and Its Impact on Source URL Targeting
Target by traffic channel, source or UTM parameters
Target a Specific Campaign
Target or Exclude a Specific Country, Region or City
Targeting campaigns to a specific language
Frequency
Advanced targeting
Custom properties
Set up Custom Properties for Wisepops
How To Test Your Custom Properties
Use Google Tag Manager Variables as Custom Properties
Use Shopify Liquid Variables as Custom Properties
Set Custom Properties Based on Cookie Values
Using Custom Properties and Events for contextual targeting in Wisepops
Shopify Built-In Properties
Default Custom Properties in Magento
How to target Klaviyo Segments in Wisepops
JS Callbacks
Introduction to JS Callbacks
After-popup-close Event
After-tracked-click Event
After-form-submit Event
Before-form-submit Event
Before-popup-display Event
Before-tab-display Event
Before-tracked-click Event
Scheduling your campaigns
A/B Testing
Integrations
ESP Integrations
Connect Wisepops with Splio
Connect Wisepops with Mad Mimi
Connect Wisepops with Campaign Monitor
Connect Wisepops with Emarsys
Connect Wisepops with Ometria
Connect Wisepops with Bronto
Connect Wisepops with Experian (Cheetah)
Connect Wisepops with Zaius
Connect Wisepops with Selligent
Connect Wisepops with Actito
Connect Wisepops with Acoustic
Connect Wisepops with Voyado
Connect Wisepops with Listrak
Connect Wisepops with Omnisend
Connect Wisepops with Constant Contact
Connect Wisepops with GetResponse
Connect Wisepops with SmartrMail
Connect Wisepops with Keap (formerly Infusionsoft)
Connect Wisepops with Drip
Connect Wisepops with MailChimp
Connect Wisepops with ActiveCampaign
Connect Wisepops with Brevo (ex Sendinblue)
Connect with Mailjet
Connect Wisepops with ConvertKit (through Zapier)
Connect Wisepops with HubSpot
Connect Wisepops with SendGrid
Integrating Wisepops with Klaviyo
Connect Wisepops with dotdigital
Connect Wisepops with Iterable
Connect Wisepops with Customer.io
Connect Wisepops with Pipedrive
Integrate Wisepops with your ESP using Zapier
Connect Wisepops with AWeber (through Zapier)
Connect with Close.io (through Zapier)
SMS Integrations
Connect Wisepops with Yotpo/SMSBump
Connect Wisepops with Emotive
Connect Wisepops with Blueprint
Connect Wisepops with Postscript
Other integrations
Zapier
Send your leads to a Google Spreadsheet (using Zapier)
How can I take advantage of the Zapier integration?
Send a notification when an email is submitted (through Zapier)
API docs
Campaign Management
Notifications
Notification builder
Integrations
Mastering Notifications: boost customer journeys with Wisepops
Use cases
Upsell & cross sell
Gamification
Create a Spin-the-Wheel Popup Without Collecting the User’s Email Address
Create a Spin-to-Win Campaign
Guidelines for writing game rules
List growth
Create a Thank You Message (or Display a Coupon) After Sign-Up
Collect the URL on which the popup form is submitted
How to handle required merge fields
Add Custom Validation to Your Signup Forms
Add a product to the cart when a CTA is clicked (Shopify)
Collect the UTM parameters when a popup form is submitted
Adding more fields to your form
Select the dates available in your forms
Collect phone numbers / SMS opt-ins with Wisepops
How to pass Dynamic Variables into Hidden Fields
Send the data collected by a form to the redirected URL
How to grow your email list using the notification feed
Geo Targeting
Surveys
How to create a survey with Wisepops
Embed a SurveyMonkey Quiz Into a Popup
Display a form field conditionally
Embed a Typeform in Your Popup
Video
Promote discounts
Apply a Shopify discount code to the cart
How to create unique Shopify discount codes in your popups
Discounts
Referral
Cart or site abandonment
How to create a cart recovery popup with Wisepops
How to create a cart recovery popup with Wisepops (Magento)
How to create a cart recovery popup with Wisepops (Shopify)
Create an Exit Popup
Advanced use cases
Trigger a popup from the notification feed
Dynamically Add a Custom Parameter to a Redirect URL
Fire the Facebook Pixel When a form is Submitted
Forbid Disposable or Free Emails in Your Signup Form
Display a Popup Only After Another One Has Been Seen (or Clicked)
Personalize the Content of Your Popup on the Fly
Apply filters to your dynamic variables
Inject the Name of the Visitor's Company into Your Popups (with Clearbit)
Display the visitor's city within your popup
How to Target (or Exclude) Visitors Who Have Seen a Specific URL
How to retarget visitors who saw a specific page on your website
Display a Popup Based on an Alexa Rank Condition (With Clearbit)
Insert social widgets into your campaigns
Flag a Popup as Clicked With JS Code
Display a campaign when a product is added to the cart (Shopify)
Close a Popup With JS Code
Stop showing a notification after clicking on a popup
Analytics & Reporting
Goal Tracking
Set up Goal Tracking for Wisepops
How to set up Goal Tracking in Shopify
How to Set Up Goal Tracking in Magento
How to set up Goal Tracking using Google Tag Manager
Google Analytics
Integrating Wisepops with Google Analytics for better insights
Use Google Analytics to analyze your campaigns performance by various metrics
Wisepops events in Google Analytics (Universal Analytics)
Wisepops events in Google Analytics (GA4)
Use Google Analytics to identify the pages where your popups perform best
Use Google Analytics to analyze Wisepops impact on your sales (Universal Analytics)
Track clicks on your links using Google Analytics
Set up Goal Tracking - Notifications
Disable Wisepops on my device
How to Filter Out Internal Traffic
How to track clicks in custom HTML blocks
Time zone used for reporting
Exporting your data
Analytics: Understanding how your campaigns perform
How to track signups with a tracking pixel
Exclude your device
Account & Setup
Install the Wisepops tracking code
CMS integrations
Installing Wisepops on your website via Google Tag Manager (GTM)
Add Wisepops to Zoey
Add Wisepops to Webflow
Add Wisepops to Instapage
Add Wisepops to Blogger
Check your code implementation using Mozilla Firefox
Add Wisepops to Big Cartel
Add Wisepops to Drupal 8
Add Wisepops to BigCommerce
Add Wisepops to Umbraco
Add Wisepops to Joomla
Add Wisepops to Squarespace
Add Wisepops to Magento 2
Add Wisepops to Google Sites
Add Wisepops to Cratejoy
Add Wisepops to 3dcart
Add Wisepops to Prestashop
Add Wisepops to Shopify
Add Wisepops to Weebly
Add Wisepops to Segment.com
How to add Wisepops to a custom website?
Add Wisepops to Wordpress/WooCommerce
How to add Wisepops to a Wix website
Add Wisepops to Volusion
Add Wisepops to SiteBuilder
Add Wisepops to Drupal 7
Add Wisepops to Neto
Wisepops on Single-Page Applications
Add Wisepops to Mono
Add Wisepops to Opencart
Integrating Wisepops with your website
Check your code implementation using Google Chrome
Adding the notification feed to your website
Custom Setup Guides for Shopify Themes
Minimal Theme
Dawn theme
Narrative Theme
Debut Theme
Simple Theme
Express Theme
Venture Theme
Brooklyn Theme
Boundless Theme
Supply Theme
Adding the notification feed to your website
Customize your Notifications Feed with Advanced Feed Customization
Hide the bell until the notifications are loaded
Billing
Add/Delete Website
Add, edit or delete users and manage permissions
Use Distinct Websites for Staging and Production
Use right-to-left writing
Uninstall Wisepops from your Shopify website
How to I remove the notification feed from my site
Can I use Wisepops on multiple domains?
Security & Compliance
Legal
GDPR & CCPA compliance
Configure the Wisepops cookies lifetime
Accessibility and compliance with ADA/WCAG
Security
FAQ
Preview/test your campaign on a hidden URL
Popup Design FAQ
Will Wisepops slow down my website?
Exclude Your Existing Subscribers
Is Wisepops compatible with my mobile app?
Can I show more than one popup on the same page?
Troubleshooting
How to fix email synchronization issues
Troubleshooting: Why isn't my campaign appearing?
Tips for effectively reporting an issue
Troubleshooting: Dealing with Ad Blockers and VPNs
Collected emails don't appear on my dashboard
Why does my popup look broken?
My emails are not collected in Mailchimp
My Popup is Locked!
Why does my popup appear for a few seconds and disappear?
- All Categories
- App & features
- Popups, sticky bars and embeds
- Campaign builder
- Display rules
- Advanced targeting
- Custom properties
- Set up Custom Properties for Wisepops
Set up Custom Properties for Wisepops
Updated
by Lisa Fockens
If you're using Google Tag Manager and GTM variables, you can define custom properties from GTM variables.
Introduction
Custom properties allow you to target your visitors using properties that you set up yourself.
Let's say that we want to target visitors who:
- are older than 25
- are in the "travel" segment or in the "sport" segment
- and purchased something at least three days ago
On your website, you can attach such properties to your visitors and Wisepops will be able to target these properties.
Data attached to your visitors are called Custom properties.
Rules based on custom properties are called Custom conditions.
You can also use the custom properties to personalize the content of your popups on the fly.
Defining custom properties
You can use JavaScript to attach custom properties to a visitor. A function wisepops()
is available as soon as our code is executed.
wisepops("properties", customProperties, [options]);
"properties"
: String that indicates that you want to define custom properties. Leave it as it is.customProperties
: This is the dictionary of properties you know about the user, like email, name, age, etc.options
: Optional settings object to configure the properties' behavior. Currently only support thetemporary
option (false by default). See Persistent and temporary properties.
Typically, when someone logs in, we will add the following code, right after the Wisepops setup code:
wisepops("properties", {
firstName: "Boris",
country: "FR",
age: 30,
segments: "cinema,food,travel",
lastPurchaseDate: "2017-05-02T15:52:01+02:00"
});
Persistent and temporary properties
By default, the custom properties are persistent. After defining them on one page, they're still available on the future pages and sessions. If you define again some custom properties, they're merged with the old ones.
The temporary
option allows defining properties only for the current page. The temporary properties are automatically cleared when the page is changed. This is useful to provide context that's relevant only for the current page. Like the price of the product being viewed.
Temporary properties take the precedence over persistent properties. If a temporary property and a persistent property share the same name, the value of the temporary property will be used. But the persistent property will be back on the next page.
To define temporary properties, add the temporary option as 3rd argument:
wisepops("properties", {
productPrice: 19.99,
}, {
temporary: true,
});
Defining custom conditions
To define your custom conditions, open your popup in the builder tool and click Display rules. Then, select Advanced. You can configure your conditions in the Custom properties section (or Shopify properties).
To create the property in Wisepops, click on Add rule:

Type the name of your property and click on Add property.

Then you can set up the conditions to be matched during the display scenario resolution, as shown below.

Formats of custom properties
Each property must be one of the following types:
- String
- Number
- Date
- Boolean
The custom properties dictionary is flattened into a one dimensional object. If you set the following properties:
wisepops("properties", {
user: {
id: 42,
name: "Boris"
}
});
You will then be able to write conditions on the keys user.id
and user.name
About the date type and format
You can set up a property to the current date of the browser by entering the following:
wisepops("properties", {lastPurchaseDate: new Date()});
But you are also free to write dates as strings.
While various formats are handled, we suggest you follow the W3C standard:
2017-05-02T15:52:01+02:00
This is equivalent to 2017-05-02 15:52:01 CEST
.
If no time zone is specified, dates will be handled as UTC.
Negative conditions do not match non-existing properties
It is important to note that the following conditions:
- Is not equal to
- Does not contain
will be matched only for an existing property different from the tested value. If the property is not set, the condition won't pass.
Let's take an example: product.categories does not contain shoes.
Here, we assume that you want your campaign to be displayed for the products that do not have the category shoes. And that you don't want the campaign to be displayed on pages that are not about products.
If instead, we want the campaign to be displayed either if the property is different from the tested value or if the property is not set at all, we can refine the condition like this:

Debugging and troubleshooting
We suggest you define your custom properties just after the Wisepops setup code. The definition of the custom properties must happen within 100 ms after the execution of our setup code. Otherwise, the resolution of the scenarios will occur without the update on your properties.
If the wisepops()
function is not defined, please make sure that the Wisepops setup code is executed first, and is up-to-date.
It should start with (function(W,i,s,e,P,o,p)
.
You can also test your configuration.
The custom property isn't present in the conditions' dropdown
You need to manually type the property name the first time you want to use it. After having clicked in the dropdown, type the property name:
