Announcement: Google Analytics returns to Curatescape mobile apps

Google Analytics is back in the latest version of the mobile apps (along with performance enhancements, bug fixes, and other improvements). Long time users may recall that we removed analytics after Apple introduced its App Tracking Transparency (ATT) policy, which raised questions about how to effectively track usage while respecting user privacy. Our reintroduction of Google Analytics involves some important changes. The new implementation is designed to collect only the minimum data needed to understand how the app is used, and to avoid the categories of data collection that trigger Apple’s ATT consent requirement.

If you have already set up analytics for your Curatescape website, the apps uses the same GA4 measurement id to collect data.

There are some additional steps involved if you want to do advanced usage analysis. See draft guide below for more information (subject to change as we continue to refine the details).


Platform Tracking

The app sends usage data to GA4 automatically whenever someone uses the iOS or Android app. Each session is tagged with a Client Platform value of ios or android, which is used throughout this guide to filter reports to app-only traffic.


Preliminary Setup: Register Custom Dimensions

GA4 requires you to explicitly register event parameters before they appear as dimensions in reports. This is a one-time step. Until a dimension is registered, events will still be counted, but you won’t be able to break them down by that dimension in standard reports.

After registering custom dimensions, allow 24–48 hours for them to populate in standard reports. The Explore tool (covered below) works immediately with raw event data.

To register a custom dimension:

  1. In GA4, click the gear icon (Admin) in the bottom-left corner
  2. Under your property, click Custom definitions
  3. Click Create custom dimension
  4. Fill in the Name, Scope, and Event parameter from the table below
  5. Click Save
  6. Repeat for each row in the table
Dimension name Scope Event parameter
Screen Name Event screen_name
Content Type Event content_type
Item ID Event item_id
Item Name Event item_name
Search Term Event search_term
Error Type Event error_type
Direction Event direction
Tour ID Event tour_id
Media Title Event media_title
Offline Status Event status
Client Platform User client_platform

Client Platform must use User scope. All others use Event scope.


Separating App Traffic from Browser Traffic

In standard reports

Use the Add comparison feature to filter any report to app-only sessions:

  1. Open any report (e.g., Reports → Engagement → Events)
  2. Click Add comparison near the top of the report
  3. Set the condition: User property / client_platform / exactly matches / ios
  4. Click Apply
  5. Optionally add a second comparison for android

The report will display side-by-side columns for each platform, making it easy to compare iOS and Android usage or view them together against the unfiltered total.

In Explore

When building custom explorations, add a filter to any exploration:

  1. In the Tab settings panel, click Add filter under Filters
  2. Set: Client Platform / exactly matches / ios (or android, or include both)

Useful Reports

Screen views by screen

Shows how often each screen in the app is visited.

  1. Go to Explore → Blank exploration
  2. In the Variables panel, add:
    • Dimension: Screen Name
    • Metric: Event count
  3. Drag Screen Name into the Rows box
  4. Drag Event count into the Values box
  5. Under Filters, add: Event name / exactly matches / screen_view
  6. Add a second filter: Client Platform / exactly matches / ios or android

The screens in this app are: About, Bookmarks, Contact, Discover, Map, Search, Settings, Stories, StoryDetail, TourDetail, and Tours.

Most-viewed stories and tours

Shows which content items users view most.

  1. Explore → Blank exploration
  2. Add dimensions: Item Name, Content Type
  3. Add metric: Event count
  4. Filters:
    • Event name exactly matches screen_view
    • Content Type exactly matches story (or tour)
  5. Drag Item Name into Rows, Event count into Values

Search terms

Shows what users are searching for.

  1. Go to Reports → Engagement → Events
  2. Click search in the event list to drill into it
  3. Or in Explore: filter Event name = search, add Search Term as a dimension

User engagement funnel

Shows how users move from browsing to engaging with content.

  1. Explore → Funnel exploration
  2. Add steps:
    • Step 1: Event name = screen_view AND Screen Name = Discover
    • Step 2: Event name = screen_view AND Screen Name = StoryDetail
    • Step 3: Event name = share OR bookmark
  3. Add a Client Platform filter to limit to app sessions

Tour navigation depth

Shows how far users progress through self-guided tours.

  1. Explore → Blank exploration
  2. Add dimensions: Tour ID, Item Name, Direction
  3. Add metric: Event count
  4. Filter: Event name exactly matches tour_navigate

Offline content downloads

Shows how often users download content for offline use, and whether downloads succeed or fail.

  1. Go to Reports → Engagement → Events → click offline_download
  2. Or in Explore: filter Event name = offline_download, add Offline Status as a dimension to see counts broken down by started, complete, and failed

App errors

Shows whether users are encountering content load failures or other recoverable errors.

  1. Explore → Blank exploration
  2. Add dimension: Error Type
  3. Add metric: Event count
  4. Filter: Event name exactly matches app_error

What the App Tracks

The following events are sent automatically by the app. All events include the Client Platform user property.

Event What it means
screen_view User visited a screen
search User ran a search
share User shared a story or tour via the device share sheet
bookmark User added or removed a story bookmark
story_map_open User opened the map on a story detail screen
tour_map_open User opened the map on a tour detail screen
audio_open User opened an audio file
video_open User opened a video
file_download User opened a PDF or document attachment
offline_download User initiated, completed, or failed an offline download
external_link_click User tapped a link to an outside website
tour_navigate User stepped forward or backward through a tour
app_error A content load or delivery error occurred