Product Insights https://www.flurry.com/ en How to Create Custom Dashboards https://www.flurry.com/blog/how-to-create-custom-dashboards/ <span class="field field--name-title field--type-string field--label-hidden">How to Create Custom Dashboards</span> <div class="field field--name-field-blog-author-and-role field--type-string-long field--label-hidden field__item">By Mohamed Kahiye, Product Manager</div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="https://www.flurry.com/user/32/" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">LisaMoshfegh</span></span> <span class="field field--name-created field--type-created field--label-hidden">Tue, 04/13/2021 - 10:04</span> <div class="field field--name-field-blog-post-date field--type-datetime field--label-hidden field__item"><time datetime="2021-04-13T12:00:00Z" class="datetime">2021-04-13</time></div> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-inline"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="https://www.flurry.com/taxonomy/term/299/" hreflang="en">Product Insights</a></div> <div class="field__item"><a href="https://www.flurry.com/taxonomy/term/3/" hreflang="en">Product News</a></div> </div> </div> <span class="a2a_kit a2a_kit_size_32 addtoany_list" data-a2a-url="https://www.flurry.com/blog/how-to-create-custom-dashboards/" data-a2a-title="How to Create Custom Dashboards"><a class="a2a_button_linkedin"></a><a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_google_plus"></a><a class="a2a_dd addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fwww.flurry.com%2Fblog%2Fhow-to-create-custom-dashboards%2F&title=How%20to%20Create%20Custom%20Dashboards"></a></span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p><span><span><span><span><span><span>Building a Custom Dashboard in Flurry Analytics is not only simple, but it takes just a few seconds and will save you time in the future when you need to review the product metrics that matter for your business. You can create unlimited dashboards, each with a specific audience or feature in mind.</span></span></span></span></span></span></p> <p><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/x9fHjNFZTF4" title="YouTube video player" width="560"></iframe></p> <ul><li>Step 1: On any report measuring app sessions, activity, or event data, click the star icon in the top right corner.</li> <li>Step 2: In the drop-down menu, you can name the report and either save it to an existing dashboard or create a new dashboard. Note that you can save a report to multiple dashboards.</li> <li>Step 3: Easily access your dashboards by clicking the star icon in Flurry’s left hand navigation menu.</li> </ul><p>For example, many customers have created separate dashboards to measure iOS apps and Android apps separately, or dashboards by region or territory. </p> <p><img alt="Custom Dashboards Star" data-entity-type="" data-entity-uuid="" src="https://www.flurry.com/sites/default/files/Real-TimeActiveDevices.svg" /></p> <p>To view your custom dashboards, click the Dashboards icon--which is the star icon--on Flurry’s main navigation bar on the far left side of our developer portal. From there, you’ll be able to access all the different dashboards you have created.</p> <p><img alt="My Custom Dashboards" data-entity-type="" data-entity-uuid="" src="https://www.flurry.com/sites/default/files/my-custom-dashboards.png" width="60%" /></p> <p>Any dashboards created in the developer’s portal are automatically saved in the <a href="https://www.flurry.com/flurry-app/">Flurry mobile app</a>, and vice versa, meaning your most important metrics are with you on-the-go. Our goal at Flurry Analytics is to make product insights more accessible to app developers and help them build better apps that users love. Flurry Custom Dashboards are a new way for Flurry customers to conveniently view the product metrics they care about in one place. If you’ve used our new feature, we would love to hear from you. We welcome your feedback at <a href="mailto:support@flurry.com">support@flurry.com</a>.</p> </div> Tue, 13 Apr 2021 17:04:09 +0000 LisaMoshfegh 613 at https://www.flurry.com How to Build a Conversion Funnel for your Mobile App https://www.flurry.com/blog/mobile-app-conversion-funnel-analysis/ <span class="field field--name-title field--type-string field--label-hidden">How to Build a Conversion Funnel for your Mobile App</span> <div class="field field--name-field-blog-author-and-role field--type-string-long field--label-hidden field__item">By Lisa Moshfegh, Product Marketing</div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="https://www.flurry.com/user/32/" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">LisaMoshfegh</span></span> <span class="field field--name-created field--type-created field--label-hidden">Tue, 03/30/2021 - 14:06</span> <div class="field field--name-field-blog-post-date field--type-datetime field--label-hidden field__item"><time datetime="2021-03-29T12:00:00Z" class="datetime">2021-03-29</time></div> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-inline"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="https://www.flurry.com/taxonomy/term/299/" hreflang="en">Product Insights</a></div> </div> </div> <span class="a2a_kit a2a_kit_size_32 addtoany_list" data-a2a-url="https://www.flurry.com/blog/mobile-app-conversion-funnel-analysis/" data-a2a-title="How to Build a Conversion Funnel for your Mobile App"><a class="a2a_button_linkedin"></a><a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_google_plus"></a><a class="a2a_dd addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fwww.flurry.com%2Fblog%2Fmobile-app-conversion-funnel-analysis%2F&title=How%20to%20Build%20a%20Conversion%20Funnel%20for%20your%20Mobile%20App"></a></span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p><a href="https://www.flurry.com/blog/what-is-mobile-app-conversion-funnel/"><span><span><span><span><span><span><span><span>Mobile app conversion funnels</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> measure your app users as they complete a series of steps in your mobile application. Understanding the key conversion moments in your app is key to building a successful app business. In this post, we’ll walk you through how to create your first conversion funnel in Flurry Analytics. </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>An example of a conversion funnel would be completing a series of onboarding steps or signing up for an account. Conversion funnels can either directly generate revenue, such as completing a purchase or viewing an advertisement, or they can drive engagement, such as signing up for an email newsletter or creating an account. </span></span></span></span></span></span></p> <p><a href="https://login.flurry.com/signup"><span><span><span><span><span><span><span><span>Creating an account</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> and integrating Flurry’s SDK takes about 5 minutes. To get the most out of Flurry’s Conversion Funnel analysis, make sure you have your app’s </span></span></span></span></span></span><a href="https://www.flurry.com/analytics/event-tracking/"><span><span><span><span><span><span><span><span>custom events</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> integrated. </span></span></span></span></span></span></p> <h2><span><span><span><span><span><span>Building a Simple Mobile Conversion Funnel in Flurry Analytics</span></span></span></span></span></span></h2> <h3><span><span><span><span><span><span>Step 1: Login to Flurry Analytics</span></span></span></span></span></span></h3> <p><a href="https://dev.flurry.com/"><span><span><span><span><span><span><span><span>Login</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> to the Flurry developer’s portal, navigate to the Explorer icon and ensure Funnels is selected.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span><img alt="Flurry Analytics Conversion Funnel Analysis" data-entity-type="" data-entity-uuid="" src="https://www.flurry.com/sites/default/files/conversion-funnel-analysis-flurry.png" width="80%" /></span></span></span></span></span></span></p> <h3><span><span><span><span><span><span>Step 2: Choose Your Conversion Funnel’s Settings</span></span></span></span></span></span></h3> <p><span><span><span><span><span><span>Select your preferred time zone, the type of chart you’d like to see, and the type of conversion. We offer two types of funnels: User Conversion and Repeated Conversion. A User Conversion is a conversion funnel that a user would complete one time only, such as launching the app and completing the onboarding process. A Repeated Conversion is a recurring conversion funnel that users can complete repeatedly. </span></span></span></span></span></span></p> <h3><span><span><span><span><span><span>Step 3: Select the Key Steps in Your Conversion Funnel</span></span></span></span></span></span></h3> <p><span><span><span><span><span><span>Select steps that complete your funnel. In our example, we’re using Install, userRegistration, and InAppPurchase. Let’s see how this basic funnel looks.  </span></span></span></span></span></span></p> <p><br /><img alt="Conversion Funnel Analysis" data-entity-type="" data-entity-uuid="" src="https://www.flurry.com/sites/default/files/conversion-funnel-analysis.png" width="80%" /></p> <p><span><span><span><span><span><span>The solid blue bars represent the users who entered each step. In this case, we’re using a waterfall chart and the diagonal blue and white lines represent the drop off from the prior step. If you hover over each step with your cursor, you will see actual numbers and percentages. </span></span></span></span></span></span></p> <h3><span><span><span><span><span><span>Step 4: Add Constraints</span></span></span></span></span></span></h3> <p><span><span><span><span><span><span>Add constraints to each step for deeper analysis with the “Add Constraint” button. For example, you could analyze users who registered through a particular registration channel, or users who spent over a certain dollar amount. </span></span></span></span></span></span></p> <h2><span><span><span><span><span><span>Deeper Analysis Through Filters and Breakouts</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>Once your funnel is built, you can run more analysis using filters and breakouts. Filters allow you to filter out data you are not interested in seeing in your funnel. Breakouts allow you to break out each step by certain parameters. Let’s review an example of each. </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>If you select the Breakout drop-down you will be able to choose from a variety of breakouts: device type, country, estimated age and gender, and many more. Let’s choose Estimated Age. </span></span></span></span></span></span></p> <p><span><span><span><span><span><span><img alt="Conversion Funnel Analysis with Breakouts" data-entity-type="" data-entity-uuid="" src="https://www.flurry.com/sites/default/files/conversion-funnel-analysis-breakouts.png" width="80%" /></span></span></span></span></span></span></p> <p><span><span><span><span><span><span>In the example above, we have broken out our funnel by estimated age to allow you to measure the different conversion rates of different age brackets. Next, we’ll try a filter. Let’s say you only care about adults aged 18 - 44 and want to filter out app users under 18 or over 44. Click the “+ Add Filter” button and select “Estimated Age” to choose the three age brackets we’re interested in: 18 - 24, 25 - 34, and 35 - 44. Click “Run” to see your conversion funnel for app users between 18 and 44 years old. </span></span></span></span></span></span></p> <p><img alt="Conversion Funnel Analysis with Filters" data-entity-type="" data-entity-uuid="" src="https://www.flurry.com/sites/default/files/conversion-funnel-analysis-filters.png" width="80%" /></p> <p><span><span><span><span><span><span>Here, you see the same mobile conversion funnel, but it only includes adults aged 18 - 44 years old, and has filtered out any user that does not fall within that age range. </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>The default time period when you run a conversion funnel is the past 365 days, but you can use the Session Date filter to specify a more precise time period. For example, if you have focused on optimizing a particular step in the past 30 days, you would select “within the last 30 days” to see your more recent conversion funnel. </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Once you have built your conversion funnel, you can easily download and export your data if needed, or save your funnel for future use. You can even set your funnel to private so only you can access it, or set it to public and make it available to all Flurry users associated with your app. Building and analyzing your app’s conversion funnel over time can help boost user engagement and ultimately increase revenue. If you have any questions about using Flurry Analytics for conversion funnel analysis, please contact us at </span></span></span></span></span></span><a href="mailto:support@flurry.com"><span><span><span><span><span><span><span><span>support@flurry.com</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>. </span></span></span></span></span></span></p> </div> Tue, 30 Mar 2021 21:06:50 +0000 LisaMoshfegh 606 at https://www.flurry.com What App Developers Need to Know about Apple’s App Tracking Transparency https://www.flurry.com/blog/ios14-app-tracking-transparency-faq/ <span class="field field--name-title field--type-string field--label-hidden">What App Developers Need to Know about Apple’s App Tracking Transparency</span> <div class="field field--name-field-blog-author-and-role field--type-string-long field--label-hidden field__item">By David Lundell, Head of Product Management, Flurry Analytics</div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="https://www.flurry.com/user/32/" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">LisaMoshfegh</span></span> <span class="field field--name-created field--type-created field--label-hidden">Fri, 02/26/2021 - 10:38</span> <div class="field field--name-field-blog-post-date field--type-datetime field--label-hidden field__item"><time datetime="2021-02-26T12:00:00Z" class="datetime">2021-02-26</time></div> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-inline"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="https://www.flurry.com/taxonomy/term/299/" hreflang="en">Product Insights</a></div> <div class="field__item"><a href="https://www.flurry.com/taxonomy/term/20/" hreflang="x-default">ios 14</a></div> <div class="field__item"><a href="https://www.flurry.com/taxonomy/term/5/" hreflang="en">Apple</a></div> </div> </div> <span class="a2a_kit a2a_kit_size_32 addtoany_list" data-a2a-url="https://www.flurry.com/blog/ios14-app-tracking-transparency-faq/" data-a2a-title="What App Developers Need to Know about Apple’s App Tracking Transparency"><a class="a2a_button_linkedin"></a><a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_google_plus"></a><a class="a2a_dd addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fwww.flurry.com%2Fblog%2Fios14-app-tracking-transparency-faq%2F&title=What%20App%20Developers%20Need%20to%20Know%20about%20Apple%E2%80%99s%20App%20Tracking%20Transparency"></a></span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><h3><span><span><span><strong><span><span>Q: What is App Tracking Transparency?</span></span></strong></span></span></span></h3> <p>Apple will soon implement new <a href="https://developer.apple.com/app-store/user-privacy-and-data-use/">privacy protocols</a> that require app developers to obtain authorization to track users across apps and websites owned by other companies.<span><span><span><span><span><span> If your app collects data about end users and shares that data with other companies, you must present a tracking authorization prompt. </span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Q. Can I still use Flurry Analytics once Apple launches App Tracking Transparency?</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>Yes! Apple has indicated that first party analytics providers are not subject to required tracking opt-in. Flurry does not rely on the Identifier for Advertisers (IDFA), fingerprinting or other device IDs which would require end-user opt-in. Flurry leverages the Identifier for Vendors (IDFV) for first-party analytics, an Apple approved use. </span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Q: Do I need to present a tracking prompt to my users because my app includes the Flurry SDK?</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>No. Invoking the opt-in prompt in iOS 14 is completely up to you. You decide when to prompt for authorization - or even whether to invoke the prompt at all. Your analytics from Flurry won’t be impacted by whether you display the prompt for opt-in authorization. </span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Q. Will Flurry only provide analytics for users that opt in?</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>No. Flurry provides analytics reporting on all of your users regardless of opt-in state.</span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Q: When will Apple launch App Tracking Transparency?</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>Starting with the beta versions of iOS 14.5, iPadOS 14.5, and tvOS 14.5, developers will be required to ask users for their permission to track them. We are still waiting for Apple to announce when these will be widely released, but industry insiders predict sometime in March. </span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Q: What do I need to do on my app’s product page in the App Store?</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>Developers that work with Flurry need to acknowledge and detail the Data Use around each type of data Flurry collects. As a Flurry Analytics customer, you MUST select the following Data Types as they are collected by Flurry Analytics: </span></span></span></span></span></span><span><span><span><strong><span><span>Device ID</span></span></strong></span></span></span><span><span><span><span><span><span>, </span></span></span></span></span></span><span><span><span><strong><span><span>Product Interaction</span></span></strong></span></span></span><span><span><span><span><span><span>, </span></span></span></span></span></span><span><span><span><strong><span><span>Other Usage Data</span></span></strong></span></span></span><span><span><span><span><span><span>. Optionally,  if you use Flurry Crash Analytics, you must select the following Data Types: </span></span></span></span></span></span><span><span><span><strong><span><span>Crash Data</span></span></strong></span></span></span><span><span><span><span><span><span>, </span></span></span></span></span></span><span><span><span><strong><span><span>Performance Data</span></span></strong></span></span></span><span><span><span><span><span><span>. If you use Flurry Revenue Analytics, you must select the following: </span></span></span></span></span></span><span><span><span><strong><span><span>Purchases</span></span></strong></span></span></span><span><span><span><span><span><span><span>.</span></span></span></span></span></span></span></p> <p><span><span><span><span><span><span><span>Please see </span></span></span></span></span></span></span><a href="https://www.flurry.com/blog/flurry-guidance-apple-app-privacy-details/"><span><span><span><span><span><span><span><span><span>this blog post</span></span></span></span></span></span></span></span></span></a><span><span><span><span><span><span><span> for detailed steps to update your app’s data collection practices as they relate to Flurry Analytics. </span></span></span></span></span></span></span><span><span><span><span><span><span>The information we are providing is only relevant to your use of Flurry Analytics. Based on your own app’s data collection practices or those of other third-parties you work with, you may need to select additional data types.</span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Q: Do I need to upgrade to Flurry’s latest SDK to be compliant with Apple’s App Tracking Transparency?</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>No. Flurry customers will continue to receive the same data and services from Flurry Analytics regardless of SDK version. We recommend minimum Android Flurry SDK v.12.0.0 and minimum iOS Flurry SDK v10.0.0.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>To take advantage of Flurry’s Conversion Value analytics, upgrade to the latest version of the Flurry SDK. For more information on how to use Conversion Value to measure post-install campaign campaign effectiveness and LTV, please see </span></span></span></span></span></span><a href="https://www.flurry.com/blog/announcing-flurry-conversion-value-analytics-for/"><span><span><span><span><span><span><span><span>this blog post</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>.</span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Q: Does Flurry respect end user App Tracking Transparency authorization (i.e. user tracking opt-in)?</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>Flurry will respect Apple’s policy requirement to not combine data across apps and websites owned by other companies in cases where end users have not provided affirmative consent to tracking. In other words, Flurry doesn’t track unless the app obtains tracking consent.</span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Q: What does ATT mean for me as an app publisher who relies on advertising revenue?</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>Today, Ad Networks and Demand Side Platforms use the IDFA to reach target audiences. When the IDFA becomes largely unavailable, advertisers will have fewer tools for targeting and attribution. As a result, ad spending will likely drop, leading to lower CPMs and fill for application publishers. For more details on how ATT will likely impact app developers who rely on advertising revenue - and for how Flurry can help - please read our </span></span></span></span></span></span><a href="https://www.flurry.com/blog/how-ios-14-negatively-impacts-ad-revenue/"><span><span><span><span><span><span><span><span>blog post</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>.</span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Q: What does ATT mean for me as an app publisher who relies on advertising to drive user acquisition?</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>In the pre-iOS 14 world, Mobile Measurement Partners (MMPs) used IDFAs to provide app install campaign performance insights. With freely collected IDFAs, advertisers could learn which app showed an ad, the specific campaign and creative used to drive an install, and even actions taken by end users after downloading an advertised app. As we enter a new era in which the majority of IDFAs will no longer be available, this traditional mobile attribution model will be impacted. To address the gap it is creating for MMPs, Apple has improved its own SKAdnetwork framework. To learn more about how Flurry can help you leverage SKAdnetwork, please read our blog post </span></span></span></span></span></span><a href="https://www.flurry.com/blog/how-ios-14-disrupts-mobile-ad-campaign-attribution/"><span><span><span><span><span><span><span><span>here</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>.</span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Q: What is SKAdnetwork?</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>SKAdnetwork is Apple’s solution to attribution challenges, including those introduced by the App Tracking Transparency framework. SKAdnetwork helps advertising apps and ad networks connect their campaigns to installs. For end users that have not opted into tracking, SKAdnetwork metadata is the only way for apps to measure campaign impact on installs.</span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Q: What is SKAdnetwork Conversion Value?</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>For end users that have not opted into tracking, Conversion Value is the only indicator beyond the install event to gauge the quality of the install. Conversion Value is a six bit value set by the app after users launch a new app for the first time. Apps can update the conversion value within 24 hours. Updating the value automatically resets a 24-hour timer, which postpones the SKAdnetwork postback to ad networks. With up to 64 different values and a limited time in which to set those values, apps will need to be smart about using Conversion Value to effectively describe and predict the user’s expected lifetime value. No matter how you choose to set your Conversion Value, Flurry can help you better understand lifetime value by automatically setting the Conversion Value as a Standard User Property. Please see </span></span></span></span></span></span><a href="https://www.flurry.com/blog/announcing-flurry-conversion-value-analytics-for/"><span><span><span><span><span><span><span><span>this blog post</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> for details. </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Flurry is here to help navigate app developers through this disruption of traditional app business models. Please contact us at </span></span></span></span></span></span><a href="mailto:support@flurry.com"><span><span><span><span><span><span><span><span>support@flurry.com</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> if you have any questions. </span></span></span></span></span></span></p> </div> Fri, 26 Feb 2021 18:38:23 +0000 LisaMoshfegh 598 at https://www.flurry.com How to Leverage Flurry Crash Analytics & Reporting to Improve Mobile App User Experience https://www.flurry.com/blog/improve-app-ux-crash-analytics-reporting/ <span class="field field--name-title field--type-string field--label-hidden">How to Leverage Flurry Crash Analytics & Reporting to Improve Mobile App User Experience</span> <div class="field field--name-field-blog-author-and-role field--type-string-long field--label-hidden field__item">By Bisera Ferrero, Director of Flurry Engineering</div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="https://www.flurry.com/user/32/" typeof="schema:Person" property="schema:name" datatype="" xml:lang="">LisaMoshfegh</span></span> <span class="field field--name-created field--type-created field--label-hidden">Wed, 12/16/2020 - 08:05</span> <div class="field field--name-field-blog-post-date field--type-datetime field--label-hidden field__item"><time datetime="2020-12-16T12:00:00Z" class="datetime">2020-12-16</time></div> <div class="field field--name-field-blog-tags field--type-entity-reference field--label-inline"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="https://www.flurry.com/taxonomy/term/3/" hreflang="en">Product News</a></div> <div class="field__item"><a href="https://www.flurry.com/taxonomy/term/299/" hreflang="en">Product Insights</a></div> </div> </div> <span class="a2a_kit a2a_kit_size_32 addtoany_list" data-a2a-url="https://www.flurry.com/blog/improve-app-ux-crash-analytics-reporting/" data-a2a-title="How to Leverage Flurry Crash Analytics & Reporting to Improve Mobile App User Experience"><a class="a2a_button_linkedin"></a><a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_google_plus"></a><a class="a2a_dd addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fwww.flurry.com%2Fblog%2Fimprove-app-ux-crash-analytics-reporting%2F&title=How%20to%20Leverage%20Flurry%20Crash%20Analytics%20%26%20Reporting%20to%20Improve%20Mobile%20App%20User%20Experience"></a></span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p><span><span><span><span><span><span>App developers must find new opportunities to delight app users while also increasing an app’s profitability. And on top of creating an engaging user experience, driving <a href="https://www.flurry.com/acquisition/">user acquisition</a>, or finding new ways to monetize, the ability to quickly resolve crash incidents is essential for sustaining a positive user experience.</span></span></span></span></span></span><span><span><span><span><span><span> </span></span></span></span></span></span></p> <p><a href="https://www.flurry.com/crash/"><span><span><span><span><span><span><span><span>Flurry Crash Analytics</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> simplifies identifying and responding to crashes, errors, and exceptions in a mobile app. It does so by giving you, the app developer, the tools to completely reconstruct the crash (bug) in order to isolate its cause. Although <span><span>the basic setup</span></span> to get the crash information is easy, the <span><span>enhanced setup requires</span></span> a bit of additional planning, but it allows you to harness the full power of Flurry Crash analytics.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>When fully leveraged, the Flurry Crash Analytics UI displays the events, breadcrumbs, and crash details in a single time ordered list capturing all pieces of information related to the session in which the crash occurred. This unified view can provide sufficient information required to reproduce the steps that led to a crash and as such can be of great help when improving the code to address the reported crash.  </span></span></span></span></span></span></p> <p><img alt="The Flurry Crash Analytics user interface displays the events, breadcrumbs, and crash details in a list" data-entity-type="" data-entity-uuid="" src="https://www.flurry.com/sites/default/files/flurry-crash-analytics-user-interface.png" width="80%/" /></p> <h5><span><span><span><span><em><span>Fig. 1: The Flurry Crash Analytics user interface displays the events, breadcrumbs, and crash details in a list.</span></em></span></span></span></span></h5> <h2><span><span><span><span><span><span>Getting Started with Flurry Crash for iOS & Android</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>Crash reporting is a standard feature of the Flurry Analytics SDK. In other words, integrating Flurry Crash Analytics does not require a separate SDK. </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Getting started with Flurry Crash Analytics is easy. If your app is already integrated with Flurry, skip ahead to Step 3. </span></span></span></span></span></span></p> <p><span><span><span><strong><span><span>Step 1:</span></span></strong></span></span></span><span><span><span><span><span><span> </span></span></span></span></span></span><a href="https://login.flurry.com/signup"><span><span><span><span><span><span><span><span>Sign up for a free account</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> and add your app to Flurry. </span></span></span></span></span></span></p> <p><span><span><span><strong><span><span>Step 2: </span></span></strong></span></span></span><span><span><span><span><span><span> Integrate Flurry’s SDK in about 5 minutes. You can do this via CocoaPods (iOS), jcenter (Android), or let us walk you through easy integration steps. Find step-by-step integration instructions for </span></span></span></span></span></span><a href="https://developer.yahoo.com/flurry/docs/integrateflurry/ios/" target="_blank"><span><span><span><span><span><span><span><span>iOS</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>,  </span></span></span></span></span></span><a href="https://developer.yahoo.com/flurry/docs/integrateflurry/android/" target="_blank"><span><span><span><span><span><span><span><span>Android</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>, </span></span></span></span></span></span><a href="https://developer.yahoo.com/flurry/docs/integrateflurry/react-native/" target="_blank"><span><span><span><span><span><span><span><span>React Native</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>, or </span></span></span></span></span></span><a href="https://developer.yahoo.com/flurry/docs/integrateflurry/unity/" target="_blank"><span><span><span><span><span><span><span><span>Unity</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>  in our documentation pages. </span></span></span></span></span></span><span><span><span><span><span><span>Once you complete this step, your app’s data will flow into your Flurry dashboard.</span></span></span></span></span></span></p> <p><span><span><span><strong><span><span>Step 3:</span></span></strong></span></span></span><span><span><span><span><span><span> Enable Flurry Crash with an additional line of code:</span></span></span></span></span></span></p> <p><span><span><span><span><span><span><strong>iOS: </strong>In iOS, only a single crash processor can be active. For this reason, the Flurry Analytics SDK does not enable crash by default and requires you to enable it explicitly. </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>ObjectiveC example:</span></span></span></span></span></span></p> <pre> <code>FlurrySessionBuilder* builder = [[FlurrySessionBuilder new] withCrashReporting:YES]; [Flurry startSession:flurryAPIKey withSessionBuilder:builder]; </code></pre> <p><strong><span><span><span><span><span><span>Android: </span></span></span></span></span></span></strong><span><span><span><span><span><span>On Android, Crash Analytics is enabled by default and requires no explicit call to send Crashes to Flurry Analytics. This means that data for your Android apps is already flowing into Flurry Crash Analytics. For Caught Exceptions and Logged Errors, you can optionally update your error handling methods, with the method call below, to log these issues into Flurry:</span></span></span></span></span></span></p> <pre> <code>new FlurryAgent.Builder() ... .withCaptureUncaughtExceptions(true) ... .build(this, FLURRY_API_KEY); </code></pre> <p><strong><span><span><span><span><span><span>React Native:  </span></span></span></span></span></span></strong></p> <pre> <code>new FlurryAgent.Builder() ... .withCrashReporting(true) ... .build(FLURRY_ANDROID_API_KEY, FLURRY_IOS_API_KEY);</code></pre> <p><strong><span><span><span><span><span><span>Unity:</span></span></span></span></span></span></strong></p> <pre> <code> new Flurry.Builder() .WithCrashReporting(true) ... .Build(FLURRY_API_KEY);</code></pre> <p><span><span><span><span><span><span>With this basic setup, the Flurry Dashboard will be reporting on all the crashes in your app.</span></span></span></span></span></span></p> <p><img alt="With basic setup complete on iOS or Android, the Flurry Dashboard will be reporting on all the crashes in your app." data-entity-type="" data-entity-uuid="" src="https://www.flurry.com/sites/default/files/flurry-dashboard-crash-reporting.png" width="80%" /></p> <h5>Fig. 2: <span><span><span><span><em><span>With basic setup complete on iOS or Android, the Flurry Dashboard will be reporting on all the crashes in your app.</span></em></span></span></span></span></h5> <h2><span><span><span><span><span><span>Journey to Crash: How to Log the Events Leading Up to a Crash</span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>To help developers efficiently isolate the causes of the app crash and to resolve the bug that resulted in the crash, Flurry Crash Analytics exposes the additional features: the upload of the mapping files and Breadcrumbs. Flurry Crash Analytics creates a Journey to Crash - the time ordered list capturing all the steps that led to the crash. In addition, it combines all the CustomEvents logged within the app prior to the crash.  </span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Mapping Files Upload</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>To  get details of every crash, error, and exception, including the number of occurrences and the detailed stack trace, upload your dSYM or Proguard mapping files in the </span></span></span></span></span></span><a href="https://dev.flurry.com/developer/crash/overview" target="_blank"><span><span><span><span><span><span><span><span>Single App Overview</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> section. </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>You can also integrate the mapping file upload with your development workflow. The scripts to do so, for iOS and Android apps, are available on </span></span></span></span></span></span><a href="https://github.com/flurry/upload-clients"><span><span><span><span><span><span><span><span>Flurry’s Github repository</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>. </span></span></span></span></span></span></p> <p><span><span><span><span><span><span><img alt="Upload mapping files for iOS or Android apps to help developers efficiently isolate the causes of the app crash" data-entity-type="" data-entity-uuid="" src="https://www.flurry.com/sites/default/files/flurry-crash-upload-mapping-files.png" width="80%" /></span></span></span></span></span></span></p> <h5>Fig. 3: <span><span><span><span><em><span>Upload mapping files for iOS or Android apps to help developers efficiently isolate the causes of the app crash.</span></em></span></span></span></span></h5> <h3><span><span><span><strong><span><span>Breadcrumbs</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>As the name implies, the Breadcrumbs are just that, traces of information left throughout the app’s code to help trace the flow of events a user experienced leading up to the crash. The app developers leave the Breadcumbs throughout the code, capturing the valuable information to help themselves understand the execution of code outside of what's recorded in the stack trace. Knowing the sequence of things the user did within the app before it crashed, helps developers reproduce the crash and diagnose the problem.  </span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Add the breadcrumbs throughout your code using the Flurry SDK API to log the breadcrumbs:</span></span></span></span></span></span></p> <p><strong><span><span><span><span><span><span>Android: </span></span></span></span></span></span></strong></p> <pre> <code>FlurryAgent.logBreadcrumb(BREADCRUMB_ERROR_MESSAGE);</code></pre> <p><strong><span><span><span><span><span><span>iOS: </span></span></span></span></span></span></strong></p> <pre> <code><span style="color: #aaa !important;">[Flurry leaveBreadcrumb:@"BREADCRUMB_ERROR_MESSAGE"];</span></code></pre> <p><span><span><span><strong><span><span>Custom Events</span></span></strong></span></span></span></p> <p><span><span><span><span><span><span>To enhance crash reporting and identify exactly where crashes occur in your app, integrate custom events. With custom events integrated, you will unlock endless possibilities to analyze your app’s audience and how your users use your app. For step-by-step instructions, please visit our documentation pages for </span></span></span></span></span></span><a href="https://developer.yahoo.com/flurry/docs/analytics/gettingstarted/events/ios/" target="_blank"><span><span><span><span><span><span><span><span>iOS</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> and </span></span></span></span></span></span><a href="https://developer.yahoo.com/flurry/docs/analytics/gettingstarted/events/android/" target="_blank"><span><span><span><span><span><span><span><span>Android</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span>. </span></span></span></span></span></span></p> <h2><span><span><span><span><span><span>Real Time Crash Analytics & Reporting! </span></span></span></span></span></span></h2> <p><span><span><span><span><span><span>Flurry Crash Analytics gives you a number of tools to tune into the crashes as soon as they are happening.  </span></span></span></span></span></span></p> <p><a href="https://dev.flurry.com/metrics/1000" target="_blank"><span><span><span><strong><span><span><span><span>Realtime Crash Dashboard</span></span></span></span></strong></span></span></span></a><span><span><span><span><span><span> is, just as the name implies—a real time numerical chart of the crashes happening without specific details as to what those crashes are. </span></span></span></span></span></span></p> <p><span><span><span><span><span><span><img alt="Flurry Realtime Crash Dashboard reports app crashes in real time." data-entity-type="" data-entity-uuid="" src="https://www.flurry.com/sites/default/files/flurry-real-time-crash-reporting.png" width="80%" /></span></span></span></span></span></span></p> <h5>Fig. 4: <span><span><span><span><em><span>Flurry’s Realtime Crash Dashboard reports app crashes in real time.</span></em></span></span></span></span></h5> <p><span><span><span><span><span><span>To dig deeper and to get the accurate, timely information of the crashes as they are happening in real time, there are further options: </span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Jira Integration</span></span></strong></span></span></span></h3> <p><a href="https://developer.yahoo.com/flurry/docs/analytics/crash/jira/" target="_blank"><span><span><span><span><span><span><span><span>Integrate your Jira Cloud instance</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> and Flurry Crash Analytics will automatically create a ticket in your Jira instance as soon as a crash occurs, for the first time. </span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Slack Integration</span></span></strong></span></span></span></h3> <p><span><span><span><span><span><span>Similarly to Jira Integration, after you provide Flurry with the </span></span></span></span></span></span><a href="https://developer.yahoo.com/flurry/docs/analytics/flurryalerts/slack/" target="_blank"><span><span><span><span><span><span><span><span>webhook URL</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> of the slack channels where the alerts are to be delivered, Flurry Crash Analytics will be sending all the new crash incidents to that slack channel. </span></span></span></span></span></span></p> <h3><span><span><span><strong><span><span>Crash Alerts</span></span></strong></span></span></span><span><span><span><span><span><span> (email, Slack, and push notifications)</span></span></span></span></span></span></h3> <p><span><span><span><span><span><span>You can monitor crash occurrences, such as Total Errors, Symbolicated Crash Devices,  Symbolicated Crash Occurrences, Symbolicated Crash Impact Rate and receive alerts via email, Slack or - if you have the </span></span></span></span></span></span><a href="https://www.flurry.com/flurry-app/"><span><span><span><span><span><span><span><span>Flurry mobile app</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> - as push notifications.</span></span></span></span></span></span></p> <p><span><span><span><span><span><span>Visit </span></span></span></span></span></span><a href="https://dev.flurry.com/developer/crash/historical" target="_blank"><span><span><span><span><span><span><span><span>Flurry’s Crash dashboard</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> to begin reviewing and addressing the individual crashes in your app. You are now all set to manage and respond to crashes, errors and exceptions in your mobile app. Please see our </span></span></span></span></span></span><a href="https://developer.yahoo.com/flurry/docs/analytics/crash/crashanalytics/" target="_blank"><span><span><span><span><span><span><span><span>documentation pages</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> for more detailed information or reach out to us at </span></span></span></span></span></span><a href="mailto:support@flurry.com"><span><span><span><span><span><span><span><span>support@flurry.com</span></span></span></span></span></span></span></span></a><span><span><span><span><span><span> with any additional questions.</span></span></span></span></span></span></p> </div> Wed, 16 Dec 2020 16:05:02 +0000 LisaMoshfegh 587 at https://www.flurry.com