Wisp
Getting Started
Product Tour
The Campaign Builder
Meet Wisp
Discounts
The Campaigns Page
The Wisp Notification
The Notification Feed
Installing Wisp on 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
Installing Wisp with Google Tag Manager
Install Wisp for Shopify
Installing Wisp Manually
Embedding the Wisp Feed
Advanced Feed Customization
Set up Goal Tracking for Wisp
Campaign Strategy
Configure Custom Properties for Wisp
Managing Your Account
Integrations
Wisepops
Getting Started
👋 Meet Wisepops
âž• Add Wisepops to Your Website
✨ How to create your first welcome popup
🔗 Connect Wisepops to Your Email Service Provider
📱 Design Mobile Popups
🤓 Best practices for popups
Campaign Builder
Design Your Campaign
Write Your Own CSS Rules into Your Popups
Create a Spin-to-Win Campaign
How To Create an Embed
Design FAQ
Create a Thank You Message (or Display a Coupon) After Sign-Up
Use a Custom Font in Your Campaign
How to Use the Custom Position for Bars
Closing Options
Blocks
Custom code
Insert social widgets into your popups
Embed a SurveyMonkey Quiz Into a Popup
Embed a Typeform in Your Popup
How to add a Video to a pop-up?
Tab
JavaScript
Events documentation
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
Generic examples
Stop Displaying a Campaign When the Cross Close Icon Is Clicked
Dynamically Add a Custom Parameter to a Redirect URL
Fire the Facebook Pixel When a form is Submitted
Forbid Disposable Emails in Your Signup Form
Display a Popup Only After Another One Has Been Seen (or Clicked)
Forbid Free Emails in Your Signup Form
Create a Spin-the-Wheel Popup Without Collecting the User’s Email Address
Add a coupon to the clipboard after signup
Create a Micro-Commitment Popup
Add Custom Validation to Your Signup Forms
Flag a Popup as Clicked With JS Code
Display a form field conditionally
Close a Popup With JS Code
Send the data collected by a form to the redirected URL
Display Scenario Settings
Triggers
Target a Popup To Display on Link Click
Target a Popup To Display on Hover
Trigger a Popup When Your Visitors Press the Back Button
Adding a delay to your popup
Create an Exit Popup
Set Custom Events to Trigger Popups
Audience Targeting
How To Test Your Geotargeted Popups
Chrome’s Update and Its Impact on Source URL Targeting
Target a Specific Campaign
Exclude Your Existing Subscribers
Target or Exclude a Specific Country, Region or City
Custom & Ecommerce Properties
Set up Custom Properties for Wisepops
How To Test Your Custom Properties
Shopify Built-In Properties
How to Target (or Exclude) Visitors Who Have Seen a Specific URL
Use Google Tag Manager Variables as Custom Properties
Use Shopify Liquid Variables as Custom Properties
How To Retarget Visitors Who Saw a Specific Page on Your Website
Set Custom Properties Based on Cookie Values
Default Custom Properties in Magento
Display a Popup Based on an Alexa Rank Condition (With Clearbit)
Page targeting
Manage Your Frequency Settings
Contextual Targeting for Dummies
Form & Fields
Collect the URL on which the popup form is submitted
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
Personalization
Dashboard & Analytics
Google Analytics reports
Set up the Google Analytics integration
Use Google Analytics to break down your popups performance by traffic channel
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
Track clicks on your links using Google Analytics
A/B Testing
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
Disable Wisepops on my device
How to Filter Out Internal Traffic
Scheduling your campaigns
How to track clicks in HTML blocks
Time zone used for reporting
Download your emails or survey results
Understand the basic Wisepops metrics
How to track signups with a tracking pixel
How to duplicate and move a campaign
Exclude your device
Integrations
CMS Integrations
WordPress / WooCommerce
Shopify
How to Create an Average Cart Value Booster
Use the wisepops() function on Shopify
Apply a Shopify discount code to the cart
Add a product to the cart when a CTA is clicked (Shopify)
Display a campaign when a product is added to the cart (Shopify)
Add Wisepops with Google Tag Manager
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
Check your code implementation using Google Chrome
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
How to add Wisepops to a custom website?
Add Wisepops to Wordpress/WooCommerce
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
Email Integrations
Klaviyo
Ometria
Splio
DotDigital
Emarsys
Mailchimp
Pipedrive
SendGrid
Hubspot
SendinBlue
Selligent
ActiveCampaign
Drip
Iterable
Customer.io
Other Integrations
Connect Wisepops with Mad Mimi
Connect Wisepops with Campaign Monitor
Connect Wisepops with Bronto
Connect Wisepops with Experian (Cheetah)
Connect Wisepops with Zaius
Connect Wisepops with Actito
Connect Wisepops with Acoustic
Connect Wisepops with Voyado
Connect Wisepops with Listrak
Connect Wisepops with Constant Contact
Connect Wisepops with GetResponse
Connect Wisepops with SmartrMail
Connect Wisepops with Keap (formerly Infusionsoft)
Connect with Mailjet
Connect Wisepops with Omnisend
SMS integrations
Connect Wisepops with Yotpo
Connect Wisepops with Emotive
Connect Wisepops with Blueprint
Connect Wisepops with Postscript
Zapier
Send your leads to a Google Spreadsheet (using Zapier)
How can I take advantage of the Zapier integration?
Connect Wisepops with ConvertKit (through Zapier)
Send a notification when an email is submitted (through Zapier)
Connect Wisepops with AWeber (through Zapier)
Connect with Close.io (through Zapier)
API
Other integrations
Managing Your Account
Security
Data and cookie policy
Data security policy
Limit the impact of Wisepops' cookies on your website
Vulnerability Reports & Bug Bounty Program
Using Wisepops with a Content Security Policy
Datenschutz- und Cookie-Richtlinie
Protect your campaigns against bots
Legal & Compliance
Add/Delete Website
Add, edit, and delete users
Upgrade or downgrade your subscription
How do I cancel my subscription?
Use Distinct Websites for Staging and Production
Use right-to-left writing
FAQ
How to fix email synchronization issues
My popup doesn't display
How to handle required merge fields
Tips for effectively reporting an issue
What are page views?
Preview your popup on a hidden URL
Will Wisepops slow down my website?
Everything you need to know about the migration to V3
Collected emails don't appear on my dashboard
Can I use Wisepops on multiple domains?
Uninstall Wisepops from your Shopify website
Why does my popup look broken?
My Popup is Locked!
Can I show more than one popup on the same page?
Why does my popup appear for a few seconds and disappear?
Tutorials
- All Categories
- Wisepops
- Campaign Builder
- Display Scenario Settings
- Custom & Ecommerce 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. Then, select Custom properties (or Ecommerce).
To create the property in Wisepops, click on Add rule:

Type the name of your property and click on Add X 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 occur 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:
