3rd party integrations
...
Purple Tracking
Tracking Configuration
Full example: How to configure your events
20min
summary in this article we show you an example how to create a full working tracking configuration supporting the use cases we defined for that example at this point we will summarize your findings again if you have arrived at this point, then you have learned everything about the structure and configuration options of the " tracking config json " file summary to recap you have learned to add tracking services in structure tracking services docid 28levq2nvel a perh1rd to add event types and attributes in structure event types and attributes docid 0tqst6jkdtitnxenvba8v to add indiviudal events and atributes in structure individual events and attributes docid\ hekvclx15jpbx kxnfjeb the configuration options of events and attributes itself in configuration event and attribute docid\ dlhlkez7ixhd33i4qab7k to enrich your data in configuration enrich event data docid\ vexp4mbwybjar50smsx1t to enable or disable any event or attribute configuration enrich event data docid\ vexp4mbwybjar50smsx1t now you are ready to master configuring your tracking congratulations congratulations ! finally, you are cordially invited to go through all the configuration options described as follows lets start step by step define your use cases we will start with the most important point "identifying your use cases" the emphasis here is on " your " while purple offers a " ready to use " config that is sufficient for common use cases, it still needs further customization if your use cases are not covered your use cases influence which tracking service you have to use, which events or attributes you need for this and how these are configured in detail we sum up some simple use cases (in a real world scenario your use cases may be more complex ) i want to know my top 5 downloads in 2022 i want to know which issues/pages have been bookmarked which search terms are used in the internal search of the app? does anyone use the app menu? does anyone buy subscriptions? i want to offer a discount to inactive subscribers to encourage them to subscribe again (via push or in app message) select your tracking services for your use cases identify requirements for the tracking services used in our example, we want to notify app users on the one hand via push and on the other hand via in app message our decision falls on firebase docid\ utcmd84ebm3lbu7ybwe s to reach app users via push and airship docid 2zvprdxngl glzp u yde to reach app users via in app messages by airships message center select needed events and attributes for your use cases in the next step, we first have to generalize our use cases and then find the appropriate event or attribute for it (we look for these in the tracking events docid\ wmhcwvhbk60lcgh5urtfo chapter) generalize use cases this step is necessary because a formulated use case often represents an evaluation of events based on our example the use case " i want to know my top 5 downloads in 2022 " represents an evaluation of events in the backend of the tracking service and is not carried out by the tracking of the app the following overview shows the result of generalization and the search for events and attributes the individual use cases are also already grouped by event type action events use case i want to know my top 5 downloads in 2022 generalization for this evaluation we need the information about which issues are downloaded? resulting event action events docid 8rra4o7vzdaw13y joqek use case i want to know which issues/pages have been bookmarked generalization for this evaluation we need the information about which bookmarks are created? resulting event action events docid 8rra4o7vzdaw13y joqek use case which search terms are used in the internal search of the app? generalization the use case already has a general formulation resulting event action events docid 8rra4o7vzdaw13y joqek view events use case does anyone use the app menu? generalization the use case already has a general formulation resulting event view events docid\ mixe5 ijkbr47eummdyga purchase events use case does anyone buy subscriptions? generalization for this evaluation we need the information about which subscriptions are purchased? resulting event purchase events docid\ mixj9wvzalbapwdbpat29 attributes use case i want to offer a discount to inactive subscribers to encourage them to subscribe again (via push or in app message) generalization for this evaluation we need two pieces of information all app users who have ever purchased a subscription this is already done with the purchase event storefront subscription purchased all app users who currently do not have an active subscription this is done with the resulting attribute has active subscription so this use case is a combination of this event and attribute resulting attribute attributes docid\ dfucrmfgqfurguiv8nltc configure these events and attributes now that we know our events and attributes, it's time to configure them in the " tracking config json " action events storefront issue bookmark added airship "storefront issue bookmark added" { "templates" { "action" "issue bookmark added" }, "parameters" { "bookmark page label" "{{bookmark page label}}", "issue name" "{{issue name}}" } } firebase "storefront issue bookmark added" { "templates" { "action" "issue bookmark added" }, "parameters" { "bookmark page label" "{{bookmark page label}}", "issue name" "{{issue name}}" } } issue downloaded airship "issue downloaded" { "templates" { "action" "issue downloaded" }, "parameters" { "issue id" "{{issue id}}", "issue name" "{{issue name}}", "publication name" "{{publication name}}" } } firebase "issue downloaded" { "templates" { "action" "issue downloaded" }, "parameters" { "issue id" "{{issue id}}", "issue name" "{{issue name}}", "publication name" "{{publication name}}" } } storefront search performed airship "storefront search performed" { "templates" { "action" "search performed" }, "parameters" { "phrase" "{{phrase}}" } } firebase "storefront search performed" { "templates" { "action" "search performed" }, "parameters" { "phrase" "{{phrase}}" } } view events app menu airship "app menu" { "templates" { "name" "app menu" } } firebase "app menu" { "templates" { "name" "app menu" } } purchase events storefront subscription purchased airship "storefront subscription purchased" { "templates" { "action" "subscription purchased" }, "parameters" { "transaction id" "{{transaction id}}", "subscription product id" "{{product id}}", "subscription price" "{{price}}", "subscription price currency" "{{currency code}}", "subscription id" "{{subscription id}}", "subscription name" "{{subscription name}}", "subscription type" "{{subscription type}}", "subscription duration" "{{subscription duration}}", "subscription price formatted" "{{subscription price}}", "subscription purchased" "{{subscription purchased}}" } } } firebase // firebase does not support purchase events attributes has active subscription airship "has active subscription" { "templates" { "name" "has active subscription" }, "parameters" { "tag group" "subscriptions" } } firebase "has active subscription" { "templates" { "name" "has active subscription" } } optional enable or disable events we set our tracking services as follows enabled and disabled events { "default" { "eventsenabledbydefault" true, "viewsenabledbydefault" true, "purchasesenabledbydefault" false, "attributesenabledbydefault" false, "events" {}, "views" {}, "purchases" {}, "attributes" {} }, "airship" { "eventsenabledbydefault" true, "viewsenabledbydefault" true, "purchasesenabledbydefault" true, "attributesenabledbydefault" true, "events" { }, "views" { }, "purchases" { }, "attributes" { } }, "firebase" { "eventsenabledbydefault" true, "viewsenabledbydefault" true, "purchasesenabledbydefault" false, "attributesenabledbydefault" true, "events" { }, "views" { }, "purchases" {}, "attributes" { } } } final code example finally, we put everything together and get the following " tracking config json " tracking config json final code example { "default" { "eventsenabledbydefault" true, "viewsenabledbydefault" true, "purchasesenabledbydefault" false, "attributesenabledbydefault" false, "events" {}, "views" {}, "purchases" {}, "attributes" {} }, "airship" { "eventsenabledbydefault" true, "viewsenabledbydefault" true, "purchasesenabledbydefault" true, "attributesenabledbydefault" true, "events" { "storefront issue bookmark added" { "templates" { "action" "issue bookmark added" }, "parameters" { "view" "{{view}}", "bookmark title" "{{bookmark title}}", "bookmark description" "{{bookmark description}}", "bookmark page label" "{{bookmark page label}}", "bookmark creation date" "{{bookmark creation date}}", "issue id" "{{issue id}}", "issue name" "{{issue name}}", "issue categories" "{{issue categories}}", "issue tags" "{{issue tags}}", "issue purchasable" "{{issue purchasable}}", "issue purchased" "{{issue purchased}}", "issue product id" "{{issue product id}}", "publication id" "{{publication id}}", "publication name" "{{publication name}}" } }, "issue downloaded" { "templates" { "action" "issue downloaded" }, "parameters" { "issue id" "{{issue id}}", "issue name" "{{issue name}}", "issue categories" "{{issue categories}}", "issue tags" "{{issue tags}}", "issue purchasable" "{{issue purchasable}}", "issue purchased" "{{issue purchased}}", "publication id" "{{publication id}}", "publication name" "{{publication name}}" } }, "storefront search performed" { "templates" { "action" "search performed" }, "parameters" { "view" "{{view}}", "phrase" "{{phrase}}" } } }, "views" { "app menu" { "templates" { "name" "app menu" } } }, "purchases" { "storefront subscription purchased" { "templates" { "action" "subscription purchased" }, "parameters" { "transaction id" "{{transaction id}}", "subscription product id" "{{product id}}", "subscription price" "{{price}}", "subscription price currency" "{{currency code}}", "subscription id" "{{subscription id}}", "subscription name" "{{subscription name}}", "subscription type" "{{subscription type}}", "subscription duration" "{{subscription duration}}", "subscription price formatted" "{{subscription price}}", "subscription purchased" "{{subscription purchased}}" } } }, "attributes" { "has active subscription" { "templates" { "name" "has active subscription" }, "parameters" { "tag group" "subscriptions" } } } }, "firebase analytics" { "eventsenabledbydefault" true, "viewsenabledbydefault" true, "purchasesenabledbydefault" false, "attributesenabledbydefault" true, "events" { "storefront issue bookmark added" { "templates" { "action" "issue bookmark added" }, "parameters" { "view" "{{view}}", "bookmark title" "{{bookmark title}}", "bookmark description" "{{bookmark description}}", "bookmark page label" "{{bookmark page label}}", "bookmark creation date" "{{bookmark creation date}}", "issue id" "{{issue id}}", "issue name" "{{issue name}}", "issue categories" "{{issue categories}}", "issue tags" "{{issue tags}}", "issue purchasable" "{{issue purchasable}}", "issue purchased" "{{issue purchased}}", "issue product id" "{{issue product id}}", "publication id" "{{publication id}}", "publication name" "{{publication name}}" } }, "issue downloaded" { "templates" { "action" "issue downloaded" }, "parameters" { "issue id" "{{issue id}}", "issue name" "{{issue name}}", "issue categories" "{{issue categories}}", "issue tags" "{{issue tags}}", "issue purchasable" "{{issue purchasable}}", "issue purchased" "{{issue purchased}}", "publication id" "{{publication id}}", "publication name" "{{publication name}}" } }, "storefront search performed" { "templates" { "action" "search performed" }, "parameters" { "view" "{{view}}", "phrase" "{{phrase}}" } } }, "views" { "app menu" { "templates" { "name" "app menu" } } }, "purchases" {}, "attributes" { "has active subscription" { "templates" { "name" "has active subscription" } } } } } how to proceed from here to test this tracking configuration, you need to make it available in your app since this file is part of the dynamic resources, you can integrate it with the purple experience builder docid\ kmuf0oag3of3a46iup5q4 at this point further requirements it is also neccessary … that you have your own account for the used tracking services and configured them that your tracking services are configured and activated in your app in the purple manager