Chapter 1- Event Tracking & Monitoring

Estimated Reading Time : 10 Mins | Knocks : 286

In the context of marketing automation, ‘events’ are the actions performed by the user.

Any kind of interaction of user with your app (web or mobile) can be captured as an event. The event also has additional data, called attributes. The attributes give context to the event which become useful while analyzing the event or while creating a targeted segment.

Oftentimes you would also want to track action which isn’t done by the user but happens in the context of the system. For instance, user’s inactivity is not a definite action by the user but you would definitely want to track it so that you could run reactivation campaigns. Likewise, shipment dispatch- not an action done by the user but you would want to trigger an email as soon as it happens.

With ‘Events’ you manage to track these actions and inactions

Following example would bring some clarity:

webengage.track("Added To Cart", {
    /* Numbers */
    "Product ID" : 1337,
    "Price"      : 39.80,
    "Quantity"   : 1,

    /* Strings */
    "Product"    : "Givenchy Pour Homme Cologne",
    "Category"   : "Fragrance",
    "Currency"   : "USD",

    /* Boolean */
    "Discounted" : true

This chapters covers the following topics

1. Event tracking:

2. Auto-track user actions or events:

3. Number of Event attributes:

4. Uninstall tracking:

5. Events export:

1. Event tracking

What are ‘Events’?

Event tracking lets you track user actions and inactions on your apps, which enables you to create segments, analyze behavior, run contextual engagement campaigns and everything in between.


  1. Track the behavior of users on your website and app.
  2. Know which actions are most popular or least popular in your app (we have covered this comprehensively in the ‘Analytics’ chapter under ‘Event trends’)

Key questions/considerations

  1. Can we change event name from the dashboard
  2. There are strong plausible reasons why you would want to change event’s name. You came to think of a more mnemonic name or the current name is conflicting closely with another event’s name.

    Conventionally, changing event’s name is needed to be done from the backend which is not convenient, hence this capability.

  3. What are the data (event + user) that you automatically capture?
  4. Following data should be tracked automatically by default by the vendor’s SDK:

    Campaign events- click, open, marked_as_spam, unsubscribed, closed, push_received, inapp_closed etc for all the engagement channels.
    User data- location, country, browser(including version), email, language etc. Ideally, the solution should capture the following attributes automatically:

    Device Type
    Network name
    Device type
    Device name
  5. Do you allow terminating an event?
  6. Oftentimes tracking an event becomes futile. So it becomes a good idea to stop tracking it to keep the dashboard and reporting clean.

  7. Can we group events?
  8. Again, for reporting or business use-cases, you would more than often require to group common events together.

    For instance, there could be three distinct events being tracked like- purchase_byCOD, purchase_byCC and purchase_byNetbanking. For various reporting use-cases, you would want to group these three events under just- ‘purchase’.

    In another instance, say you want to see the impact of your recent push notification campaign on your app engagement via ‘Funnels’. App engagement may be ‘purchase’, ‘add_to_cart’, ‘play_video’ and similar events. Had you not had the capability to group these events as one, you’d have had to create multiple funnels. ‘Event groups’ eliminates that bottleneck.

2. Auto-track user actions or events

What is it?

This technology is relatively new and only two analytics products provide it- Heap and Mixpanel. Even Mixpanel provides autotracking is available only on the web. Most established analytics products have not introduced this capability perhaps deliberately or because the existing infrastructure doesn’t support such radical change in the tracking methodology.

Formerly, there were system events which are the actions that were automatically captured by the SDK. If you were to track any action outside it then there were custom events which you had to manually define. Every time you wish to track an action, you had to manually do it.

This had two downsides:

  1. First, you had to manually define the event which needed the intervention of dev team.
  2. You lose all the crucial event data that wasn’t recorded until the time the event was created.

The newest development in marketing automation space eliminates that old school way of manually creating and tracking events. Now, you can track events without writing the tracking calls. Analytics software should start tracking all the user actions right from the integration.

You only need to identify the event that you wish to track and then you can go ahead and define it and simultaneously also get access to the historical data.

Key Questions/ Considerations

  1. First, unless it is not a full fledged analytics tool or the evolved version of it, it is highly unlikely that this feature would be tfhere in the first place. Given the fact that it tracks almost everything, there is an unintended consequence which is that the solution may end up collecting data that it shouldn’t- particularly user passwords.
  2. What happens when the markup on the element that you are tracking changes? Say I am tracking form submission and my dev changed that to accommodate the new feature without my knowledge. How would your system react to it?

3. Number of Event attributes

What is it?

Attributes (or some systems refer to it as ‘properties’) are the specifications of the event. They basically give meaning to a certain user action.

For instance, if you are tracking ‘checkout’ event of the user then the corresponding properties could be

"Product ID" : 1337,
    "Price"      : 39.80,
    "Quantity"   : 1,

    /* Strings */
    "Product"    : "Givenchy Pour Homme Cologne",
    "Category"   : "Fragrance",
    "Currency"   : "USD",

    /* Boolean */
    "Discounted" : true


Marketing automation solutions keep a cap on the number of attributes that you can pass.

Why is this important?

Depending on your business case you might want to pass 100+ attributes because like they say ‘data is never enough’. It is a good practice to get an estimate on the number of event attributes you can pass.

4. Uninstall tracking

Why it’s important?

Technically, it is difficult to track uninstall. That’s because when the app is uninstalled the SDK of the tracking system, say WebEngage, embedded inside it obviously won’t run and hence they cannot track it. But given the criticality of this event, good products adopt an alternate approach which we would discuss next.

How do they track?

The tracking engine sends a silent push i.e. push with an empty payload to the user’s device. Unlike others, this push is not visible to the user in the notification tray as they are not rendered.

The silent push is sent to the user’s device on the daily basis. The moment it is not received by the user’s device, the SDK calls the app_uninstall event and the uninstall is recorded.

Tracking uninstalls is a critical activity. The absence of it is a deal breaker for mobile businesses and it should be if it is not. Also, after confirming whether the product tracks uninstall or not, ensure that you don’t need a workaround to do that.

Questions/ Considerations/ Caveats

  1. Can you track uninstall if the user has disabled push?
  2. Since, uninstall tracking works on the premise that push is delivered, what happens if the user has disabled push notification in the first place which is highly likely.

  3. What happens if the user re-installs the app?
  4. Do they create a new id for the user or the same old id is reactivated against him?

  5. What if the device is turned off at the time of delivery of silent push?

5. Events export

What is it and why is it important?

The Marketing automation space doesn’t have a Google or Apple who have established an ecosystem within themselves where all the products are tied together and it is fairly impossible for a third-party to penetrate.

Marketing automation is a democratic space with myriad equal players. Thus it is imperative for any solution from the product standpoint to be able to work well with the other products in the ecosystem. For you, it’s important in a sense that you would need to integrate with other products in your stack and also you are going to eventually migrate.

Alternative solution- There are new emerging set of products which act as a data layer between two distinct systems like Segment, mParticle. If you are in consumer business with a decent MAU you must have probably heard of them or might be using them. Integrations with products like them eliminate the need of event export functionality

Key Questions/ Considerations

  1. How is the event export accomplished
  2. There are numerous ways- API, CSV or export to third-party service like Amazon S3. You would need this flexibility for you want independence to migrate to another service. Or, just access to raw data to be able to access it on your own.

  3. How does the export process look like?
  4. Check how much complexity is involved in the exporting the data. Does it require the involvement of dev?

Chapter list


How to choose Best-in-Class B2C MA Software

Chapter 1

Event Tracking & Monitoring

Chapter 2

Analytics (Funnel, Cohort, Event trends)

Chapter 3

Audience Segmentation

Chapter 4


Chapter 5

Campaign creation and QA

Chapter 6

Testing and Conversion Tracking

Chapter 7

POC and Support

Chapter 8


Like to rate this post ?
Total Rating : 0 , Average Rating : 0