Skip to main content

Explore AppExchange App Analytics

Learning Objectives

After completing this unit, you’ll be able to:

  • List AppExchange App Analytics data types.
  • Recognize business use cases for package log file, package usage summary, and subscriber snapshot data types.

What Is AppExchange App Analytics?

Now that Robert has data on how potential customers interact with his AppExchange listing, he needs data on how subscribers use the Cloudy Health solution and its contents. 

App Analytics provides usage data about how subscribers interact with AppExchange solutions. Use these details to:

  • Identify attrition risks.
  • Inform feature development decisions.
  • Improve your subscribers’ experience.

Common Use Cases

Leung and Robert know that App Analytics will help inform their business decisions during their app 3.0 development phase. But can App Analytics help their other colleagues, too? Absolutely. App Analytics supports a wide variety of use cases.

Partner User Goals How App Analytics Helps

Presales engineer or account executive

  • Provide a complete customer trial experience
  • Close deals
  • Analyze how users are trialing your package
  • Provide customized recommendations to your prospective subscribers

Customer success representative

  • Drive feature adoption
  • Minimize subscriber attrition
  • Learn how and when users employ your solutions
  • Track a user’s activity across multiple packages

Product manager

  • Obtain product insights
  • Drive roadmap prioritization
  • Identify most-used features
  • Identify user pain points

Software engineer

  • Optimize code
  • Combine Apex data with Subscriber Snapshot Console to troubleshoot subscriber issues

How Does App Analytics Work?

Once you have clear App Analytics objectives similar to the goals above, you need your subscriber data to get into App Analytics. Here’s a Cloudy Health example to give you an idea of how that works.

  1. A Cloudy Health subscriber creates a reminder to get their annual physical.
  2. This interaction—creating an object—is stored in Salesforce as a line of data in a log file.
  3. Salesforce code stores, tidies up, and makes log lines available for retrieval.
  4. Robert creates an App Analytics query request and retrieves his requested data in his desired format.“”

App Analytics is available for packages that have passed security review and are registered to a License Management Application (LMA). To visualize your data, use CRM Analytics or any third-party analytics tool.

App Analytics includes three data types: point-in-time snapshot, monthly summary, or time series data. Each data type offers some CRUD (create, read, update, delete) activity and other data, such as counts of custom object records by subscriber. 

Note

AppExchange App Analytics is subject to certain usage restrictions as described in the AppExchange Program Policies. In order to request and retrieve package log files and subscriber snapshots, you must log a support case in the Salesforce Partner Community to activate App Analytics on your security-reviewed managed package. Package usage summaries, however, can be accessed without activation.

Data Type Description What’s Included and Excluded

Subscriber Snapshot

Small file containing a point-in-time look at your solution’s subscriber account activity

Doesn’t contain user-specific activity

Included: Object record counts from production and trial org events

Excluded: Sandbox and scratch org events

Package Usage Summary

Medium-size file providing summarized, high-level metrics by calendar month 

Included: Production org events

Excluded: Sandbox, scratch org, and trial org events

Package Log File

Large file containing all available data: UI, API-based, Lightning-based, and Apex operations

CRUD operations are logged per package for all components and custom objects in the package

Included: Production, sandbox, and trial org events

Excluded: Scratch org events

Need more App Analytics inspiration? Read App Analytics Use Cases in the Second-Generation Managed Packaging Developer Guide. As Salesforce evolves, so do App Analytics data types. Periodically check Salesforce release notes and the Get Started with AppExchange App Analytics info in the Second-Generation Managed Packaging Developer Guide for updates.

The next step for Robert is to study each data type’s dimensions (the data columns used to filter and summarize on) and measures (the metric values used to create KPIs). You can review a complete list of dimensions and measures in package usage summary, package log file, and subscriber snapshot data types in the Second-Generation Managed Packaging Developer Guide

Note

Wondering when you learn how to make an API call to retrieve App Analytics data? Don’t worry—we’ve got you covered later in this module.

Package Usage Summary

Package usage summaries include data related to the UI, the API, Lightning, and Apex operations. Summaries become available at the beginning of the next month. For example, you can get the usage summary for March at the beginning of April.

Both partners and subscribers can access package usage data. Partners request summaries using the AppAnalyticsQueryRequest object in the SOAP API from the LMA org that owns their package. Subscribers download usage summaries from their org’s Package Usage page for any security-reviewed package that they’ve installed.

Key dimensions:

  • managed_package_namespace identifies your solution.
  • custom_entity_type signifies the type of custom object or component, such as Lightning component.
  • custom_entity identifies the component or custom object a subscriber accessed.
  • month represents the month of the usage summary.
  • organization_id is the 15-character ID of the subscriber org.
  • user_id_token is the anonymized ID of the user who accessed the package. The token persists over time, even if a user’s details change.
  • user_type identifies the user license category of the user accessing Salesforce services through the UI or API.

These measures count different types of actions on specific types of code.

Measure Type of Code

num_events

Apex executions, CRUD activity

num_creates 

num_deletes

num_reads

num_updates

Custom objects

num_views

Lightning components, custom Visualforce code

Subscriber Snapshot

A subscriber snapshot is a point-in-time look at custom entity, package, and org data. Request a date range and receive one snapshot per valid date in that range. For example, StartTime=2023-01-18T00:00:00Z EndTime=2023-01-21T00:00:00Z returns three snapshots, one for each complete day: January 18, January 19, and January 20. 

Package Log File

Package log files list subscriber activity during a 24–hour period, between 12:00 AM and 12:00 AM UTC time. Your managed package contains packaged components, and each package usage log line describes an interaction that a user has with one of your packaged components. 

To understand that interaction, analyze each log line—or record—and focus on: 

  • What packaged component was accessed
  • Who interacted with that packaged component
  • How that packaged component interaction occurred

Finally, analyze the specific interaction data. Use this table to determine the key log data elements for your analysis.

What Packaged Component Was Accessed Who Interacted with the Component How the User Interacted with the Component

To identify each packaged component uniquely, combine these fields.

  • package_id
  • package_version_id
  • managed_package_namespace
  • custom_entity
  • custom_entity_type

Identify the subscriber org using organization_id

Use the user_id_token to identify and describe the user associated with the interaction.

Identify how the user interacted with your packaged component with log_record_type.

Other common fields associated with each interaction are:

  • request_id
  • timestamp_derived

For complete details on the contents of package usage logs and how to analyze all available data elements, check out How to Read App Analytics Package Usage Log Data in the Second-Generation Managed Packaging Developer Guide.

After you determine what, who, and how, next analyze your specific interaction data.

Custom and External Object Interaction Data

When a log record in your package usage log has custom_entity_type equal to CustomObject or ExternalObject, it means that a user performed an action that resulted in a create, read, update, or delete (CRUD) interaction on your object.

To determine the type and amount of CRUD that occurred on your packaged component, focus on:

  • operation_type
  • operation_count

Many user operations result in CRUD, like Apex REST API requests, SOAP API requests, scheduled job executions, and queueable Apex executions. Full detail on standard and supplemental data available by operation is available in Custom and External Object Interactions in the Second-Generation Managed Packaging Developer Guide

Lightning Interaction Data

Each record in your package usage log that has a custom_entity_type of LightningComponent or LightningPage describes an interaction with your packaged Lightning component or page.

When a user interacts with your LightningPage or LightningComponent packaged component, a log_record_type of LightningInteraction is created. When a user views your Lightning page, a log_record_type of LightningPageView is created. 

Apex Interaction Data

Each record in your package usage log that has a custom_entity_type of ApexClass or ApexTrigger describes an interaction with your packaged Apex class or trigger.Visualforce Interaction Data.

Each record in your package usage log that has a custom_entity_type of VisualforcePage describes an interaction with your packaged Visualforce pages.

CRM Analytics Asset Interaction Data

Each record in your package usage log that has a custom_entity_type of AnalyticsDashboard, AnalyticsLens, or AnalyticsRecipe describes an interaction with your packaged CRM Analytics assets.

In this unit, you learned about the three AppExchange App Analytics data types and discovered some use cases for each data type. You also learned what the data represents. Continue to the next unit as Robert and Leung retrieve App Analytics and automate data requests.

Resources

Keep learning for
free!
Sign up for an account to continue.
What’s in it for you?
  • Get personalized recommendations for your career goals
  • Practice your skills with hands-on challenges and quizzes
  • Track and share your progress with employers
  • Connect to mentorship and career opportunities