Campaigns allow you to re-target specific visitor segments while they are still in your website. When the campaign rules are met we show an overlay popup (non-blocking) campaign. These popups grab the user's attention and have relatively high click-through-rate.
Creating a campaign takes no more than a few minutes. You can use one of the ready-made templates or provide your own design. Defining the rules for a campaign is very simple - just choose the rules (visit duration, entry time, geo-location etc.) and set the values (e.g. visitors coming from Canada, entering the website between 15:00-16:00, and visit duration is between 2-5 minutes). To decide on the exact rules for a campaign you can use the BI engine. It produces insights on your goals. For example if you get an insight telling you that 'Visitors who visit the website more than 5 times are less likely to signup' - you can target those visitors with a campaign offering them a discount. You know that most chances are that they will not convert otherwise.


For each campaign you need to define on which pages to activate the campaign.
It can be on all pages or a combination of specific pages, URLs that contain a string, URLs that don't contain a string.
For example, if you define "on URL that contains ['a1', 'b1']; on URL that doesn't contain ['x1', 'y1']; on pages '/docs';"
The campaign will be active on pages that:
1) match "/docs" OR contain "a1" OR contain "b1"
2) don't contain "x1" AND don't contain "y1".

There are many rules you can use to control what campaign to show and when to show it.
In general, a campaign will show only when all the rules are matched ("AND" between the different rules).
A rule is matched if at least one of it's options is met. For example, the rule 'Referrer' matches["facebook.com"], contains["google"] will match for visitors coming from either facebook.com OR google (google.com, google.co.uk etc).
The "contains" option is met when at least one of the strings appears ("OR" between strings).
The "not contains" option is met when all of the strings don't appear ("AND" between strings).

jQuery Selectors

jQuery offers a powerful set of tools for matching a set of elements in a document. Some advanced rules require knowledge in jQuery selectors. For more information visit jQuery selectors documentation or contact your Account Manager.

Live preview

To see a sample campaign click here and after page finishes to load, just go and close the browser tab.
Another template out of many available: click here.
New templates are added all the time. You can also use your own design in the campaign.

Use cases

Campaigns can be used for many purposes. Different rules can trigger different campaigns. Campaigns can target users who have not converted, where conversion can be registering to your service, leaving their contact details, social sharing and many other possibilities - depending on your business.
You can define that a campaign will be triggered only for engaging users, or non-engaging users. The engagement is determined automatically by tracking the user behavior on the website.
Following are just a few examples of things you could do with a targeted real-time campaign:

Lead generation

- Offer your free e-book
- Subscribe to your newsletter
- Let users directly leave their email or phone number

Registration to service

Implement your registration form in the popup.

Offer discount

Provide the user a discount coupon.

'Contact us' form

Let your users send a message easily from within the popup, if they have not reached a specific goal. Maybe they had a problem.

Bring the user to a page she hasn't visited yet

When user leaves your website without converting and without visiting one of your better-converting pages, suggest she visit that page before leaving. Clicking on the popup button will redirect to the page.

Promote a product

Launching a new product or service? easily promote it to all your visitors. Just define the campaign to be active on all pages for all users who have not seen the product page yet.


Implement a short poll inside the popup, or just ask if user is willing to participate, and if so then redirect to another page.

Collecting form data

You can collect data from your users using a campaign by using one of our ready-made templates or by embedding your own form. When using one of the embedded forms we provide (which are customizable) there are several ways for you to get the data:

Get form data by email

We can collect the data for you and send it by email. The form data (usually leads) can also be downloaded as CSV file that can be loaded as-is in to excel or your CRM. These options are the simplest as it requires no integration effort.

Get form data directly to your web-server

There is an option to define a POST URL in your website to which we will POST the data using AJAX. All the collected data will be JSON encoded.

Get form data using callback function

Whenever a form is submitted we call your callback function, if it exists. See API section for more.

How to configure which method to use

API callback is called automatically if the function exists.
Getting by email is done by checking one checkbox in the campaign management console.
To get the form data to your web-server you need to set a POST URL in the campaign management console.


It is important to track the performance of a campaign. Luckily tracking is done automatically and you can use all of the powerful segmentation tools we offer also on the campaigns.
You will see how many times the popup was shown, how many times users engaged with the popup and how. You will be able to segment each action by any dimension in the system (geo-location, day-of-week, pages visited etc.)


Callback function

For running a campaign no coding is needed. But if you wish, you can implement a callback function which we will call and notify you in each stage of the campaign: when popup is shown, when user clicks on a button, submits a form, closes the popup etc.
In all the callbacks we provide the campaign id, campaign name and additional information on the event.
Note that the callback function needs to be implemented by you. If it exists then we call it whenever applicable.

Example for when user clicks on a form button. We call:
   "campaign_id" : 7,
   "campaign_name" : 'Promote launch',
   "event_name" : "button_clicked",
   "event_data" : {
      "button_name" : 'Yes'

Example for when user submits a form using AJAX. We call:
   "campaign_id" : 7,
   "campaign_name" : "Subscribe to newsletter",
   "event_name" : "form_submit_ok",
   "event_data" : {"email":"john@example.com","name":"John"},
   "ajax_response" : response

Example for when user submits a form to callback function. We call:
   "campaign_id" : 7,
   "campaign_name" : "Subscribe to newsletter",
   "event_name" : "form_submitted",
   "event_data" : {"email":"john@example.com","name":"John"}

Example for when there is error in form submit. We call:
   "campaign_id" : 7,
   "campaign_name" : "Subscribe to newsletter",
   "event_name" : "form_submit_error",
   "event_data" : {"email":"john@example.com","name":"John"}

Example for when popup is shown. We call:
   "campaign_id" : 7,
   "campaign_name" : "Subscribe to newsletter",
   "event_name" : "campaign_shown",
   "event_data" : {}

Sample implementation of callback function:
function __ZA_Callback(callbackObj) {
   /*insert your own handling code here*/
   if(callbackObj.event_name == "form_submit_ok" && callbackObj.campaign_id == 5) {

Disabling all campaigns

You can disable all campaigns in a page by setting a global variable:

The variable can be set or cleared at any time. Checking the variable value is done before any triggering of a campaign popup.