{"__v":6,"_id":"55a9066527a17d210052521e","category":{"__v":12,"_id":"55a8e7a227a17d21005251a2","pages":["55a8feb327a17d2100525201","55a9021527a17d2100525208","55a9035927a17d210052520b","55a903cfcf45e1390093f29e","55a9049727a17d210052520f","55a9059a27a17d2100525217","55a9066527a17d210052521e","55a9075bcf45e1390093f2a9","55a9090927a17d2100525228","55a90b30c8bd450d000dd164","55a90c56cf45e1390093f2bf","55a9102bc8bd450d000dd170"],"project":"559a61d2dbcfd20d00710b39","version":"559a61d2dbcfd20d00710b3c","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-07-17T11:31:46.263Z","from_sync":false,"order":2,"slug":"ios-sdk-reference","title":"iOS SDK Reference"},"parentDoc":null,"project":"559a61d2dbcfd20d00710b39","user":"559a618bdbcfd20d00710b38","version":{"__v":23,"_id":"559a61d2dbcfd20d00710b3c","project":"559a61d2dbcfd20d00710b39","createdAt":"2015-07-06T11:09:06.510Z","releaseDate":"2015-07-06T11:09:06.510Z","categories":["559a61d3dbcfd20d00710b3d","55a589ddaaf9cf1900114dd0","55a589e30f354f0d00fd0312","55a589ea80c8a30d00b323cc","55a589f6aaf9cf1900114dd1","55a58d4e80c8a30d00b323e6","55a8e7a227a17d21005251a2","55a93098cf45e1390093f351","55afb085f202b12100cd9e83","55afb22e902fd51700f5f8bf","55afb260902fd51700f5f8c2","55afb28ec8a85321007a5462","55afb294f202b12100cd9e95","55afb29b902fd51700f5f8c5","55afb2a1c8a85321007a5463","55afb2a7902fd51700f5f8c7","55afb2ad902fd51700f5f8c8","55afb2b5902fd51700f5f8ca","55b74b2131bccb190081bedc","55bb441b54f9640d006e6cf2","565711085cb2420d00d70071","5681681330018c0d006bf7ff","588f38b5923d610f00c72dad"],"is_deprecated":false,"is_hidden":false,"is_beta":true,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-07-17T13:43:01.255Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":7,"body":"A single `event object` record contains:\n\n- Event data:\n - Identifier – unique event ID (UUID)\n - Timestamp – GMT timestamp when the event occurred\n - Local timestamp – timestamp with local timezone\n - Event type – type of event\n - Action verb – string that describes performed action (i.e. Buy, View, Search, Enter, etc.)\n - Item – item associated with the event (i.e. Product ID)\n - Item Category – category the item belongs to (Product Category)\n - Value – value associated with the event (E.g. purchase amount)\n\n- Context data:\n - Instance ID – the instance object ID that generated the event\n - User ID – the logged-in user that generated the event (optional)\n - Device model/type\n - OS name/version\n - Country\n - Language\n - And other attributes\n\nBy default, the SDK automatically tracks predefined events:\n - _start_session – when the new app session was started\n - _session – when the user’s session ends\n - _geo – track last coordinates of the current location *\n - _visit – when a user visits a frequent place *\n - _push – when push notification has been received while the app was running\n - _launching_push – when app was started by a push notification\n - _action – when proximity action has been triggered\n - _beacon_proximity – when the device entered/exited a beacon region *\n - _zone_proximity – when the device entered/exited a proximity zone *\n - _place_proximity – when the device entered/exited a proximity place *\n - _tick – indicates if the app is active\n - _user_login – when user logged in\n - _user_logout – when user logged out\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"* Used when available and allowed by user privacy settings.\"\n}\n[/block]\nTo track custom events in your app, use the following API:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"/**\\n * Tracks an event represented by an action verb \\n *\\n * :::at:::param verb Action verb. (E.g. Buy, View, Search, etc.).\\n *\\n * @return <code>YES</code> in case of success, <code>NO</code> in case of error.\\n */\\n+ (BOOL) track:(NSString*)verb;\\n\\n/**\\n * Track event helper methods. \\n */\\n+ (BOOL) track:(NSString*)verb withValue:(NSNumber*)value;\\n+ (BOOL) track:(NSString*)verb forItem:(NSString*)item;\\n+ (BOOL) track:(NSString*)verb forItem:(NSString*)item withValue:(NSNumber*)value;\\n+ (BOOL) track:(NSString*)verb forItem:(NSString*)item belongingTo:(NSString*)category;\\n+ (BOOL) track:(NSString*)verb forItem:(NSString*)item belongingTo:(NSString*)category withValue:(NSNumber*)value;\\n+ (BOOL) track:(NSString*)verb forItem:(NSString*)item belongingTo:(NSString*)category withIntValue:(int)value;\\n\\n\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]\nCustom tracking example:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender\\n{\\n    if ([[segue identifier] isEqualToString:@”ViewProduct\\\"])\\n    {\\n      NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];\\n \\tProduct *product = self.products [indexPath];\\n\\t// Track view product event\\n        [MOCAEvent track:@”view” forItem:product.id];\\n    }\\n}\\n\",\n      \"language\": \"objectivec\"\n    }\n  ]\n}\n[/block]","excerpt":"","slug":"event-api","type":"basic","title":"Event API"}
A single `event object` record contains: - Event data: - Identifier – unique event ID (UUID) - Timestamp – GMT timestamp when the event occurred - Local timestamp – timestamp with local timezone - Event type – type of event - Action verb – string that describes performed action (i.e. Buy, View, Search, Enter, etc.) - Item – item associated with the event (i.e. Product ID) - Item Category – category the item belongs to (Product Category) - Value – value associated with the event (E.g. purchase amount) - Context data: - Instance ID – the instance object ID that generated the event - User ID – the logged-in user that generated the event (optional) - Device model/type - OS name/version - Country - Language - And other attributes By default, the SDK automatically tracks predefined events: - _start_session – when the new app session was started - _session – when the user’s session ends - _geo – track last coordinates of the current location * - _visit – when a user visits a frequent place * - _push – when push notification has been received while the app was running - _launching_push – when app was started by a push notification - _action – when proximity action has been triggered - _beacon_proximity – when the device entered/exited a beacon region * - _zone_proximity – when the device entered/exited a proximity zone * - _place_proximity – when the device entered/exited a proximity place * - _tick – indicates if the app is active - _user_login – when user logged in - _user_logout – when user logged out [block:callout] { "type": "warning", "body": "* Used when available and allowed by user privacy settings." } [/block] To track custom events in your app, use the following API: [block:code] { "codes": [ { "code": "/**\n * Tracks an event represented by an action verb \n *\n * @param verb Action verb. (E.g. Buy, View, Search, etc.).\n *\n * @return <code>YES</code> in case of success, <code>NO</code> in case of error.\n */\n+ (BOOL) track:(NSString*)verb;\n\n/**\n * Track event helper methods. \n */\n+ (BOOL) track:(NSString*)verb withValue:(NSNumber*)value;\n+ (BOOL) track:(NSString*)verb forItem:(NSString*)item;\n+ (BOOL) track:(NSString*)verb forItem:(NSString*)item withValue:(NSNumber*)value;\n+ (BOOL) track:(NSString*)verb forItem:(NSString*)item belongingTo:(NSString*)category;\n+ (BOOL) track:(NSString*)verb forItem:(NSString*)item belongingTo:(NSString*)category withValue:(NSNumber*)value;\n+ (BOOL) track:(NSString*)verb forItem:(NSString*)item belongingTo:(NSString*)category withIntValue:(int)value;\n\n", "language": "objectivec" } ] } [/block] Custom tracking example: [block:code] { "codes": [ { "code": "(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender\n{\n if ([[segue identifier] isEqualToString:@”ViewProduct\"])\n {\n NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];\n \tProduct *product = self.products [indexPath];\n\t// Track view product event\n [MOCAEvent track:@”view” forItem:product.id];\n }\n}\n", "language": "objectivec" } ] } [/block]