Mobile SDK end-of-life has been announced and scheduled for the end of 2023, in favor of updated and more streamlined app personalization using server-side APIs.
In order for Dynamic Yield to deliver the right experiences for the different page types on your app, and for us to gather the accurate behavioral data, you are required to report the context of each page. The page context includes details about the page type (home page, product page, etc.) as well as page-specific information (product sku, category, etc). The page type should be passed within the pageView API calls communicating page view information to Dynamic Yield.
Note: Without page context data, many important Dynamic Yield features will not work. For details, see Missing Page Context Data.
Page Context for eCommerce Sites
Page Type | Required Attributes | Example |
---|---|---|
Homepage | - |
//Java DYApi.getInstance().trackPageView("Homepage",new DYPageContext("en_US",DYPageContext.HOMEPAGE,null)); //Objective-C DYPageContext* context = [[DYPageContext alloc] init]; [context setLanguage:@"en_US"];//Optional [context setType:DY_TYPE_HOMEPAGE]; [_DY pageView:@"ABCD" context:context]; //Swift let context = DYPageContext.init(); context.language = "en_US";//Optional context.type = DY_TYPE_HOMEPAGE; DYApi.getInstance().pageView("pageUnique", context:context); //JavaScript DY.recommendationContext = {type: 'HOMEPAGE'}; |
Category | Array of category names in hierarchical order (array of strings) |
//Java JSONArray ctxData = new JSONArray(); ctxData.put("clothes"); DYApi.getInstance().trackPageView("category page",new DYPageContext("en_US",DYPageContext.CATEGORY,ctxData)); //Objective-C DYPageContext* context = [[DYPageContext alloc] init]; [context setType:DY_TYPE_CATEGORY]; [context setData:@[@"Men’s",@"Shoes"]]; [_DY pageView:@"ABCD" context:context]; //Swift let context = DYPageContext.init(); context.data = ["Men’s","Shoes"]; context.type = DY_TYPE_CATEGORY; DYApi.getInstance().pageView("pageUnique", context:context); //JavaScript DY.recommendationContext = {type:'CATEGORY', data: ['TOP_LEVEL_CAT', 'CHILD_CAT','GRANDCHILD_CAT']}; |
Product | SKU (string) |
//Java JSONArray ctxData = new JSONArray(); ctxData.put("WT03"); DYApi.getInstance().trackPageView("product page",new DYPageContext("en_US",DYPageContext.PRODUCT,ctxData)); //Objective-C DYPageContext* context = [[DYPageContext alloc] init]; [context setType:DY_TYPE_PRODUCT]; [context setData:@[@"101"]]; [_DY pageView:@"ABCD" context:context]; //Swift let context = DYPageContext.init(); context.data = ["101"]; context.type = DY_TYPE_PRODUCT; DYApi.getInstance().pageView("pageUnique", context:context); //JavaScript DY.recommendationContext = {type:'PRODUCT', data: ['SKU123']}; |
Cart |
SKUs (array of strings) Up to 20 SKUs. |
//Java JSONArray ctxData = new JSONArray(); ctxData.put("WT03"); DYApi.getInstance().trackPageView("cart page",new DYPageContext("en_US",DYPageContext.CART,ctxData)); //Objective-C DYPageContext* context = [[DYPageContext alloc] init]; [context setType:DY_TYPE_CART]; [context setData:@[@"101", @”102”]]; [_DY pageView:@"ABCD" context:context]; //Swift let context = DYPageContext.init(); context.data = ["101", ”102”]; context.type = DY_TYPE_CART; DYApi.getInstance().pageView("pageUnique", context:context); //JavaScript If there are items in the cart: DY.recommendationContext = {type:'CART', data: ['SKU123','SKU234']}; If cart is empty: DY.recommendationContext = {type:'CART', data: ['']}; |
Other (if page matches none of the above page types) | - |
//Java DYApi.getInstance().trackPageView("page name",new DYPageContext("en_US",DYPageContext.OTHER,ctxData)); //Objective-C DYPageContext* context = [[DYPageContext alloc] init]; [context setLanguage:@"en_US"];//Optional [context setType:DY_TYPE_OTHER]; [_DY pageView:@"ABCD" context:context]; //Swift let context = DYPageContext.init(); context.language = "en_US";//Optional context.type = DY_TYPE_OTHER; DYApi.getInstance().pageView("pageUnique", context:context); //JavaScript DY.recommendationContext = {type: 'OTHER'}; |
Page Context for Media (Content) Sites
Page Type | Required Attributes | Example |
---|---|---|
Homepage | - |
//Java DYApi.getInstance().trackPageView("Homepage",new DYPageContext("en_US",DYPageContext.HOMEPAGE,null)); //Objective-C DYPageContext* context = [[DYPageContext alloc] init]; [context setLanguage:@"en_US"];//Optional [context setType:DY_TYPE_HOMEPAGE]; [_DY pageView:@"ABCD" context:context]; //Swift let context = DYPageContext.init(); context.language = "en_US";//Optional context.type = DY_TYPE_HOMEPAGE; DYApi.getInstance().pageView("pageUnique", context:context); //JavaScript DY.recommendationContext = {type: 'HOMEPAGE'}; |
Category | Array of category names in hierarchical order (array of strings) |
//Java JSONArray ctxData = new JSONArray(); ctxData.put("clothes"); DYApi.getInstance().trackPageView("category page",new DYPageContext("en_US",DYPageContext.CATEGORY,ctxData)); //Objective-C DYPageContext* context = [[DYPageContext alloc] init]; [context setType:DY_TYPE_CATEGORY]; [context setData:@[@"Men’s",@"Shoes"]]; [_DY pageView:@"ABCD" context:context]; //Swift let context = DYPageContext.init(); context.data = ["Men’s","Shoes"]; context.type = DY_TYPE_CATEGORY; DYApi.getInstance().pageView("pageUnique", context:context); //JavaScript DY.recommendationContext = {type:'CATEGORY', data: ['TOP_LEVEL_CAT', 'CHILD_CAT','GRANDCHILD_CAT']}; |
Article Page | Article ID |
//Java JSONArray ctxData = new JSONArray(); ctxData.put("12345"); DYApi.getInstance().trackPageView("article page",new DYPageContext("en_US",DYPageContext.POST,ctxData)); //Objective-C DYPageContext* context = [[DYPageContext alloc] init]; [context setType:DY_TYPE_POST]; [context setData:@[@"1234"]]; [_DY pageView:@"ABCD" context:context]; //Swift let context = DYPageContext.init(); context.data = ["1234"]; context.type = DY_TYPE_POST; DYApi.getInstance().pageView("pageUnique", context:context); //JavaScript DY.recommendationContext = {type: 'POST', data: ['1234']}; |
Missing Page Context Data
If you are not able to report the page context at all, many features will not be supported such as:
- Recommendations
- Social proof
- Many audience conditions (affinity, context page visit, home page visit, etc.)