TheDocumentation Index
Fetch the complete documentation index at: https://docs.formo.so/llms.txt
Use this file to discover all available pages before exploring further.
page event records whenever a user views a page on your website or a screen in your mobile app. Both the web SDK and mobile SDK emit page events with channel set to "web" or "mobile" respectively.
On web, page properties are automatically collected from the browser. On mobile, the screen name is mapped to page-equivalent fields (page_title, page_path, page_url) so that web and mobile views are processed through the same analytics pipeline.
Fields
Apart from the common fields, thepage call accepts the following properties:
| Property | Type | Description |
|---|---|---|
url | String | Full URL of the page. |
path | String | Path component of the URL (without query string or hash). |
hash | String | Hash fragment of the URL (e.g., #section). |
query | String | Query string of the URL (without the leading ?). |
name | String | Name of the page or screen. |
category | String | Category of the page or screen. |
title | String | Title of the page. |
Properties
The following table shows which properties are automatically set by each SDK:| Property | Web SDK | Mobile SDK |
|---|---|---|
properties.url | window.location.href | Not set |
properties.path | window.location.pathname | Not set |
properties.hash | window.location.hash | Not set |
properties.query | window.location.search | Not set |
properties.name | Caller-provided | Screen name (required) |
properties.category | Caller-provided | Caller-provided |
context.page_url | window.location.href | app://{screenName} |
context.page_title | document.title | Screen name |
context.page_path | Not set (derived in backend) | Not set (derived in backend) |
context.referrer | document.referrer | From deep link (if set) |
context.user_agent | Browser user agent | Device user agent (if available) |
context.locale | Browser language | Device locale |
context.timezone | Resolved IANA timezone | Resolved IANA timezone |
context.location | Country derived from timezone | Country derived from timezone |
context.library_name | "Formo Web SDK" | "Formo React Native SDK" |
context.library_version | SDK version | SDK version |
context.browser | Detected browser name | Not set |
context.screen_width | window.screen.width | Dimensions.get("screen").width |
context.screen_height | window.screen.height | Dimensions.get("screen").height |
context.screen_density | window.devicePixelRatio | Dimensions.get("screen").scale |
context.viewport_width | window.innerWidth | Not set |
context.viewport_height | window.innerHeight | Not set |
context.os_name | Not set | iOS or Android |
context.os_version | Not set | OS version string |
context.device_model | Not set | Device model (e.g., iPhone 14 Pro) |
context.device_manufacturer | Not set | Device manufacturer (e.g., Apple) |
context.device_name | Not set | Device name |
context.device_type | Not set | mobile or tablet |
context.app_name | Not set | From native config or options |
context.app_version | Not set | From native config or options |
context.app_build | Not set | From native config or options |
context.app_bundle_id | Not set | From native config or options |
context.network_wifi | Not set | true if connected via WiFi |
context.network_cellular | Not set | true if connected via cellular |
context.network_carrier | Not set | Cellular carrier name (when on cellular) |
channel | "web" | "mobile" |
Sample Payload (Web)
Sample Payload (Mobile)
Screen events from the mobile SDK are sent aspage events with channel: "mobile":