Below, you’ll find a bunch of in-app events recommended for different app categories.
To implement any of these or other events:
create an Event in your Pushwoosh Control Panel and add attributes if needed;
integrate the postEvent method into your mobile project, providing the name of the event and its attributes exactly as they are in the Control Panel.
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Event name " , { // event name exactly as in Control Panel
" attribute 1 " : " string value " , // attribute name and type exactly as in Control Panel
" attribute 2 " : " string value " // attribute name and type exactly as in Control Panel
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" attribute 1 " : " string value " , // attribute name and type exactly as in Control Panel
" attribute 2 " : " string value " // attribute name and type exactly as in Control Panel
PWInAppManager. shared (). postEvent ( " Event name " , withAttributes : attributes ) // event name exactly as in Control Pane
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" attribute 1 " : @" string value " , // attribute name and type exactly as in Control Panel
@" attribute 2 " : @" string value " //attribute name and type exactly as in Control Panel
[[PushNotificationManager pushManager ] postEvent : @“eventName” withAttributes : attributes ]; // event name exactly as in Control Panel
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " attribute 1 " , " string value " ) //attribute name and type exactly as in Control Panel
. putString ( " attribute 2 " , " string value " ) //attribute name and type exactly as in Control Panel
PushwooshInApp . getInstance () . postEvent ( " Event name " , attributes ) ; // event name exactly as in Control Panel
Note
The samples below can be simply pasted into your app, provided there is a corresponding Event and its attributes are created in your Control Panel. Once integrated, the event data will be collected and become available in Audience -> Events -> Event statistics, and you will be able to use the event in campaign planning.
Mobile apps
Log out
Trigger this event when users log out of their accounts in your app.
Recommended attributes:
user_id: String
date: Date
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Log out " , {
" user_id " : " string value " ,
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" user_id " : " string value " ,
PWInAppManager. shared (). postEvent ( " Log out " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" user_id " : @" string value " ,
[[PushNotificationManager pushManager ] postEvent : @" Log out " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " user_id " , " string value " )
. putString ( " date " , " date value " )
PushwooshInApp . getInstance () . postEvent ( " Log out " , attributes ) ;
Payment method added
Fire this event when a user adds a payment method to their account in your app, e.g. provides card credentials or links the account to a payment system.
Recommended attributes:
payment_method: String,
user_id: String
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Payment method added " , {
" user_id " : " string value " ,
" payment_method " : " string value "
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" user_id " : " string value " ,
" payment_method " : " string value "
PWInAppManager. shared (). postEvent ( " Payment method added " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" payment_method " : @" string value " ,
@" user_id " : @" string value "
[[PushNotificationManager pushManager ] postEvent : @" Payment method added " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " payment_method " , " string value " )
. putString ( " user_id " , " string value " )
PushwooshInApp . getInstance () . postEvent ( " Payment method added " , attributes ) ;
Payment method changed
Send this event when a user updates their payment method in the app.
Recommended attributes:
user_id: String,
payment_method: String
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Payment method changed " , {
" user_id " : " string value " ,
" payment_method " : " string value "
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" user_id " : " string value " ,
" payment_method " : " string value "
PWInAppManager. shared (). postEvent ( " Payment method changed " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" user_id " : @" string value " ,
@" payment_method " : @" string value "
[[PushNotificationManager pushManager ] postEvent : @" Payment method changed " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " user_id " , " string value " )
. putString ( " payment_method " , " string value " )
PushwooshInApp . getInstance () . postEvent ( " Payment method changed " , attributes ) ;
Track button clicks within the app with this event to improve your analytics, test various communication strategies, and increase relevance of your messages based on customer behavior.
Recommended event attributes:
user_id: String
button_link: String
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Button clicked " , {
" user_id " : " string value " ,
" button_link " : " string value "
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" user_id " : " string value " ,
" button_link " : " string value "
PWInAppManager. shared (). postEvent ( " Button clicked " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" user_id " : @" string value " ,
@" button_link " : @" string value "
[[PushNotificationManager pushManager ] postEvent : @" Button clicked " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " user_id " , " string value " )
. putString ( " button_link " , " string value " )
PushwooshInApp . getInstance () . postEvent ( " Button clicked " , attributes ) ;
Application updated
Trigger this event every time a user installs an updated version of your app.
Recommended attributes:
previous_app_version: String
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Application updated " , {
" previous_app_version " : " string value "
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" previous_app_version " : " string value "
PWInAppManager. shared (). postEvent ( " Application updated " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" previous_app_version " : @" string value "
[[PushNotificationManager pushManager ] postEvent : @" Application updated " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " previous_app_version " , " string value " )
PushwooshInApp . getInstance () . postEvent ( " Application updated " , attributes ) ;
OS updated
Fire this event when a user updates their device’s OS version to ensure your app is fully compliant.
Recommended attributes:
previous_OS_version: String
new_OS_version: String
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " OS updated " , {
" previous_OS_version " : " string value " ,
" new_OS_version " : " string value "
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" previous_OS_version " : " string value " ,
" new_OS_version " : " string value "
PWInAppManager. shared (). postEvent ( " OS updated " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" previous_OS_version " : @" string value " ,
@" new_OS_version " : @" string value "
[[PushNotificationManager pushManager ] postEvent : @" OS updated " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " previous_OS_version " , " string value " )
. putString ( " new_OS_version " , " string value " )
PushwooshInApp . getInstance () . postEvent ( " OS updated " , attributes ) ;
E-Commerce
Product added to cart
Fire this event once a user adds product to their cart to build Abandoned Cart campaigns, set user tags, or analyze the efficiency of your promotions.
Recommended attributes:
product_id: String
price: Integer
source: String
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Product added to cart " , {
" product_id " : " string value " ,
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" product_id " : " string value " ,
" source " : " string value "
PWInAppManager. shared (). postEvent ( " Product added to cart " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" product_id " : @" string value " ,
@" source " : @" string value "
[[PushNotificationManager pushManager ] postEvent : @" Product added to cart " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " product_id " , " string value " )
. putString ( " source " , " string value " )
PushwooshInApp . getInstance () . postEvent ( " Product added to cart " , attributes ) ;
Discounted purchase
Trigger this event once a user purchases any product using a discount coupon.
Recommended attributes:
product_id: String
coupon_id: String
price: Integer
discount: String
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Discounted purchase " , {
" product_id " : " string value " ,
" coupon_id " : " string value " ,
" discount " : " string value "
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" product_id " : " string value " ,
" coupon_id " : " string value " ,
" discount " : " string value "
PWInAppManager. shared (). postEvent ( " Discounted purchase " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" product_id " : @" string value " ,
@" coupon_id " : @" string value " ,
@" discount " : @" string value "
[[PushNotificationManager pushManager ] postEvent : @" Discounted purchase " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " product_id " , " string value " )
. putString ( " coupon_id " , " string value " )
. putString ( " discount " , " string value " )
PushwooshInApp . getInstance () . postEvent ( " Discounted purchase " , attributes ) ;
Product page abandoned
Fire this event when a user leaves a product page without a conversion action.
Recommended attributes:
product_id: String
price: Integer
source: String
product_page_id: String
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Product Page abandoned " , {
" product_id " : " string value " ,
" source " : " string value " ,
" product_page_id " : " string value "
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" product_id " : " string value " ,
" source " : " string value " ,
" product_page_id " : " string value "
PWInAppManager. shared (). postEvent ( " Product Page abandoned " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" product_id " : @" string value " ,
@" source " : @" string value " ,
@" product_page_id " : @" string value "
[[PushNotificationManager pushManager ] postEvent : @" Product Page abandoned " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " product_id " , " string value " )
. putString ( " source " , " string value " )
. putString ( " product_page_id " , " string value " )
PushwooshInApp . getInstance () . postEvent ( " Product Page abandoned " , attributes ) ;
Product added to wishlist
Stay informed of the products that users have saved to their wishlists and create personal offers and promo campaigns.
Recommended attributes:
product_id: String
wishlist_id: String
product_price: Integer
source: String
user_id: String
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Product added to wishlist " , {
" product_id " : " string value " ,
" currency " : " string value " ,
" source " : " string value " ,
" user_id " : " string value "
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" product_id " : " string value " ,
" wishlist_id " : " string value " ,
" source " : " string value " ,
" user_id " : " string value "
PWInAppManager. shared (). postEvent ( " Product added to wishlist " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" product_id " : @" string value " ,
@" wishlist_id " : @" string value " ,
@" source " : @" string value " ,
@" user_id " : @" string value "
[[PushNotificationManager pushManager ] postEvent : @" Product added to wishlist " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " product_id " , " string value " )
. putString ( " wishlist_id " , " string value " )
. putInt ( " product_price " , 1 )
. putString ( " source " , " string value " )
. putString ( " user_id " , " string value " )
PushwooshInApp . getInstance () . postEvent ( " Product added to wishlist " , attributes ) ;
Product removed from wishlist
Fire this event when a user deletes a product from their wishlist.
Recommended attributes:
user_id: String
wishlist_id: String
product_id: String
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Product removed from wishlist " , {
" wishlist_id " : " string value " ,
" user_id " : " string value " ,
" product_id " : " string value "
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" wishlist_id " : " string value " ,
" user_id " : " string value " ,
" product_id " : " string value "
PWInAppManager. shared (). postEvent ( " Product removed from wishlist " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" wishlist_id " : @" string value " ,
@" user_id " : @" string value " ,
@" product_id " : @" string value "
[[PushNotificationManager pushManager ] postEvent : @Product removed from wishlist " withAttributes:attributes];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " wishlist_id " , " string value " )
. putString ( " user_id " , " string value " )
. putString ( " product_id " , " string value " )
PushwooshInApp . getInstance () . postEvent ( " Product removed from wishlist " , attributes ) ;
Product category
Send this event when a user purchases a product of a specific category.
Recommended attributes:
product_id: String
product_category: String
currency: String
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Product category " , {
" product_id " : " string value " ,
" product_category " : " string value " ,
" currency " : " string value "
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" product_id " : " string value " ,
" product_category " : " string value " ,
" currency " : " string value "
PWInAppManager. shared (). postEvent ( " Product category " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" product_id " : @" string value " ,
@" product_category " : @" string value " ,
@" currency " : @" string value "
[[PushNotificationManager pushManager ] postEvent : @" Product category " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " product_id " , " string value " )
. putString ( " product_category " , " string value " )
. putString ( " currency " , " string value " )
PushwooshInApp . getInstance () . postEvent ( " Product category " , attributes ) ;
First purchase
Trigger this event once a user makes their first purchase.
Recommended attributes:
product_id: String,
category: String
date: Date
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " First purchase " , {
" product_id " : " string value " ,
" category " : " string value " ,
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" product_id " : " string value " ,
" category " : " string value " ,
PWInAppManager. shared (). postEvent ( " First purchase " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" product_id " : @" string value " ,
@" category " : @" string value " ,
[[PushNotificationManager pushManager ] postEvent : @" First purchase " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " product_id " , " string value " )
. putString ( " category " , " string value " )
. putBoolean ( " date " , " date value " )
PushwooshInApp . getInstance () . postEvent ( " First purchase " , attributes ) ;
Gaming Apps
New level
When a user reaches a new game level, trigger the New level event.
Recommended attributes:
level_id: String
user_id: String
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " New level " , {
" level_id " : " string value " ,
" user_id " : " string value "
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" level_id " : " string value " ,
" user_id " : " string value "
PWInAppManager. shared (). postEvent ( " New level " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" level_id " : @" string value " ,
@" user_id " : @" string value "
[[PushNotificationManager pushManager ] postEvent : @" New level " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " level_id " , " string value " )
. putString ( " user_id " , " string value " )
PushwooshInApp . getInstance () . postEvent ( " New level " , attributes ) ;
Level completed
Send this event when a user completes a particular game level.
Recommended attributes:
level_id: String
user_id: String
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Level completed " , {
" level_id " : " string value " ,
" user_id " : " string value "
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" level_id " : " string value " ,
" user_id " : " string value "
PWInAppManager. shared (). postEvent ( " Level completed " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" level_id " : @" string value " ,
@" user_id " : @" string value "
[[PushNotificationManager pushManager ] postEvent : @" Level completed " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " level_id " , " string value " )
. putString ( " user_id " , " string value " )
PushwooshInApp . getInstance () . postEvent ( " Level completed " , attributes ) ;
Virtual currency earned
Fire this event when a user’s virtual currency balance tops up.
Recommended attributes:
currency_name: String
quantity: Integer
user_id: String
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Virtual currency earned " , {
" currency_name " : " string value " ,
" user_id " : " string value "
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" currency_name " : " string value " ,
" user_id " : " string value "
PWInAppManager. shared (). postEvent ( " Virtual currency earned " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" currency_name " : @" string value " ,
@" user_id " : @" string value "
[[PushNotificationManager pushManager ] postEvent : @" Virtual currency earned " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " currency_name " , " string value " )
. putString ( " user_id " , " string value " )
PushwooshInApp . getInstance () . postEvent ( " Virtual currency earned " , attributes ) ;
Tutorial completed
Trigger this event when a user completes the in-game tutorial.
Recommended attributes:
tutorial_name: String
completion: Boolean
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Tutorial completed " , {
" tutorial_name " : " string value " ,
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" tutorial_name " : " string value " ,
PWInAppManager. shared (). postEvent ( " Tutorial completed " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" tutorial_name " : @" string value " ,
[[PushNotificationManager pushManager ] postEvent : @" Tutorial completed " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " tutorial_name " , " string value " )
. putBoolean ( " completion " , true )
PushwooshInApp . getInstance () . postEvent ( " Tutorial completed " , attributes ) ;
Achievement unlocked
Monitor user engagement with the event fired when a user unlocks a specific achievement.
Recommended attributes:
achievement_name: String
level: Integer
user_id: String
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Achievement unlocked " , {
" achievemnt_name " : " string value " ,
" user_id " : " string value "
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" achievement_name " : " string value " ,
" user_id " : " string value "
PWInAppManager. shared (). postEvent ( " Achievement unlocked " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" achievement_name " : @" string value " ,
@" user_id " : " string value "
[[PushNotificationManager pushManager ] postEvent : @" Achievement unlocked " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " achievemnt_name " , " string value " )
. putString ( " user_id " , " string value)
PushwooshInApp.getInstance().postEvent( " Achievement unlocked " , attributes);
Subscription Management
Paid subscription purchase
Send this event when a user has bought a paid subscription plan.
Recommended attributes:
subscription_plan_name: String
price: Integer
currency:String
expiry_date:Date
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Paid subscription purchase " , {
" subscription_plan_name " : " string value " ,
" currency " : " string value " ,
" expiry_date " : " new Date() "
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" subscription_plan_name " : " string value " ,
" currency " : " string value " ,
PWInAppManager. shared (). postEvent ( " Paid subscription purchase " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" subscription_plan_name " : @" string value " ,
@" currency " : @" string value " ,
@" expiry_date " : [ NSDate date ]
[[PushNotificationManager pushManager ] postEvent : @" Paid subscription purchase " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " subscription_plan_name " , " string value " )
. putString ( " currency " , " string value " )
. putDate ( " expiry_date " , new Date ())
PushwooshInApp . getInstance () . postEvent ( " Paid subscription purchase " , attributes ) ;
Subscription renewal
Trigger this event once a user renews their subscription plan.
Recommended attributes:
subscription_plan_name: String
price: Integer
currency: String
renewal_count: Integer
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Subscription renewal " , {
" subscription_plan_name " : " string value " ,
" currency " : " string value " ,
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" subscription_plan_name " : " string value " ,
" currency " : " string value " ,
PWInAppManager. shared (). postEvent ( " Subscription renewal " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" subscription_plan_name " : @" string value " ,
@" currency " : @" string value " ,
[[PushNotificationManager pushManager ] postEvent : @" Subscription renewal " withAttributes : attributes ];
// To use with iOS SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " subscription_plan_name " , " string value " )
. putString ( " currency " , " string value " )
. putInt ( " renewal_count " , 1 )
PushwooshInApp . getInstance () . postEvent ( " Subscription renewal " , attributes ) ;
Free trial started
Trigger this event when a user chooses to start a free trial before getting a subscription.
Recommended attributes:
free_trial_name: String
expiry_date: Date
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Free trial started " , {
" free_trial_name " : " string value " ,
" expiry_date " : " new Date() "
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" free_trial_name " : " string value " ,
PWInAppManager. shared (). postEvent ( " Free trial started " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" free_trial_name " : @" string value " ,
@" expiry_date " : [ NSDate date ]
[[PushNotificationManager pushManager ] postEvent : @" Free trial started " withAttributes : attributes ];
// To use with iOS SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " free_trial_name " , " string value " )
. putDate ( " expiry_date " , new Date ())
PushwooshInApp . getInstance () . postEvent ( " Free trial started " , attributes ) ;
Subscription canceled
Use this event to track in-app subscription cancelations.
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Subscription cancelled " );
// To use with iOS SDK, you can integrate this code:
PWInAppManager. shared (). postEvent ( " Subscription cancelled " , withAttributes : nil )
// To use with iOS SDK, you can integrate this code:
[[PushNotificationManager pushManager ] postEvent : @" Subscription canceled " withAttributes : @{} ];
// To use with iOS SDK, you can integrate this code:
PushwooshInApp . getInstance () . postEvent ( " Subscription cancelled " ) ;
Conversion from Free to Paid
Trigger this event once a user converts from using your app for free to a paid subscription plan.
Recommended attributes:
subscription_plan_name: String
price: Integer
currency: String
date:Date
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Conversion from Free to Paid " , {
" subscription_plan_name " : " string value " ,
" currency " : " string value "
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" plan_name " : " string value " ,
" currency " : " string value " ,
PWInAppManager. shared (). postEvent ( " Conversion from Free to Paid " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" subscription_plan_name " : @" string value " ,
@" currency " : @" string value " ,
[[PushNotificationManager pushManager ] postEvent : @" Conversion from Free to Paid " withAttributes : attributes ];
// To use with iOS SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " subscription_plan_name " , " string value " )
. putString ( " currency " , " string value " )
. putDate ( " date " , new Date ())
PushwooshInApp . getInstance () . postEvent ( " Conversion from Free to Paid " , attributes ) ;
Search
Send this event when a user searches for any content in your app.
Recommended attributes:
search_query: String
category: String
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Search " , {
" search_query " : " string value " ,
" category " : " string value "
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" search_query " : " string value " ,
" category " : " string value "
PWInAppManager. shared (). postEvent ( " Search " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" search_query " : @" string value " ,
@" category " : @" string value "
[[PushNotificationManager pushManager ] postEvent : @" Search " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " search_query " , " string value " )
. putString ( " category " , " string value " )
PushwooshInApp . getInstance () . postEvent ( " Search " , attributes ) ;
Content read
Trigger this event when a user has read a specific piece of content.
Recommended attributes:
category: String
article_id: String
author: String
published_date: Date
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Content read " , {
" category " : " string value " ,
" article_id " : " string value " ,
" author " : " string value " ,
" published_date " : " new Date() "
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" category " : " string value " ,
" article_id " : " string value " ,
" author " : " string value " ,
" published_date " : NSDate ()
PWInAppManager. shared (). postEvent ( " Content read " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" category " : @" string value " ,
@" article_id " : @" string value " ,
@" author " : @" string value " ,
@" published_date " : [ NSDate date ]
[[PushNotificationManager pushManager ] postEvent : @" Content read " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " category " , " string value " )
. putString ( " article_id " , " string value " )
. putString ( " author " , " string value " )
. putDate ( " published_date " , new Date ())
PushwooshInApp . getInstance () . postEvent ( " Content read " , attributes ) ;
Track submissions of your in-app forms (for example, Net Promoter Score), the choice of content preferences, and other surveys.
Recommended attributes:
form_name: String
url: String
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Form submission " , {
" form_name " : " string value " ,
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" form_name " : " string value " ,
PWInAppManager. shared (). postEvent ( " Form submission " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" form_name " : @" string value " ,
[[PushNotificationManager pushManager ] postEvent : @" Form submission " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " form_name " , " string value " )
. putString ( " url " , " string value " )
PushwooshInApp . getInstance () . postEvent ( " Form submission " , attributes ) ;
Content shared
Trigger this event when a user has shared a piece of content via social networks, email or other channels.
Recommended attributes:
category: String
article_id: String
author: String
published_date: Date
button_id: String
social_media: String
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Content shared " , {
" category " : " string value " ,
" article_id " : " string value " ,
" author " : " string value " ,
" published_date " : " new Date() " ,
" button_id " : " string value " ,
" social_media " : " string value "
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
" category " : " string value " ,
" article_id " : " string value " ,
" author " : " string value " ,
" published_date " : NSDate (),
" button_id " : " string value " ,
" social_media " : " string value "
PWInAppManager. shared (). postEvent ( " Content shared " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" category " : @" string value " ,
@" article_id " : @" string value " ,
@" author " : @" string value " ,
@" published_date " : [ NSDate date ],
@" button_id " : @" string value " ,
@" social_media " : @" string value "
[[PushNotificationManager pushManager ] postEvent : @" Content shared " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " category " , " string value " )
. putString ( " article_id " , " string value " )
. putString ( " author " , " string value " )
. putDate ( " published_date " , new Date ())
. putString ( " button_id " , " string value " )
. putString ( " social_media " , " string value " )
PushwooshInApp . getInstance () . postEvent ( " Content shared " , attributes ) ;
Content preferences
Fire this event when a user chooses a specific topic they are interested in.
Recommended attributes:
// To use with Web Push SDK, you can integrate this code:
const Pushwoosh = window . Pushwoosh || [];
Pushwoosh . push ( function ( api ) {
api . postEvent ( " Content preferences " , {
// To use with iOS SDK, you can integrate this code:
let attributes: [ String : Any ] = [
PWInAppManager. shared (). postEvent ( " Content preferences " , withAttributes : attributes )
// To use with iOS SDK, you can integrate this code:
NSDictionary * attributes = @{
@" topic " : @" string value "
[[PushNotificationManager pushManager ] postEvent : @" Content preferences " withAttributes : attributes ];
// To use with Android SDK, you can integrate this code:
TagsBundle attributes = new TagsBundle. Builder ()
. putString ( " topic " , " string value " )
PushwooshInApp . getInstance () . postEvent ( " Content preferences " , attributes ) ;