Kissmetrics is a product analytics platform to help you increase conversion, as well as drive customer engagement and retention.

RudderStack supports sending your events from cloud mode S2S (Server to Server) and Web Native SDKs by calling our APIs.

Find the open source transformer code for this destination in the GitHub repository.

Getting started

To enable sending data to Kissmetrics, you will first need to add it as a destination to the source from which you are sending event data. Once the destination is enabled, events from our SDKs will start to flow to Kissmetrics.

Before configuring Kissmetrics as a destination in RudderStack, please make sure that the source platform is supported by Kissmetrics. You can refer to the following table to do so:

Connection ModeWebMobileServer
Device modeSupported--
Cloud modeSupportedSupportedSupported
To know more about the difference between cloud mode and device mode in RudderStack, refer to the RudderStack Connection Modes guide.

Once you have confirmed that Kissmetrics supports the source type, perform the steps below:

  • From your RudderStack dashboard, add the source and select Kissmetrics as a destination.
  • Give a name to your destination, and then click on Next. You should see the following screen:
image  24   1   1 Connection Settings for Kissmetrics in RudderStack
  • Please enter the API Key in the Connection Settings. You may also enable the Use native SDK to send events setting to send events through Kissmetrics' native JavaScript SDK.

Prefix Properties

Enabling this setting will add the event name to all the properties of the event. This works for page and track properties.

You will need to enable this setting while building reports in Kissmetrics.

  • Once you have finalized the settings, click on Next to complete the configuration and add Kissmetrics as a destination in RudderStack.

Identify

Calling rudderanalytics.identify() pushes an identify call with the userId and set with the user-traits to the Kissmetrics queue object while using the the Native SDK. For more information on the identify call, please refer to our RudderStack Events Specification documentation.

For sending data through the API's cloud mode, we call the http://trk.kissmetrics.com/s end-point for registering users and their traits.

A sample identify call is as shown:

// a sample identify
rudderanalytics.identify("my-userID", {
name: "Tintin",
city: "Brussels",
country: "Belgium",
email: "tintin@herge.com"
});

will pass the following to the _kmq kissmetrics object.

['identify', 'my-userID']
['set',
{
name: "Tintin",
city: "Brussels",
country: "Belgium",
email: "tintin@herge.com"
}
]

Nested objects are flattened as a.b.c for input data {a:{b:c}} before sending the data to Kissmetrics, as it is unable to parse nested objects.

Page

Calling rudderanalytics.page() will record the page properties for event Viewed <category> <name> page. For more information on the page call, please refer to our RudderStack Events Specification documentation.

A sample page event is as shown:

// "home" is the name of the page.
rudderanalytics.page("home", {
path: "path",
url: "url",
title: "title",
search: "search",
referrer: "referrer"
});

The above snippet will pass the following to the _kmq kissmetrics object:

['record', 'Viewed home page', {
path: "path",
url: "url",
title: "title",
search: "search",
referrer: "referrer"
}]

Automatically-tracked Kissmetrics events such as Visited a site, etc. will function as and when integrated with RudderStack. Stay tuned!

Track

Calling rudderanalytics.track() pushes a record with the event name and the associated properties __when using the native SDK integration. For more information on the track call, please refer to our RudderStack Events Specification documentation.

For sending data through the API's cloud mode, we call the http://trk.kissmetrics.com/e end-point for registering the event and its associated properties.

A sample track call is as shown:

rudderanalytics.track("Track me", {
category: "category",
label: "label",
value: "value",
});

will pass the following to the _kmq kissmetrics object.

['record', "Track me", {
category: "category",
label: "label",
value: "value"
}]

An event sent to RudderStack with a property called revenue , is passed on to Kissmetrics as Billing amount as well as revenue.

In order to send E-commerce events that have a product array as one of their track properties, RudderStack sends each product property to the /s endpoint from the cloud mode, or pushes it as ['set', {id:, sku: ...}] from the native SDK.

Alias

Calling rudderanalytics.alias() passes an aliascall with userId and previousId to the Kissmetrics queue, when used as a Native SDK integration.

While passing data using the cloud mode, we call the http://trk.kissmetrics.com/a endpoint to alias user identities.

The following code snippet shows a sample alias call in RudderStack:

// assuming the previous set userId was "my-userID"
rudderanalytics.alias("my-new-userID");

will pass the following to the _kmq kissmetrics object.

['alias', "my-new-userID", "userId"]

Screen

The screen call records the screen views of the user in your App. If you have turned on the screen views in your App implementation from the iOS or Android SDK it will register in your dashboard. We'll forward the properties you've passed along with the screen call as it is.

Here is a sample screen call in using RudderStack iOS SDK:

[[RudderClient sharedInstance] screen:@"Main"
properties:@{@"prop_key" : @"prop_value"}];

FAQs

Where do I get the API Key for Kissmetrics?

You can obtain the Kissmetrics API Key by logging into your Kissmetrics account, and navigating to the Product Settings. Please refer to the following screenshot for more details:

image  13   2 Kissmetrics API Key

Contact us

If you come across any issues while configuring Kissmetrics with RudderStack, please feel free to contact us. You can also start a conversation in our Slack community; we will be happy to talk to you!

Contents