Events

6 minute read

An event represents something that a user does or that happens to them. For example "Signup Attempted" is an action that the user did, while "Credit Card Validated" is something that happened to the user.

Tracking Plan Guide: How to Pick Your Events and Properties

Event Definition

An event is defined in the Events section of the Tracking plan and can be organized into categories. The definition of an event includes:

  • A descriptive Event Name
  • A Description including the timing of when the event should be sent as well as other useful implementation details
  • The Source(s) that the event should be sent from
  • The Actions(s) associated with the event
  • The Metrics(s) related to the event
  • The category(s) that the event is a part of

Sources

Add all sources you want the event to be sent from to the event in Avo. If you want the event to be implemented with Avo Functions, make sure "Implement with Avo" is checked. Having "Implement with Avo" checked adds the event to your type-safe generated Avo Functions file for that source. If you don't want the event to be implemented with Avo Functions, leave "Implement with Avo" unchecked.

The sources the event should be sent from

Actions

Actions is an umbrella term over all the tracking methods the analytics platforms offer. In Avo you can define your actions in the Actions part of the tracking plan and organize them into categories. Actions can be triggered on their own or together, for example it's common to trigger any of the actions along with logging an event.

Below is a list of possible actions and supported platforms, in the order of which they are triggered:

  1. Identify User: Amplitude, Segment, Mixpanel and Fullstory
  2. Update User Properties: Amplitude, Segment, Mixpanel and Fullstory
  3. Log Event All supported analytics platforms
  4. Log Revenue: Amplitude, Segment and Mixpanel
  5. Log Page View: Segment
  6. Unidentify User: Amplitude, Segment, Mixpanel and Fullstory

Log Event

Logging an event is the fundamental action for behavioral analytics. An event describes an action that a user does in your application or something that happens for them. Additional information about the action, Event properties, can be logged with the event.

Avo wraps the SDKs of your current analytics tools so you get one function for each event. By doing so, Avo makes your analytics as type-safe as possible, and takes care of sending the event to all your analytics tools.

Here's how sending and event called "Signup Completed" would look like:

JavaScript
Copy
1
Avo.signupStarted({ authenticationMethod: 'Facebook', email: 'hi@avo.sh' });

And here is a list of methods that are wrapped in each analytics tool when Avo.signupStarted is called:

Amplitude

JavaScript
Copy
1
2
3
4
logEvent('Signup Completed', {
'Authentication Method': 'Facebook',
Email: 'hi@avo.sh',
});

Appsflyer

JavaScript
Copy
1
2
3
4
trackEvent('Signup Completed', {
'Authentication Method': 'Facebook',
Email: 'hi@avo.sh',
});

Facebook Analytics

JavaScript
Copy
1
2
3
4
fbq('trackCustom', 'Signup Completed', {
'Authentication Method': 'Facebook',
Email: 'hi@avo.sh',
});

Firebase Analytics

JavaScript
Copy
1
2
3
4
logEvent('Signup Completed', {
'Authentication Method': 'Facebook',
Email: 'hi@avo.sh',
});

Fullstory

JavaScript
Copy
1
2
3
4
event('Signup Completed', {
'Authentication Method': 'Facebook',
Email: 'hi@avo.sh',
});

Intercom

JavaScript
Copy
1
2
3
4
Intercom('trackEvent', 'Signup Completed', {
'Authentication Method': 'Facebook',
Email: 'hi@avo.sh',
});

Mixpanel

JavaScript
Copy
1
2
3
4
track('Signup Completed', {
'Authentication Method': 'Facebook',
Email: 'hi@avo.sh',
});

Segment

JavaScript
Copy
1
2
3
4
track('Signup Completed', {
'Authentication Method': 'Facebook',
Email: 'hi@avo.sh',
});

Identify User

The Identify User action should be used when you want to identify users from your system in your analytics platform. This would typically be on done when users either Sign up or Login or in other ways users are becoming authenticated users according your system.

The Identify User action can be triggered individually or along with logging an event. It's common to trigger the Identify User action along with log Signup Completed and a Login Completed events - in such cases, the Identify user call will occur first and then the log event call. When the Identify User action is selected, Avo will require a user property called User Id. Below is a list of Identify User methods used for each supported analytics platform:

Unidentify User

The Unidentify User action should be used when you want to unidentify users from your system in your analytics platform. This would typically be done when users Log Out, but not limited to that.

If you forget to unidentify users in your analytics platform you could potentially track two or more users as the same user in your analytics platform if they share a computer.

Below is a list of Unidentify User methods used for each supported analytics platform:

Update User Properties

The Update User Properties action is used when the state of the user in your analytics platform should be updated. User properties are often updated at the same time as logging an event but they can also be updated independently.

User properties are updated with the following methods according to analytics platform:

  • Amplitude: setUserProperties
  • Appsflyer: user properties not supported
  • Facebook Analytics: fbq('setUserProperties')
  • Firebase Analytics: setUserProperty
  • Fullstory: setUserVars
  • Intercom: Intercom('update', userProperties)
  • Mixpanel: people.set
  • Segment: identify

Log Revenue

Amplitude, Segment and Mixpanelsupport tracking revenue specifically. It's recommended to add the Log Revenue action with events that represent a successful purchase, such as `Purchase Completed`

Below are details for what Avo automatically does for each analytics platform.

Amplitude

For the Amplitude destination, Avo will add 4 event properties that match the Amplitude logRevenue API with the prefix "Amplitude: ".

  • Amplitude: Product Id
  • Amplitude: Quantity
  • Amplitude: Price
  • Amplitude: Revenue Type

Call logRevenueV2 with these properties as well as all other event properties, and then call logEvent.

Segment

For the Segment destination, Avo will add 2 event properties that match the Segment revenue properties with the prefix "Segment: ".

  • Segment: Revenue
  • Segment: Currency

Segment currency will have constraint that the currencies need to be in a valid ISO format. For compiled languages this will generate an enum to guarantee that the currency is a valid ISO format, for JavaScript this will be validated during runtime.

Enums are currently not supported on Android and iOS.

Call track with the Segment revenue properties set in the correct keys to make sure that Segment recognizes the event as a Revenue event.

Mixpanel

For the Mixpanel destination, Avo will add 1 event property that matches the Mixpanel track_charge API with the prefix "Mixpanel: ".

  • Mixpanel: Amount

Call people.track_charge with the price and all additional event properties and then call track

Log Page View

Adding the Log Page View action will trigger page tracking on web and screen tracking on mobile. Log Page View is only available in Segment, other supported platforms do not offer page tracking at the moment.

When Log Page View is set on events, Avo will do the following for each platform

Segment

For the Segment platform, Avo will add 1 property that matches the Segment page property with the prefix "Segment: ".

  • Segment: Page Name

Call either page or screen (depending on your apps platform) with the Page Name property and then call track. If you want to only log a page view, not an event, you can remove the Log Event action from the event.