Reporting Pageviews Using React Native SDK

To report a page view to Dynamic Yield for every screen viewed on your native app, use one of the methods described in the following table. Select the appropriate method based on the page type.

Note: If you have already called chooseVariations on a page with isImplicitImpressionMode set to true, do not report a page view. This would result in the same page view twice.

Page types and reporting methods

Page typeUnique attributeMethod
Homepage--reportHomePageView
CategoryCategories: A full hierarchy of category names. Category names must be identical to the categories in the product feed, including capitalization.reportCategoryPageView
ProductSKU: A string of the main SKU in the page. Must match a SKU in the product feed.reportProductPageView
CartCart: A list of SKUs in the cart. Must match SKUs in the product feed.
If the cart is empty pass an empty list.
reportCartPageView
OtherData: A label to help identify other screen types. reportOtherPageView

All methods include the following additional attributes:

  • pageLocation: The name of the screen.
  • pageReferrer: The name of the previous screen.
  • pageLocale: The language version of a page that was displayed, such as en_US. Use it only if you want to override the locale you previously set in the initialize method. Learn more about using country codes for locale.

reportHomePageView

Returns DYResult

ParameterData Structure Type
pageLocation
Required
String
pageReferrerString? = nil
pageLocaleString? = nil

Example

async function chooseVariationsWithAllParameter() {
    await pageViews.reportHomePageView({
        pageLocation: 'screenName',
        pageReferrer: 'otherScreenName',
        pageLocale: 'en',
    }).then((result) => {
         switch (result.status) {
            case 'SUCCESS':
               //A pageview has been reported successfully
                break;
            case 'WARNING':
             result.warnings?.forEach(warning => {
                 // Log the warnings
             });
                break;
            case 'ERROR':
                const error = result.error
                //do something with the error
                break;
        }
    }).catch((error) => {
        //handle error
    });
}v

reportCategoryPageView

Returns DYResult

ParameterData Structure Type
categories (required)[String]
pageLocation (required)String
pageReferrerString? = nil
pageLocaleString? = nil

Example

async function reportCategoryPageView() {
    await pageViews.reportCategoryPageView({
        pageLocation: 'screenName',
        categories: ['category-1', 'category-2'],
        pageReferrer: 'otherScreenName',
        pageLocale: 'en',
    }).then((result) => {
         switch (result.status) {
            case 'SUCCESS':
               //A pageview has been reported successfully
                break;
            case 'WARNING':
             result.warnings?.forEach(warning => {
                 // Log the warnings
             });
                break;
            case 'ERROR':
                const error = result.error
                //do something with the error
                break;
        }
    }).catch((error) => {
        //handle error
    });
}

reportProductPageView

Returns DYResult

ParameterData Structure Type
sku
Required)
String
pageLocation
Required)
String
pageReferrerString? = nil
pageLocaleString? = nil

Example

async function reportProductPageView() {
    await pageViews.reportProductPageView({
        pageLocation: 'screenName',
        sku: 'SKU123',
        pageReferrer: 'otherScreenName',
        pageLocale: 'en',
    }).then((result) => {
         switch (result.status) {
            case 'SUCCESS':
               //A pageview has been reported successfully
                break;
            case 'WARNING':
             result.warnings?.forEach(warning => {
                 // Log the warnings
             });
                break;
            case 'ERROR':
                const error = result.error
                //do something with the error
                break;
        }
    }).catch((error) => {
        //handle error
    });
}

reportCartPageView

Returns DYResult

ParameterData Structure Type
cart
Required)
[String]
pageLocation
Required)
String
pageReferrerString? = nil
pageLocaleString? = ni

Example

 async function reportCartPageView() {
    await pageViews.reportCartPageView({
        pageLocation: 'screenName',
        cart: ['SKU123' , 'SKU456'],
        pageReferrer: 'otherScreenName',
        pageLocale: 'en',
    }).then((result) => {
         switch (result.status) {
            case 'SUCCESS':
               //A pageview has been reported successfully
                break;
            case 'WARNING':
             result.warnings?.forEach(warning => {
                 // Log the warnings
             });
                break;
            case 'ERROR':
                const error = result.error
                //do something with the error
                break;
        }
    }).catch((error) => {
        //handle error
    });
}

reportOtherPageView

Returns DYResult

ParameterData Structure Type
data
Required)
String
pageLocation
Required)
String
pageReferrerString? = nil
pageLocaleString? = nil

Example

async function reportOtherPageView() {
    await pageViews.reportOtherPageView({
        pageLocation: 'payScreen',
        data: 'any-information',
        pageReferrer: 'otherScreenName',
        pageLocale: 'en',
    }).then((result) => {
         switch (result.status) {
            case 'SUCCESS':
               //A pageview has been reported successfully
                break;
            case 'WARNING':
             result.warnings?.forEach(warning => {
                 // Log the warnings
             });
                break;
            case 'ERROR':
                const error = result.error
                //do something with the error
                break;
        }
    }).catch((error) => {
        //handle error
    });
}