Skip to main content
The 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.

Properties

PropertyTypeDescriptionWeb SDKMobile SDK
urlStringFull URL of the page.window.location.hrefNot set
pathStringPath component of the URL (without query string or hash).window.location.pathnameNot set
hashStringHash fragment of the URL (e.g., #section).window.location.hashNot set
queryStringQuery string of the URL (without the leading ?).window.location.searchNot set
nameStringName of the page or screen.Caller-providedScreen name (required)
categoryStringCategory of the page or screen.Caller-providedCaller-provided
titleStringTitle of the page.Caller-providedNot set
On web, any non-UTM query-string parameters are also added as individual properties. The SDKs additionally auto-collect the following context fields:
Context fieldWeb SDKMobile SDK
context.page_urlwindow.location.hrefapp://{screenName}
context.page_titledocument.titleScreen name
context.page_pathNot set (derived in backend)Not set (derived in backend)
context.referrerdocument.referrerFrom deep link (if set)
context.user_agentBrowser user agentDevice user agent (if available)
context.localeBrowser languageDevice locale
context.timezoneResolved IANA timezoneResolved IANA timezone
context.locationCountry derived from timezoneCountry derived from timezone
context.library_name"Formo Web SDK""Formo React Native SDK"
context.library_versionSDK versionSDK version
context.browserDetected browser nameNot set
context.screen_widthwindow.screen.widthDimensions.get("screen").width
context.screen_heightwindow.screen.heightDimensions.get("screen").height
context.screen_densitywindow.devicePixelRatioDimensions.get("screen").scale
context.viewport_widthwindow.innerWidthNot set
context.viewport_heightwindow.innerHeightNot set
context.os_nameNot setiOS or Android
context.os_versionNot setOS version string
context.device_modelNot setDevice model (e.g., iPhone 14 Pro)
context.device_manufacturerNot setDevice manufacturer (e.g., Apple)
context.device_nameNot setDevice name
context.device_typeNot setmobile or tablet
context.app_nameNot setFrom native config or options
context.app_versionNot setFrom native config or options
context.app_buildNot setFrom native config or options
context.app_bundle_idNot setFrom native config or options
context.network_wifiNot settrue if connected via WiFi
context.network_cellularNot settrue if connected via cellular
context.network_carrierNot setCellular carrier name (when on cellular)
channel"web""mobile"

Sample Payload (Web)

{
    "type": "page",
    "channel": "web",
    "context": {
        "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36",
        "locale": "en-US",
        "timezone": "Asia/Saigon",
        "location": "ID",
        "referrer": "https://chatgpt.com/",
        "utm_source": "chatgpt.com",
        "utm_medium": "",
        "utm_campaign": "",
        "utm_term": "",
        "utm_content": "",
        "page_url": "https://formo.so/faucets?utm_source=chatgpt.com",
        "page_title": "Free testnet faucets",
        "library_name": "Formo Web SDK",
        "library_version": "1.30.1",
        "browser": "chrome",
        "screen_width": 1920,
        "screen_height": 1080,
        "screen_density": 1,
        "viewport_width": 1920,
        "viewport_height": 969
    },
    "properties": {
        "url": "https://formo.so/faucets?utm_source=chatgpt.com",
        "path": "/faucets",
        "hash": "",
        "query": "utm_source=chatgpt.com",
        "name": "Faucets",
        "category": "Docs",
        "title": "Free testnet faucets"
    }
}

Sample Payload (Mobile)

Screen events from the mobile SDK are sent as page events with channel: "mobile":
{
    "type": "page",
    "channel": "mobile",
    "version": "0",
    "session_id": "117b982a451dc22edea6413b8e20958216c0a5b3baaa1d90699c42dbf4e74e33",
    "anonymous_id": "c2bc0ebe-d852-49d1-9efd-e45744850ae0",
    "context": {
        "library_name": "Formo React Native SDK",
        "library_version": "1.0.0",
        "page_title": "Wallet",
        "page_url": "app://Wallet",
        "locale": "en-US",
        "timezone": "America/New_York",
        "location": "US",
        "os_name": "iOS",
        "os_version": "17.0",
        "device_model": "iPhone 14 Pro",
        "device_manufacturer": "Apple",
        "device_name": "Yos's iPhone",
        "device_type": "mobile",
        "app_name": "MyDeFiApp",
        "app_version": "2.1.0",
        "app_build": "42",
        "app_bundle_id": "com.example.mydefiapp",
        "network_wifi": true,
        "network_cellular": false,
        "screen_width": 393,
        "screen_height": 852,
        "screen_density": 3
    },
    "properties": {
        "name": "Wallet",
        "category": "Main"
    }
}