Tracking Events
You can include this logic in the delegate for touch event in your UIViewController
for your personalization view.
The following example assumes you are implementing a vertical scroller via a UITableViewController
with tableView:didSelectRowAtIndexPath
being our delegate for tap events.
@implementation SamplePersonalizationViewController - (void)viewDidLoad { [super viewDidLoad]; // Add your usual initialization logic, for example registerNib. The actual implementation will depend on your code. [self.tableView registerNib:[UINib nibWithNibName:NSStringFromClass([SampleProductCell class]) bundle:nil] forCellReuseIdentifier:[SampleProductCell cellID]]; // Store an array of personalized product recommendations. You will reference items of this array from your delegate method. self.products = @[]; [self loadData]; } #pragma mark - TableView - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { // Reference the current product being selected RCHRecommendedProduct *product = self.products[indexPath.row]; // Log a click event [product trackClick]; // Initialize your Product Detail view controller. The actual implementation will depend on your code. SampleProductDetailScreenViewController *detailVC = [[SampleProductDetailScreenViewController alloc] initWithProduct:product]; [self.navigationController pushViewController:detailVC animated:YES]; } @end
Offline click tracking
In case of poor network connectivity,[product trackClick]
will store click data locally and will send these events at a later stage, for example when there is enough bandwidth or when the network becomes available again.