diff --git a/content/shared/3rd-party-analytics/tracking-analytics.mdx b/content/shared/3rd-party-analytics/tracking-analytics.mdx index 2a1d496d..48039d7d 100644 --- a/content/shared/3rd-party-analytics/tracking-analytics.mdx +++ b/content/shared/3rd-party-analytics/tracking-analytics.mdx @@ -23,32 +23,44 @@ The full list of events is as follows: | **Event Name** | **Action** | **Parameters** | |------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `adServicesTokenRequestComplete` | When the AdServices token request finishes. | `["token": String]` | -| `adServicesTokenRequestFail` | When the AdServices token request fails. | `["error": Error]` | -| `adServicesTokenRequestStart` | When the AdServices token request starts. | None | +| `adServicesTokenRequest_complete` | When the AdServices token request finishes. | `["token": String]` | +| `adServicesTokenRequest_fail` | When the AdServices token request fails. | `["error_message": String]` | +| `adServicesTokenRequest_start` | When the AdServices token request starts. | None | | `app_close` | Anytime the app leaves the foreground. | Same as `app_install` | | `app_install` | When the SDK is configured for the first time. | `["is_superwall": true, "app_session_id": String, "using_purchase_controller": Bool]` | | `app_launch` | When the app is launched from a cold start. | Same as `app_install` | | `app_open` | Anytime the app enters the foreground. | Same as `app_install` | -| `configAttributes` | When the attributes affecting Superwall's configuration are set or changed. | None | -| `configFail` | When the Superwall configuration fails to be retrieved. | None | -| `configRefresh` | When the Superwall configuration is refreshed. | None | -| `confirmAllAssignments` | When all experiment assignments are confirmed. | None | -| `customPlacement` | When the user taps on an element in the paywall that has a `custom_placement` action. | `["name": String, "params": [String: Any], "paywallInfo": PaywallInfo]` | +| `attribution_match` | When install attribution is resolved or fails to resolve. | `["provider": String, "matched": Bool, "source": String?, "confidence": String?, "match_score": Double?, "reason": String?]` | +| `config_attributes` | When the attributes affecting Superwall's configuration are set or changed. | The SDK configuration options + `["using_purchase_controller": Bool, "has_delegate": Bool]` | +| `config_fail` | When the Superwall configuration fails to be retrieved. | `["error_message": String]` | +| `config_refresh` | When the Superwall configuration is refreshed. | `["config_build_id": String, "retry_count": Int, "cache_status": String, "fetch_duration": Double]` | +| `confirm_all_assignments` | When all experiment assignments are confirmed. | None | +| `custom_placement` | When the user taps on an element in the paywall that has a `custom_placement` action. | `["name": String, "params": [String: Any], "paywallInfo": PaywallInfo]` | +| `customerInfo_didChange` | When the user's customer info changes. | `["from": String, "to": String]` (JSON snapshots of the entitlements before and after the change) | | [`deepLink_open`](/dashboard/dashboard-campaigns/campaigns-standard-placements#using-the-deeplink-open-event) | When a user opens the app via a deep link. | `["url": String, "path": String", "pathExtension": String, "lastPathComponent": String, "host": String, "query": String, "fragment": String]` + any query parameters in the deep link URL | | `device_attributes` | When device attributes are sent to the backend every session. | Includes `app_session_id`, `app_version`, `os_version`, `device_model`, `device_locale`, and various hardware/software details. | +| `enrichment_complete` | When the enrichment request completes. | `user_` and `device_` entries for each returned enrichment value | +| `enrichment_fail` | When the enrichment request fails. | None | +| `enrichment_start` | When the enrichment request starts. | None | | `first_seen` | When the user is first seen in the app, regardless of login status. | Same as `app_install` | | `freeTrial_start` | When a user completes a transaction for a subscription product with an introductory offer. | Same as `subscription_start` | -| `identityAlias` | When the user's identity aliases after calling `identify`. | None | +| `identity_alias` | When the user's identity aliases after calling `identify`. | None | +| `integration_attributes` | When the integration attributes are set. | The provided integration attributes | +| `networkDecoding_fail` | When a response from the network fails to decode. | `["request_url": String, "response": String]` | | `nonRecurringProduct_purchase` | When the user purchases a non-recurring product. | Same as `subscription_start` | -| `paywall_close` | When a paywall is closed (either manually or after a transaction succeeds). | [“paywall_webview_load_complete_time”: String?, “paywall_url”: String, “paywall_response_load_start_time”: String?, “paywall_products_load_fail_time”: String?, “secondary_product_id”: String, “feature_gating”: Int, “paywall_response_load_complete_time”: String?, “is_free_trial_available”: Bool, “is_superwall”: true, “presented_by”: String, “paywall_name”: String, “paywall_response_load_duration”: String?, “paywall_identifier”: String, “paywall_webview_load_start_time”: String?, “paywall_products_load_complete_time”: String?, “paywall_product_ids”: String, “tertiary_product_id”: String, “paywall_id”: String, “app_session_id”: String, “paywall_products_load_start_time”: String?, “primary_product_id”: String, “survey_attached”: Bool, “survey_presentation”: String?] | +| `paywall_close` | When a paywall is closed (either manually or after a transaction succeeds). | [“paywall_webview_load_complete_time”: String?, “paywall_url”: String, “paywall_response_load_start_time”: String?, “paywall_products_load_fail_time”: String?, “secondary_product_id”: String, “feature_gating”: Int, “paywall_response_load_complete_time”: String?, “is_free_trial_available”: Bool, “is_superwall”: true, “presented_by”: String, “paywall_name”: String, “paywall_response_load_duration”: String?, “paywall_identifier”: String, “paywall_webview_load_start_time”: String?, “paywall_webview_load_duration”: String?, “paywall_products_load_complete_time”: String?, “paywall_products_load_duration”: String?, “paywall_product_ids”: String, “tertiary_product_id”: String, “paywall_id”: String, “app_session_id”: String, “paywall_products_load_start_time”: String?, “primary_product_id”: String, “survey_attached”: Bool, “survey_presentation”: String?, “presentation_id”: String?, “close_reason”: String, “cache_key”: String, “build_id”: String, “is_scroll_enabled”: Bool, “intro_offer_eligibility”: String, “shimmerView_load_start_time”: String, “shimmerView_load_complete_time”: String] | | [`paywall_decline`](/dashboard/dashboard-campaigns/campaigns-standard-placements#using-the-paywall-decline-event) | When a user manually dismisses a paywall. | Same as `paywall_close` | | `paywall_open` | When a paywall is opened. | Same as `paywall_close` | +| `paywall_page_view` | When a user views a page in a multi-page paywall (including the first page). | Same as `paywall_close` + `["page_node_id": String, "flow_position": Int, "page_name": String, "navigation_node_id": String, "navigation_type": String, "previous_page_node_id": String?, "previous_flow_position": Int?, "time_on_previous_page_ms": Int?]` | | `paywallPresentationRequest` | When something happened during the paywall presentation, whether a success or failure. | `[“source_event_name”: String, “status”: String, “is_superwall”: true, “app_session_id”: String, “pipeline_type”: String, “status_reason”: String]` | +| `paywallPreload_complete` | When paywall preloading completes. | `["paywall_count": Int]` | +| `paywallPreload_start` | When paywall preloading starts. | `["paywall_count": Int]` | | `paywallProductsLoad_complete` | When the request to load a paywall's products completes. | Same as `paywallResponseLoad_start` | | `paywallProductsLoad_fail` | When the request to load a paywall's products fails. | Same as `paywallResponseLoad_start` | +| `paywallProductsLoad_missingProducts` | When some of the paywall's products are missing from the store. | Same as `paywallResponseLoad_start` | | `paywallProductsLoad_retry` | When the request to load a paywall's products fails and is being retried. | `["triggeredPlacementName": String?, "paywallInfo": PaywallInfo, "attempt": Int]` | | `paywallProductsLoad_start` | When the request to load a paywall's products starts. | Same as `paywallResponseLoad_start` | +| `paywallResourceLoad_fail` | When a resource on the paywall's webpage fails to load (Android only). | `["url": String, "error": String]` | | `paywallResponseLoad_complete` | When a paywall request to Superwall's servers completes. | Same as `paywallResponseLoad_start` | | `paywallResponseLoad_fail` | When a paywall request to Superwall's servers fails. | Same as `paywallResponseLoad_start` | | `paywallResponseLoad_notFound` | When a paywall request returns a 404 error. | Same as `paywallResponseLoad_start` | @@ -57,18 +69,32 @@ The full list of events is as follows: | `paywallWebviewLoad_fail` | When a paywall's webpage fails to load. | Same as `paywall_close` | | `paywallWebviewLoad_fallback` | When a paywall's webpage fails and loads a fallback version. | Same as `paywall_close` | | `paywallWebviewLoad_start` | When a paywall's webpage begins to load. | Same as `paywall_close` | +| `paywallWebviewLoad_timeout` | When the loading of a paywall's webpage times out. | Same as `paywall_close` | | `paywallWebviewLoad_processTerminated` | When the paywall's web view content process terminates. | Same as `paywall_close` | +| `permission_denied` | When a permission is denied after being requested from a paywall. | `["permission_name": String, "paywall_identifier": String]` | +| `permission_granted` | When a permission is granted after being requested from a paywall. | `["permission_name": String, "paywall_identifier": String]` | +| `permission_requested` | When a permission is requested from a paywall. | `["permission_name": String, "paywall_identifier": String]` | +| `redemption_complete` | When the redemption of a code completes. | `["type": String, "code": String?]` | +| `redemption_fail` | When the redemption of a code fails. | `["type": String, "code": String?]` | +| `redemption_start` | When the redemption of a code is initiated. | `["type": String, "code": String?]` | | `reset` | When `Superwall.reset()` is called. | None | -| `restoreComplete` | When a restore completes successfully. | None | -| `restoreFail` | When a restore fails. | `["message": String]` | -| `restoreStart` | When a restore is initiated. | None | +| `restore_complete` | When a restore completes successfully. | Same as `paywall_close` | +| `restore_fail` | When a restore fails. | Same as `paywall_close` + `["error_message": String]` | +| `restore_start` | When a restore is initiated. | Same as `paywall_close` | +| `review_requested` | When a review is requested from the user. | `["count": Int, "type": String]` | | `session_start` | When the app is opened after at least 60 minutes since last `app_close`. | Same as `app_install` | -| `shimmerViewComplete` | When the shimmer view stops showing. | None | -| `shimmerViewStart` | When the shimmer view starts showing. | None | +| `shimmerView_complete` | When the shimmer view stops showing. | `["paywall_id": String, "visible_duration": Double]` | +| `shimmerView_start` | When the shimmer view starts showing. | `["paywall_id": String]` | +| `stripeCheckout_complete` | When a Stripe checkout session completes. | Same as `paywall_close` + `["store": "STRIPE", "product_identifier": String, "is_triggered_from_event": Bool]` | +| `stripeCheckout_fail` | When a Stripe checkout session fails. | Same as `paywall_close` + `["store": "STRIPE", "product_identifier": String, "is_triggered_from_event": Bool]` | +| `stripeCheckout_start` | When a Stripe checkout session starts. | Same as `paywall_close` + `["store": "STRIPE", "product_identifier": String, "is_triggered_from_event": Bool]` | +| `stripeCheckout_submit` | When a Stripe checkout form is submitted. | Same as `paywall_close` + `["store": "STRIPE", "product_identifier": String, "is_triggered_from_event": Bool]` | | `subscription_start` | When a user completes a transaction for a subscription product without an introductory offer. | [“product_period_days”: String, “product_price”: String, “presentation_source_type”: String?, “paywall_response_load_complete_time”: String?, “product_language_code”: String, “product_trial_period_monthly_price”: String, “paywall_products_load_duration”: String?, “product_currency_symbol”: String, “is_superwall”: true, “app_session_id”: String, “product_period_months”: String, “presented_by_event_id”: String?, “product_id”: String, “trigger_session_id”: String, “paywall_webview_load_complete_time”: String?, “paywall_response_load_start_time”: String?, “product_raw_trial_period_price”: String, “feature_gating”: Int, “paywall_id”: String, “product_trial_period_daily_price”: String, “product_period_years”: String, “presented_by”: String, “product_period”: String, “paywall_url”: String, “paywall_name”: String, “paywall_identifier”: String, “paywall_products_load_start_time”: String?, “product_trial_period_months”: String, “product_currency_code”: String, “product_period_weeks”: String, “product_periodly”: String, “product_trial_period_text”: String, “paywall_webview_load_start_time”: String?, “paywall_products_load_complete_time”: String?, “primary_product_id”: String, “product_trial_period_yearly_price”: String, “paywalljs_version”: String?, “product_trial_period_years”: String, “tertiary_product_id”: String, “paywall_products_load_fail_time”: String?, “product_trial_period_end_date”: String, “product_weekly_price”: String, “variant_id”: String, “presented_by_event_timestamp”: String?, “paywall_response_load_duration”: String?, “secondary_product_id”: String, “product_trial_period_days”: String, “product_monthly_price”: String, “paywall_product_ids”: String, “product_locale”: String, “product_daily_price”: String, “product_raw_price”: String, “product_yearly_price”: String, “product_trial_period_price”: String, “product_localized_period”: String, “product_identifier”: String, “experiment_id”: String, “is_free_trial_available”: Bool, “product_trial_period_weeks”: String, “paywall_webview_load_duration”: String?, “product_period_alt”: String, “product_trial_period_weekly_price”: String, “presented_by_event_name”: String?] | | `subscriptionStatus_didChange` | When a user's subscription status changes. | `["is_superwall": true, "app_session_id": String, "subscription_status": String]` | -| `surveyClose` | When the user chooses to close a survey instead of responding. | None | +| `survey_close` | When the user chooses to close a survey instead of responding. | None | | [`survey_response`](/dashboard/dashboard-campaigns/campaigns-standard-placements#using-the-survey-response-event) | When a user responds to a paywall survey. | `["survey_selected_option_title": String, "survey_custom_response": String, "survey_id": String, "survey_assignment_key": String, "survey_selected_option_id": String]` | +| `testModeModal_open` | When the test mode modal is opened. | None | +| `testModeModal_close` | When the test mode modal is closed. | `["free_trial_override": String]` + `entitlement__state` and `entitlement__offer_type` for each entitlement | | `touches_began` | When the user touches the app's UIWindow for the first time (if tracked by a campaign). | Same as `app_install` | | `transaction_abandon` | When the user cancels a transaction. | Same as `subscription_start` | | `transaction_complete` | When the user completes checkout and any product is purchased. | Same as subscription_start + [“web_order_line_item_id”: String, “app_bundle_id”: String, “config_request_id”: String, “state”: String, “subscription_group_id”: String, “is_upgraded”: String, “expiration_date”: String, “trigger_session_id”: String, “original_transaction_identifier”: String, “id”: String, “transaction_date”: String, “is_superwall”: true, “store_transaction_id”: String, “original_transaction_date”: String, “app_session_id”: String] |