Custom events examples
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 .build()
PushwooshInApp.getInstance().postEvent("Event name", attributes); // event name exactly as in Control Panel
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", "date": "date value" });});
// To use with iOS SDK, you can integrate this code:
let attributes: [String : Any] = [ "user_id" : "string value", "date" : "date value"]PWInAppManager.shared().postEvent("Log out", withAttributes: attributes)
// To use with iOS SDK, you can integrate this code:
NSDictionary *attributes = @{ @"user_id" : @"string value", @"date" : @"date 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") .build()
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") .build()
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") .build()
PushwooshInApp.getInstance().postEvent("Payment method changed", attributes);
Button clicked
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") .build()
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") .build()
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") .build()
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", "price": 1, "source": "string value" });});
// To use with iOS SDK, you can integrate this code:
let attributes: [String : Any] = [ "price" : 1, "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 = @{ @"price" : @(1), @"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() .putInt("price", 1) .putString("product_id", "string value") .putString("source", "string value") .build()
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", "price": 1, "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", "price" : 1, "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", @"price" : @(1), @"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") .putInt("price", 1) .putString("discount", "string value") .build()
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", "price": 1, "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", "price" : 1, "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", @"price" : @(1), @"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") .putInt("price", 1) .putString("source", "string value") .putString("product_page_id", "string value") .build()
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", "price": 1, "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", "product_price" : 1, "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", @"product_price" : @(1), @"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") .build()
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") .build()
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") .build()
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", "date": "date value" });});
// To use with iOS SDK, you can integrate this code:
let attributes: [String : Any] = [ "product_id" : "string value", "category" : "string value", "date" : "date 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", @"date" : @"date 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") .build()
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") .build()
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") .build()
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", "quantity": 1, "user_id": "string value" });});
// To use with iOS SDK, you can integrate this code:
let attributes: [String : Any] = [ "currency_name" : "string value", "quantity" : 1, "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", @"quantity" : @(1), @"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") .putInt("quantity", 1) .putString("user_id", "string value") .build()
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", "completion": true });});
// To use with iOS SDK, you can integrate this code:
let attributes: [String : Any] = [ "tutorial_name" : "string value", "completion" : true]PWInAppManager.shared().postEvent("Tutorial completed", withAttributes: attributes)
// To use with iOS SDK, you can integrate this code:
NSDictionary *attributes = @{ @"tutorial_name" : @"string value", @"completion" : @YES};[[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) .build()
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", "level": 5, "user_id": "string value" });});
// To use with iOS SDK, you can integrate this code:
let attributes: [String : Any] = [ "achievement_name" : "string value", "level" : 5, "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", @"level" : @1, @"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("level", 1) .putString("user_id", "string value) .build()
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", "price": 1, "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", "price" : 1, "currency" : "string value", "expiry_date" : NSDate()]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", @"price" : @(1), @"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") .putInt("price", 1) .putString("currency", "string value") .putDate("expiry_date", new Date()) .build()
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", "price": 1, "currency": "string value", "renewal_count": 1 });});
// To use with iOS SDK, you can integrate this code:
let attributes: [String : Any] = [ "subscription_plan_name" : "string value", "price" : 1, "currency" : "string value", "renewal_count" : 1]PWInAppManager.shared().postEvent("Subscription renewal", withAttributes: attributes)
// To use with iOS SDK, you can integrate this code:
NSDictionary *attributes = @{ @"subscription_plan_name" : @"string value", @"price" : @(1), @"currency" : @"string value", @"renewal_count" : @(1)};[[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") .putInt("price", 1) .putString("currency", "string value") .putInt("renewal_count", 1) .build()
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", "expiry_date" : NSDate()]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()) .build()
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", "price": 1, "currency": "string value" "date": "new Date()" });});
// To use with iOS SDK, you can integrate this code:
let attributes: [String : Any] = [ "plan_name" : "string value", "price" : 1, "currency" : "string value", "date" : NSDate()]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", @"price" : @(1), @"currency" : @"string value", @"date" : [NSDate date]};[[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") .putInt("price", 1) .putString("currency", "string value") .putDate("date", new Date()) .build()
PushwooshInApp.getInstance().postEvent("Conversion from Free to Paid", attributes);
Media
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") .build()
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()) .build()
PushwooshInApp.getInstance().postEvent("Content read", attributes);
Form submission
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", "url": "string value" });});
// To use with iOS SDK, you can integrate this code:
let attributes: [String : Any] = [ "form_name" : "string value", "url" : "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", @"url" : @"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") .build()
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") .build()
PushwooshInApp.getInstance().postEvent("Content shared", attributes);
Content preferences
Fire this event when a user chooses a specific topic they are interested in.
Recommended attributes:
- topic: String
// To use with Web Push SDK, you can integrate this code:const Pushwoosh = window.Pushwoosh || [];Pushwoosh.push(function(api) { api.postEvent("Content preferences", { "topic": "string value" });});
// To use with iOS SDK, you can integrate this code:
let attributes: [String : Any] = [ "topic" : "string value"]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") .build()
PushwooshInApp.getInstance().postEvent("Content preferences", attributes);