Standard Event with Flurry Analytics iOS¶
For documentation on Android standard events see: here.
Events track standardized actions that users take within your app – for example, making a purchase, adding a social comment, or clicking on an Ad. This helps you understand how users interact with your app. This page will show you how to easily capture this information by walking through a hypothetical purchase event (note: this example is translatable to other standard events).
Please Note: You must initiate the session with one of the startSession method variants prior to logging any standard events. Any events logged prior to session initialization will not be recorded.
Important
You can track up to 1000 unique standard events per session. Once one single session hits the 1000 standard event limit, no further events would be tracked. Note that this limit is shared with other types of events such as the custom event.
Event Names for Standard Event¶
Like a custom event, a standard event also has a two-level structure. The highest level is the specific action, in this case the purchasing of an item. For this example, we are using the SDK standardized event name “FLURRY_EVENT_PURCHASED”.
In Flurry+Event.h, Flurry iOS SDK defines 58 standardized event names, and they are categorized in advertising, gaming, content, commerce, membership, onboarding, registration, search, social, media, and privacy.
Event Type |
Event Name |
Description |
Suggested Standardized Parameters |
Mandatory Standardized Parameters |
---|---|---|---|---|
Advertising |
AdClick |
Log this event when a user clicks on an Ad |
adType |
|
Advertising |
AdImpression |
Log this event when a user views an Ad impression |
adType |
|
Advertising |
AdRewarded |
Log this event when a user is granted a reward for viewing a rewarded Ad |
adType |
|
Advertising |
AdSkipped |
Log this event when a user skips an Ad |
adType |
|
Gaming |
CreditsSpent |
Log this event when a user spends credit in the app |
levelNumber, totalAmount, isCurrencySoft, creditType, creditId, creditName, currencyType |
totalAmount |
Gaming |
CreditsPurchased |
Log this event when a user purchases credit in the app |
levelNumber, totalAmount, isCurrencySoft, creditType, creditId, creditName, currencyType |
totalAmount |
Gaming |
CreditsEarned |
Log this event when a user earns credit in the app |
levelNumber, totalAmount, isCurrencySoft, creditType, creditId, creditName, currencyType |
totalAmount |
Gaming |
AchievementUnlocked |
Log this event when a user unlocks an achievement in the app |
achievementId |
|
Gaming |
LevelCompleted |
Log this event when an App user completes a level |
levelNumber, levelName |
levelNumber |
Gaming |
LevelFailed |
Log this event when an App user fails a level |
levelNumber, levelName |
levelNumber |
Gaming |
LevelUp |
Log this event when an App user levels up |
levelNumber, levelName |
levelNumber |
Gaming |
LevelStarted |
Log this event when an App user starts a level |
levelNumber, levelName |
levelNumber |
Gaming |
LevelSkip |
Log this event when an App user skips a level |
levelNumber, levelName |
levelNumber |
Gaming |
ScorePosted |
Log this event when an App user posts his score |
levelNumber, score |
score |
Content |
ContentRated |
Log this event when a user rates a content in the App |
contentId, contentType, contentName, rating |
contentId, rating |
Content |
ContentViewed |
Log this event when a specific content is viewed by a user |
contentId, contentType, contentName |
contentId |
Content |
ContentSaved |
Log this event when a user saves the content in the App |
contentId, contentType, contentName |
contentId |
Content |
ProductCustomized |
Log this event when a user customizes the App/product |
||
Commerce |
AppActivated |
Log this event when the App is activated |
||
Commerce |
ApplicationSubmitted |
Log this event when a user submits an application through the App |
||
Commerce |
AddItemToCart |
Log this event when an item is added to the cart |
itemCount, price, itemId, itemName, itemType |
itemCount, price |
Commerce |
AddItemToWishList |
Log this event when an item is added to the wish list |
itemCount, price, itemId, itemName, itemType |
itemCount, price |
Commerce |
CompletedCheckout |
Log this event when checkout is completed or transaction is successfully completed |
itemCount, totalAmount, currencyType, transactionId |
itemCount, totalAmount |
Commerce |
PaymentInfoAdded |
Log this event when payment information is added during a checkout process |
success, paymentType |
|
Commerce |
ItemViewed |
Log this event when an item is viewed |
itemId, itemName, itemType, price |
itemId |
Commerce |
ItemListViewed |
Log this event when a list of items is viewed |
itemListType |
|
Commerce |
Purchased |
Log this event when a user does a purchase in the App |
itemCount, totalAmount, itemId, success, itemName, itemType, currencyType, transactionId |
totalAmount |
Commerce |
PurchaseRefunded |
Log this event when a purchase is refunded |
price, currencyType |
price |
Commerce |
RemoveItemFromCart |
Log this event when a user removes an item from the cart |
itemId, price, itemName, itemType |
itemId |
Commerce |
CheckoutInitiated |
Log this event when a user starts checkout |
itemCount, totalAmount |
itemCount, totalAmount |
Commerce |
FundsDonated |
Log this event when a user donates fund to your App or through the App |
price, currencyType |
price |
Commerce |
UserScheduled |
Log this event when user schedules an appointment using the App |
||
Commerce |
OfferPresented |
Log this event when an offer is presented to the user |
itemId, itemName, itemCategory, price |
itemId, price |
Membership |
SubscriptionStarted |
Log this event at the start of a paid subscription for a service or product |
price, isAnnualSubscription, trialDays, predictedLTV, currencyType, subscriptionCountry |
price, isAnnualSubscription |
Membership |
SubscriptionEnded |
Log this event when a user unsubscribes from a paid subscription for a service or product |
isAnnualSubscription, currencyType, subscriptionCountry |
isAnnualSubscription |
Membership |
GroupJoined |
Log this event when user joins a group. |
groupName |
|
Membership |
GroupLeft |
Log this event when user leaves a group |
groupName |
|
Onboarding |
TutorialStarted |
Log this event when a user starts a tutorial |
tutorialName |
|
Onboarding |
TutorialCompleted |
Log this event when a user completes a tutorial |
tutorialName |
|
Onboarding |
TutorialStepCompleted |
Log this event when a specific tutorial step is completed |
stepNumber, tutorialName |
stepNumber |
Onboarding |
TutorialSkipped |
Log this event when user skips the tutorial |
stepNumber, tutorialName |
stepNumber |
Registration |
Login |
Log this event when a user login on the App |
userId, method |
|
Registration |
Logout |
Log this event when a user logout of the App |
userId, method |
|
Registration |
UserRegistered |
Log the event when a user registers (signup). Helps capture the method used to sign-up (signup with google/apple or email address) |
userId, method |
|
Search |
SearchResultViewed |
Log this event when user views search results |
query, searchType (e.g. voice, text) |
|
Search |
KeywordSearched |
Log this event when a user searches for a keyword using Search |
query, searchType (e.g. voice, text) |
|
Search |
LocationSearched |
Log this event when a user searches for a location using Search |
query |
|
Social |
Invite |
Log this event when a user invites another user |
userId, method |
|
Social |
Share |
Log this event when a user shares content with another user in the App |
socialContentId, socialContentName, method |
socialContentId |
Social |
Like |
Log this event when a user likes a social content. e.g. likeType captures what kind of like is logged (“celebrate”, “insightful”, etc) |
socialContentId, socialContentName, likeType |
socialContentId |
Social |
Comment |
Log this event when a user comments or replies on a social post |
socialContentId, socialContentName |
socialContentId |
Media |
MediaCaptured |
Log this event when an image, audio or a video is captured |
mediaId, mediaName, mediaType |
|
Media |
MediaStarted |
Log this event when an audio or video starts |
mediaId, mediaName, mediaType |
|
Media |
MediaStopped |
Log this event when an audio or video is stopped |
mediaId, duration (in seconds), mediaName, mediaType |
duration (in seconds) |
Media |
MediaPaused |
Log this event when an audio or video is paused |
mediaId, duration (in seconds), mediaName, mediaType |
duration (in seconds) |
Privacy |
PrivacyPromptDisplayed |
Log this event when a privacy prompt is displayed |
||
Privacy |
PrivacyOptIn |
Log this event when a user opts in (on the privacy prompt) |
||
Privacy |
PrivacyOptOut |
Log this event when a user opts out (on the privacy prompt) |
Capture the Event Parameters¶
The second level in the standard event structure is the event parameter, which will be an instance of SDK defined Interface - FlurryParamBuilder. In order for SDK to log a standard event, you might want to put the standardized parameters as well as your own defined parameters together. There will be recommended standardized parameter keys and mandatory standardized parameter keys defined for each standard event name. For instance, to log FLURRY_EVENT_PURCHASED event name, SDK suggests to include itemCount, totalAmount, itemId, success, itemName, itemType, currencyType and transactionId parameters, in which totalAmount is also a mandatory parameter that is indicated by the SDK. There are a total of 42 standardized parameter keys that come from 5 interfaces (FlurryStringParam, FlurryDoubleParam, FlurryBooleanParam, FlurryIntegerParam, FlurryLongParam). Each type of standardized parameter key can only be mapped to its corresponding data value - string, integer, double, boolean, long. So when you assemble your FlurryParamBuilder object with the standardized parameters, you will need to use the public APIs specified in FlurryParamBuilder interface to map them correctly.
Param Name |
DataType |
---|---|
adType |
string |
levelName |
string |
levelNumber |
int |
contentName |
string |
contentType |
string |
contentId |
string |
creditName |
string |
creditType |
string |
creditId |
string |
isCurrencySoft |
boolean |
currencyType |
string |
paymentType |
string |
itemName |
string |
itemType |
string |
itemId |
string |
itemCount |
int |
itemCategory |
string |
itemListType |
string |
price |
double |
totalAmount |
double |
achievementId |
string |
score |
int |
rating |
string |
transactionId |
string |
success |
boolean |
isAnnualSubscription |
boolean |
subscriptionCountry |
string |
trialDays |
int |
predictedLTV |
string |
groupName |
string |
tutorialName |
string |
stepNumber |
int |
userId |
string |
method |
string |
query |
string |
searchType |
string |
socialContentName |
string |
socialContentId |
string |
likeType |
string |
mediaName |
string |
mediaType |
string |
mediaId |
string |
duration |
int |
Here is an example of logging a purchase event using the new standard event protocol:
Like a custom event, each standard event can also have up to 10 parameters, and each parameter can have an infinite number of values associated with it. For example, for the ‘Note’ parameter, there may be 1,000 possible values who wrote an article.
Standard Events for Publisher Audiences¶
For publishers that monetize with Verizon Ads, Flurry can create audiences based only on your Standard Event data. These audiences will be scored on a daily basis and made available for ad calls through your ad partner. Header bidding integrations include Mopub and Applovin. For details on how to join the early access program contact your Verizon Media account manager.