OwlMetry

Projects & Apps

Organize your tracking with projects (cross-platform products) and apps (platform-specific builds).

OwlMetry uses a two-level hierarchy to organize your tracking: projects group related apps by product, and apps represent individual platform-specific builds.

Projects

A project represents a product or service. If you ship a mobile app called "Acme" on iOS and Android with a web dashboard, all three would live under a single "Acme" project.

Projects are team-scoped and identified by a unique slug. They provide a shared namespace for:

  • Metric definitions -- performance tracking is defined per-project
  • Funnel definitions -- conversion funnels span apps within a project
  • Apps -- the platform-specific builds that send events

Projects are managed through the dashboard, the CLI, or the API.

Apps

An app represents a single platform-specific build within a project. Each app has a platform, an optional bundle ID, and its own client API key for event ingestion.

Platforms

Every app has a broad platform that categorizes what kind of build it is:

PlatformDescriptionBundle ID Required
appleiOS, iPadOS, or macOS appYes
androidAndroid appYes
webWeb applicationYes
backendServer-side applicationNo

Environments

While an app has a single platform, the events it sends carry a more specific environment field that records the exact runtime:

EnvironmentDescription
iosiPhone
ipadosiPad
macosMac (Catalyst, Mac Catalyst, or native macOS)
androidAndroid device
webWeb browser
backendServer process

This distinction allows a single "apple" platform app to receive events from iOS, iPadOS, and macOS environments, which the SDKs detect automatically.

Platform-to-Environment Mapping

Each platform allows a specific set of environments:

PlatformAllowed Environments
appleios, ipados, macos
androidandroid
webweb
backendbackend

Bundle ID

Apps with a platform other than backend require a bundle_id (e.g., com.example.myapp). The ingest endpoint validates that the bundle_id in each request matches the app's registered bundle ID on every ingestion request.

Backend-platform apps have no bundle ID, and the ingest route skips this validation for them.

Bundle IDs are immutable after creation. The update endpoint only accepts a name change. If you need to change a bundle ID, delete the app and create a new one.

Auto-Created Client Key

When you create an app, OwlMetry automatically generates a client API key (owl_client_ prefix) and stores it on the app record. This key is returned in the creation response so you can configure your SDK immediately.

The key is also stored hashed in the api_keys table following the standard API key security model. The plaintext version on the app record enables easy retrieval for SDK configuration.

Typical Setup

A common configuration for a cross-platform mobile product:

ProjectAppPlatformBundle ID
AcmeAcme iOSapplecom.example.acme
AcmeAcme Androidandroidcom.example.acme
AcmeAcme Webwebcom.example.acme
AcmeAcme APIbackend--

All four apps share the same project, so metric definitions, funnel definitions, and cross-platform analytics are unified under "Acme."

For managing projects and apps, see the CLI projects guide, the CLI apps guide, or the API reference.

Ready to get started?

Install the CLI and let your agent handle the rest.