Kontagent Company News

Event Tracking: Instrumentation Setup Guide and Use Case Overview

Written by Aaron H. on | 2 Comments

As a game developer, event tracking and subsequent funnel analysis is one of the most powerful tools at your disposal. Not only can you gain behavioral insights, but you can test discrete user flows and really optimize your game mechanics. This process of intelligent game development iteration and the continual development cycles based on hard data are what set the Analytic Ninjas apart from the green social game developers.

In this section, we’ll provide best practices around instrumentation to guide developers and product managers in setting up their event tracking for success.


A. Overview
: Developers should be aware of three key concepts when thinking about Kontagent events.

Events: Events are specific user actions you want to track inside your application.

Event Subtype: Event subtypes are higher level properties associated with events. Event subtypes must exist in a hierarchical structure. Relationally, they can be represented as:

Subtype 1->Subtype 2->Subtype 3->n (where n is the actual event being measured

Event subtypes are optional, but are powerful to use when grouping events with the same characteristics into buckets and analyzed
more easily.

Event Types (Unique Events): An event type is a unique combination of an event name and its subtypes.

B. KEY issues to be aware of:

It is critically important to understand both key concepts of the framework outlined above before instrumentation begins. Let’s take a look at some of the key points to be mindful of.

Event Types: A good rule to keep in mind while instrumenting events is that event type handling forms the backbone of our system. Our servers can handle massive volumes of events. However, to avoid latency (or worse) on load times, event type handling should be limited to an upper bound of 1000 event types per day.

Remember, an event type is a unique combination of an event name and its subtypes. Instrumented properly, the majority of developers will never hit this limit, but it is important to be mindful of this threshold in order for the event system to truly be leveraged for its powerful capabilities.

SubTypes: It is important to remember that subtypes are hierarchical in nature. Ignoring this dependent hierarchy when creating subtypes can often lead to an explosion in event types. As mentioned above, developers should be mindful of the amount of event types sent to our servers, not only because of the potential for performance-related issues with our dashboard, but also to ensure that the events being measured are accurate, insightful and actionable.

C. Examples: In the rudimentary example where a gamer goes to a store and purchases a sword, boiling down events to granular insights is important when tracking user behavior.

The best way of breaking down and measuring this event is to create an event type, where ->
st1=Purchase, st2=Weapon, n=Sword
, the specific event you want to track.

Here are more specific use cases:

Example Use Case 1: Tracking game progress with character advancement

Event type structure:

St1=Game Process / St2=Advance / St3=Character / n=Dr. Octagon (1 Event Type)
St1=Game Process / St2=Advance / St3=Character / n=MF Doom     (1 Event Type)

Example API strings:

/api/v1/0123456789abcdef0123456789abcdef/evt/?s=123&st1=Game_Process&st2=Advance&st3=Character&n=DrOctogon
/api/v1/0123456789abcdef0123456789abcdef/evt/?s=123&st1=Game_Process&st2=Advance&st3=Character&n=MFDoom


Example Use Case 2: Monetization Events

Event type structure:

St1=Monetization / St2=Purchase / St3=Direct Payment / n=Credit Card (1 Event Type)
St1=Monetization / St2=Purchase / St3=Direct Payment / n=Paypal (1 Event Type)

Example API strings:

/api/v1/0123456789abcdef0123456789abcdef/evt/?s=123&st1=Monetization&st2=Purchase&st3=Direct&n=Credit
/api/v1/0123456789abcdef0123456789abcdef/evt/?s=123&st1=Monetization&st2=Purchase&st3=Direct&n=Paypal

By the way, our most recent 2.4 release allows developers to leverage our monetization source categories for this express purpose. More documentation on this API can be found here.


Example Use Case 3: Session-based game play (note St3 is not being used in this case)

Event type structures:

St1=Level Up / St2=Super Bonus / n=4 in a row (1 Event Type)
St1=Level Up / St2=Super Bonus / n=5 in a row (1 Event Type)

Example API strings:

/api/v1/0123456789abcdef0123456789abcdef/evt/?s=123&st1=LevelUp&st2=SuperBonus&n=4Row
/api/v1/0123456789abcdef0123456789abcdef/evt/?s=123&st1=LevelUp&st2=SuperBonus&n=5Row

D. Use Cases to AVOID

Example Use Case 1: Inserting UID into Subtypes

Inserting unique UIDs into subtypes will essentially create a massive amount of event types. Remember, while our system is constructed to handle massive event volumes, massive unique combinations of events (event types) could hamper your ability to get meaningful data from our system.

Example Use Case 1: Inserting non-dependent strings into subtypes.

St1=Color / St2=Garment

In the use case above, if you insert 100 different colors with 100 different garments, you will essentially create 10,000 different event types! This will definitely hamper your ability to get any sort of insight. Remember, the subtypes should not be treated as independent variables, rather, each subtype hierarchy should be preserved when setting up subtypes.

Additional questions on setting up event tracking in our system? Contact us, at info@kontagent.com.

Tags: , , ,

2 Comments

  • [...] Optimize game mechanics that encourage purchasing, while balancing engagement. Use analytics to see how the two play out using custom event tracking and funnels. [...]

  • [...] Optimize game mechanics that encourage purchasing, while balancing engagement. Use analytics to see how the two play out using custom event tracking and funnels. [...]

  • Leave a Comment