Events
This guide addresses using Events to track and understand user behavior
Events are intended to record various actions a user performs in the app. Unlike Tags that are used to store flat data (such as country, device model, or installation data), event data is stored historically and can be treated as a history of user behavior rather than a set of information about the device. All the contextual information about the event can be passed as a set of attributes and their values.
Once properly collected, this data can be used to:
- trigger behavior-based messages;
- build segments of users who perform a specific action in the app;
- get insights about user flow, usage metrics, and other statistical data.
All events sent by your app must be created in Pushwoosh first with the set of attributes and their types; otherwise, Pushwoosh will not recognize them.
To create an event, go to the Events section of your Control Panel and press the Add event button. Enter the name and description and add the attributes if needed.
Event data is valuable only if it's submitted properly. Therefore, we strongly recommend following the simple guidelines below:
- Try to name events as short as possible;
- Name events after actions a user performs in the app - "LoggedIn", "SignedOut", "Subscribed", etc.;
- Keep in mind that event names are case-sensitive;
- Merge events that describe a single action into a single event. For example, use "Subscribed" event with proper attribution rather than separate "SubscribedToSports", "SubscribedToPolitics", "SubscribedToTechnology" events.

All details describing an event are provided with its attributes. Attributes are key/value pairs and can be of 5 different types: integer, string, list, date, and boolean. For example, you can track user logins and collect login credentials (e.g., logged in with Facebook, Google, Twitter, or email), internet connection type (wifi, cellular, unknown), and whether it was successful or not (true or false values) with a single Login event by specifying its attributes as follows:
attribute | type | value |
type | string | facebook, google, twitter, email |
connection | string | wifi, cellular, unknown |
success | boolean | true, false |
This event will be recorded in Pushwoosh with attribute values and a timestamp, so later it can be used for building segments, targeting messages, and collecting stats.
When an event you’d like to track occurs in your app, call the
/postEvent
API to send this event to Pushwoosh. Swift
Objective-C
PWInAppManager.shared().postEvent("eventName", withAttributes: nil)
[[PushNotificationManager pushManager] postEvent:@“eventName” withAttributes:@{}];
To add details about the event (ref. to Attributes), use the attributes param as follows:
Swift
Objective-C
let attributes: [String : Any] = ["AttributedString" : "someString",
"AttributeInt" : 42,
"AttributeList" : [123, 456, "someString"],
"AttributeBool" : true,
"AttributeDate" : NSDate()]
PWInAppManager.shared().postEvent("eventName", withAttributes: attributes)
NSDictionary *attributes = @{
@"AttributeString" : @"someString",
@"AttributeInt" : @(42),
@"AttributeList" : @[ @(123), @(456), @"someString" ],
@"AttributeBool" : @YES,
@"AttributeDate" : [NSDate date]
};
[[PushNotificationManager pushManager] postEvent:@“eventName” withAttributes:attributes];
When an event occurs in your Android app, use the following instructions to send this event to Pushwoosh.
PushwooshInApp.getInstance().postEvent("eventName");
To add details about the event (ref. to Attributes), use the attributes param as follows:
TagsBundle attributes = new TagsBundle.Builder()
.putInt("AttributeInt", 17)
.putString("AttributeString", "str")
.putDate("AttributeDate", new Date())
.putBoolean("AttributeBool", true)
.putList("AttributeList", Arrays.asList("item1", "item2", "item3"))
.build();
PushwooshInApp.getInstance().postEvent("eventName", attributes);
Purchase Events are an analytical tool, helping you to measure your campaigns' success and ROI. Combining Purchase Events with Conversion Tracking, you can keep track of how much revenue your campaigns generate.
To track Purchase Events, you need to pass two additional attributes with your event:
__amount
and __currency
. The former passes the purchase cost and the latter specifies the currency name. Once you set up Purchase Events, Pushwoosh starts collecting info about your campaigns' revenue and showing this data in campaigns’ stats.Please note that currency must be listed in ISO-4217; otherwise, the revenue won't be counted in statistics.
Swift
Objective-C
Java
PWInAppManager.shared().postEvent("Buy", withAttributes: ["__amount" : 100,
"__currency" : "USD"])
[[PWInAppManager sharedManager] postEvent:@"Buy" withAttributes:@{@"__amount" : @(100), @"__currency" : @"USD"}];
PushwooshInApp.getInstance().postEvent(“Buy”, new TagsBundle.Builder()
.putInt(“__amount”, 100)
.putString(“__currency”, “USD”)
.build());
There's no need to set up
__amount
and __currency
attributes in your Control Panel. Instead, just check the Track Event Revenue checkbox, make sure your postEvent
calls contain the amount and currency attributes, and Pushwoosh will monitor them automatically.
Last modified 8d ago