Woopra Destination

Destination Info
  • Browser
  • Server
Connection Modes
Device-mode Cloud-mode
Web Web
Mobile Mobile
Server Server

Our Woopra destination code is all open-source on GitHub if you want to check it out: Javascript, Server.

Getting Started

When you enable Woopra in the Segment web app, your changes appear in the Segment CDN in about 45 minutes, and then Analytics.js starts asynchronously loading Woopra’s javascript onto your page. This means you should remove Woopra’s snippet from your page.

  • Woopra starts automatically collecting data on your site.

Woopra is supported on client-side and server-side.


When you call .page() in the browser, we will pass all the properties of the page such as url, referrer, path, and etc. If you pass a name in your .page() call, we will send that as title to Woopra.

Note: .page() calls are not supported when sending those events server side or using mobile libraries.


Client Side

When you call identify on analytics.js, we call Woopra’s woopraTracker.addVisitorProperty for each trait that you pass in. These traits are stored in the Woopra cookie, and will be sent on the next page load.

Server Side

When you call identify from the server-side languages, we call Woopra’s HTTP REST API with the traits that you pass in.


Woopra does not accept data sent using the Segment group method.


Client Side

When you call track on analytics.js, we call Woopra’s woopraTracker.pushEvent with the a single settings object where the event parameter you pass is set as settings.name for the Woopra event.

Server Side

When you call track from the server-side languages, we call Woopra’s HTTP REST API with the event properties that you pass in.

The default Woopra online timeout is set to 60 seconds, but is adjustable with context.Woopra.timeout.


Tying server side events to client side sessions

If you want your server side events to be seen as part of the same “source” or session as your client side events, all you have to do is pass us the wooTracker value inside your cookie. Luckily, you can easily retrieve this value by:

  var woopraCookie = window.woopra.cookie;

  // pass this value to your server

Now from the server side, you can attach it to the integrations.Woopra.cookie property:

(Ruby example)

    user_id: '019mr8mf4r',
    event: 'Purchased Item',
    properties: { revenue: 39.95, shipping: '2-day' },
    integrations: {
      Woopra: {
       cookie: <wooTracker value>

This should let Woopra know that this server side event is part of the same session as the client. Important: Make sure Woopra is capitalized!


Split user profiles

If you are seeing split user profiles, the most likely culprit is that you are calling .identify() only on the backend using one of our server side libraries but NOT on the client side with analytics.js.

Calling .identify() in the browser will effectively map the userId you passed in with the wooTracker cookie value. So in the event that you call .identify() on the server side first, you MUST call .identify() on the client side as well to tie the wooTracker cookie to that userId.

Doing so will ensure that duplicate profiles are not created.


You can send computed traits and audiences generated using Segment Personas to this destination as a user property. To learn more about Personas, contact us for a demo.

For user-property destinations, an identify call is sent to the destination for each user being added and removed. The property name is the snake_cased version of the audience name, with a true/false value to indicate membership. For example, when a user first completes an order in the last 30 days, Personas sends an Identify call with the property order_completed_last_30days: true. When the user no longer satisfies this condition (for example, it’s been more than 30 days since their last order), Personas sets that value to false.

When you first create an audience, Personas sends an Identify call for every user in that audience. Later audience syncs only send updates for users whose membership has changed since the last sync.

Supported Sources and Connection Modes

Before you start, make sure Woopra supports the source type and connection mode you’ve chosen to implement. You can learn more about connection modes here.

Web Mobile Server
📱 Device-mode ⬜️ ⬜️
☁️ Cloud-mode

Segment offers an optional Device-based Connection Mode for Mobile data going to Woopra, so that you can use Woopra features that collect data directly from the mobile device. To do this, you must package the Segment-Woopra mobile SDK with the Segment mobile library.


Segment lets you change these destination settings from the Segment app without having to touch any code.

Setting Description
string. Domain scope of the Woopra cookie
string, defaults to wooTracker .

Name of the cookie to identify the visitor.
string, defaults to / .

Directory scope of the Woopra cookie
string. This is the name of your project in Woopra.
Download Pause number, defaults to 200.

Time in millisecond to pause the browser to ensure that the event is tracked when visitor clicks on a download url.
Download Tracking boolean, defaults to TRUE .

Track downloads on the web page
Hide Campaign boolean, defaults to FALSE .

Enable if you want woopra to hide campaign properties from the URL
Idle Timeout number, defaults to 300000.

Idle time after which the user is considered offline
Ignore Query URL boolean, defaults to TRUE .

Ignores the querystring when you page()
Outgoing Ignore Subdomains boolean, defaults to TRUE .

Do not include links to subdomains as outgoing links
Outgoing Pause number, defaults to 400.

Time in millisecond to pause the browser to ensure that the event is tracked when visitor clicks on an outgoing url.
Outgoing Tracking boolean, defaults to TRUE .

Track external links clicks on the web page
Ping boolean, defaults to TRUE .

Ping Woopra servers to ensure that the visitor is still on the webpage
Ping Interval number, defaults to 12000.

Time interval in milliseconds between each ping

This page was last modified: 10 Nov 2021

Get started with Segment

Segment is the easiest way to integrate your websites & mobile apps data to over 300 analytics and growth tools.
Create free account