Skip to main content

Example Queries

Copy-paste SQL queries for common Content Reporting use cases. These queries work with exported Showpad data in your data warehouse.

What you'll learn:

  • How to query user engagement metrics (sessions, views, shares)
  • How to analyze content performance (views, shares, time spent)
  • How to join Events with lookup tables for richer insights
TL;DR
  • User sessions? Filter by type = 'app-opened' and join with Users
  • Content views? Filter by type = 'asset-in-app-viewed' with page IS NULL
  • Share analytics? Filter by type = 'share-created' and join with Shares
  • Cap durations? Use LEAST(TIMESTAMPDIFF(...), 3600) to cap at 1 hour
Prerequisites
  • Plan: Ultimate
  • Data: Content Reporting data exported and loaded into your data warehouse
  • Knowledge: Basic SQL and familiarity with Lookup Tables

Query Parameters

All queries use placeholder parameters that you'll need to replace:

ParameterDescriptionExample
:startDateStart of date range'2024-01-01'
:endDateEnd of date range'2024-01-31'
:selectedUsergroupsList of user group names('Sales', 'Marketing')

User Engagement Examples

User Details

Returns user info for users with session activity in a date range.

Returns: User ID, status, email, first name, last name

Filter by User Groups

Returns users belonging to specific user groups.

Returns: User ID, group names

Session Metrics

Calculates session counts and time spent per user. Sessions are capped at 1 hour to handle edge cases.

Returns: User ID, session count, average time spent, total time spent

Experience Metrics

Tracks Experience (channel) usage per user. Useful for measuring engagement with interactive content.

Returns: User ID, visit count, average time spent, total time spent

In-App Views

Counts asset views within the Showpad app per user. Uses page IS NULL to count full asset views only (not individual page views).

Returns: User ID, view count, unique assets viewed

Share Information

Breaks down sharing activity by type (Gmail, Outlook, etc.) per user.

Returns: User ID, total shares, Gmail shares, Outlook shares

Collections Information

Calculates collections created and active collections per user. Uses a UNION to combine creation and active counts.

Returns: User ID, collections created, collections active

Downloads Per User

Counts unique assets downloaded per user in a date range.

Returns: User ID, download count (unique assets)

Active Shared Spaces Per User

Lists active Shared Spaces per user, including titles. Handles soft-deleted records via COALESCE.

Returns: User ID, email, active Shared Space count, Shared Space titles


Content Engagement Examples

Engagement Metrics

Calculates per-asset engagement: views, unique viewers, and average time per view.

Returns: Asset ID, display name, view count, viewer count, average time per view

Asset Shares and Views

Advanced CTE query that calculates per-asset share counts and recipient views. Handles edge case where individual pages are shared separately.

Returns: Asset ID, display name, type, share count, recipient views

Recipient Viewers

Analyzes external recipient engagement with shared assets. Distinguishes between known contacts (with contactId) and anonymous viewers (tracked by deviceId).

Returns: Asset ID, display name, view count, viewer count, known/unknown contacts, average time per view

Active Shared Spaces Per Asset

Counts active Shared Spaces containing each asset. Filters out deleted items and inactive spaces.

Returns: Asset ID, display name, type, active Shared Space count

This query returns all assets. In the Admin App's top-content table, only assets with event activity in the

selected date range are shown. Modify the filtered_assets CTE to match your use case. :::

Was this page helpful?