{"action":"created","comment":{"url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/pulls/comments/27265880","id":27265880,"diff_hunk":"@@ -32,6 +32,10 @@ + (void)reportScreenView:(NSString *)label {\n \n + (void)reportViewController:(UIViewController*)viewController {\n     [self reportScreenView:[NSString stringWithFormat:@\"View: %@\", viewController.class]];\n+    \n+    if (UIAccessibilityIsVoiceOverRunning()) {\n+        [OBAAnalytics reportEventWithCategory:OBAAnalyticsCategoryAccessibility action:@\"voiceover_on\" label:[NSString stringWithFormat:@\"Loaded view: %@ using VoiceOver\", viewController.class] value:nil];","path":"utilities/OBAAnalytics.m","position":6,"original_position":6,"commit_id":"cc81d4573615581ecb4e6e47e70fbdd31671c86e","original_commit_id":"cc81d4573615581ecb4e6e47e70fbdd31671c86e","user":{"login":"bbodenmiller","id":1192780,"avatar_url":"https://avatars.githubusercontent.com/u/1192780?v=3","gravatar_id":"","url":"https://api.github.com/users/bbodenmiller","html_url":"https://github.com/bbodenmiller","followers_url":"https://api.github.com/users/bbodenmiller/followers","following_url":"https://api.github.com/users/bbodenmiller/following{/other_user}","gists_url":"https://api.github.com/users/bbodenmiller/gists{/gist_id}","starred_url":"https://api.github.com/users/bbodenmiller/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bbodenmiller/subscriptions","organizations_url":"https://api.github.com/users/bbodenmiller/orgs","repos_url":"https://api.github.com/users/bbodenmiller/repos","events_url":"https://api.github.com/users/bbodenmiller/events{/privacy}","received_events_url":"https://api.github.com/users/bbodenmiller/received_events","type":"User","site_admin":false},"body":"Another option may be to just use a custom dimension that keeps track of if voice over is running or not. This would also allow one to see which features are used with voice over vs. which are not.","created_at":"2015-03-26T23:23:43Z","updated_at":"2015-03-26T23:23:43Z","html_url":"https://github.com/OneBusAway/onebusaway-iphone/pull/405#discussion_r27265880","pull_request_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/pulls/405","_links":{"self":{"href":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/pulls/comments/27265880"},"html":{"href":"https://github.com/OneBusAway/onebusaway-iphone/pull/405#discussion_r27265880"},"pull_request":{"href":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/pulls/405"}}},"pull_request":{"url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/pulls/405","id":32051512,"html_url":"https://github.com/OneBusAway/onebusaway-iphone/pull/405","diff_url":"https://github.com/OneBusAway/onebusaway-iphone/pull/405.diff","patch_url":"https://github.com/OneBusAway/onebusaway-iphone/pull/405.patch","issue_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/issues/405","number":405,"state":"open","locked":false,"title":"Automatically opt in all OBA view controllers to analytics reporting","user":{"login":"aaronbrethorst","id":2254,"avatar_url":"https://avatars.githubusercontent.com/u/2254?v=3","gravatar_id":"","url":"https://api.github.com/users/aaronbrethorst","html_url":"https://github.com/aaronbrethorst","followers_url":"https://api.github.com/users/aaronbrethorst/followers","following_url":"https://api.github.com/users/aaronbrethorst/following{/other_user}","gists_url":"https://api.github.com/users/aaronbrethorst/gists{/gist_id}","starred_url":"https://api.github.com/users/aaronbrethorst/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aaronbrethorst/subscriptions","organizations_url":"https://api.github.com/users/aaronbrethorst/orgs","repos_url":"https://api.github.com/users/aaronbrethorst/repos","events_url":"https://api.github.com/users/aaronbrethorst/events{/privacy}","received_events_url":"https://api.github.com/users/aaronbrethorst/received_events","type":"User","site_admin":false},"body":"I'm WFH and—while eating lunch—was thinking about how we could use method swizzling to simplify our analytics approach. Turns out to be really straightforward, and took me less time to implement than it did to eat :)\r\n\r\n- Replace -viewWillAppear: implementations of analytics screen tracking with a method swizzling approach.\r\n- Add VoiceOver tracking to the -reportViewController: analytics method so that we can accurately see all VoiceOver usage of the app.","created_at":"2015-03-26T19:23:19Z","updated_at":"2015-03-26T23:23:43Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ea7d5c48c74128a46d6eef25ce2d3161412ee4fe","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/pulls/405/commits","review_comments_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/pulls/405/comments","review_comment_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/pulls/comments{/number}","comments_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/issues/405/comments","statuses_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/statuses/cc81d4573615581ecb4e6e47e70fbdd31671c86e","head":{"label":"aaronbrethorst:voiceover-reporting-everywhere","ref":"voiceover-reporting-everywhere","sha":"cc81d4573615581ecb4e6e47e70fbdd31671c86e","user":{"login":"aaronbrethorst","id":2254,"avatar_url":"https://avatars.githubusercontent.com/u/2254?v=3","gravatar_id":"","url":"https://api.github.com/users/aaronbrethorst","html_url":"https://github.com/aaronbrethorst","followers_url":"https://api.github.com/users/aaronbrethorst/followers","following_url":"https://api.github.com/users/aaronbrethorst/following{/other_user}","gists_url":"https://api.github.com/users/aaronbrethorst/gists{/gist_id}","starred_url":"https://api.github.com/users/aaronbrethorst/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aaronbrethorst/subscriptions","organizations_url":"https://api.github.com/users/aaronbrethorst/orgs","repos_url":"https://api.github.com/users/aaronbrethorst/repos","events_url":"https://api.github.com/users/aaronbrethorst/events{/privacy}","received_events_url":"https://api.github.com/users/aaronbrethorst/received_events","type":"User","site_admin":false},"repo":{"id":24271238,"name":"onebusaway-iphone","full_name":"aaronbrethorst/onebusaway-iphone","owner":{"login":"aaronbrethorst","id":2254,"avatar_url":"https://avatars.githubusercontent.com/u/2254?v=3","gravatar_id":"","url":"https://api.github.com/users/aaronbrethorst","html_url":"https://github.com/aaronbrethorst","followers_url":"https://api.github.com/users/aaronbrethorst/followers","following_url":"https://api.github.com/users/aaronbrethorst/following{/other_user}","gists_url":"https://api.github.com/users/aaronbrethorst/gists{/gist_id}","starred_url":"https://api.github.com/users/aaronbrethorst/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aaronbrethorst/subscriptions","organizations_url":"https://api.github.com/users/aaronbrethorst/orgs","repos_url":"https://api.github.com/users/aaronbrethorst/repos","events_url":"https://api.github.com/users/aaronbrethorst/events{/privacy}","received_events_url":"https://api.github.com/users/aaronbrethorst/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/aaronbrethorst/onebusaway-iphone","description":"The OneBusAway iPhone app.","fork":true,"url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone","forks_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/forks","keys_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/teams","hooks_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/hooks","issue_events_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/issues/events{/number}","events_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/events","assignees_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/assignees{/user}","branches_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/branches{/branch}","tags_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/tags","blobs_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/git/refs{/sha}","trees_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/statuses/{sha}","languages_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/languages","stargazers_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/stargazers","contributors_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/contributors","subscribers_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/subscribers","subscription_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/subscription","commits_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/commits{/sha}","git_commits_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/git/commits{/sha}","comments_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/comments{/number}","issue_comment_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/issues/comments{/number}","contents_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/contents/{+path}","compare_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/merges","archive_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/downloads","issues_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/issues{/number}","pulls_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/pulls{/number}","milestones_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/milestones{/number}","notifications_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/labels{/name}","releases_url":"https://api.github.com/repos/aaronbrethorst/onebusaway-iphone/releases{/id}","created_at":"2014-09-20T18:44:38Z","updated_at":"2015-03-26T16:57:55Z","pushed_at":"2015-03-26T19:21:57Z","git_url":"git://github.com/aaronbrethorst/onebusaway-iphone.git","ssh_url":"git@github.com:aaronbrethorst/onebusaway-iphone.git","clone_url":"https://github.com/aaronbrethorst/onebusaway-iphone.git","svn_url":"https://github.com/aaronbrethorst/onebusaway-iphone","homepage":"","size":21359,"stargazers_count":0,"watchers_count":0,"language":"Objective-C","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"OneBusAway:develop","ref":"develop","sha":"46efb552d16da8105de05bcefdcd5ccc1dccf9c5","user":{"login":"OneBusAway","id":1428806,"avatar_url":"https://avatars.githubusercontent.com/u/1428806?v=3","gravatar_id":"","url":"https://api.github.com/users/OneBusAway","html_url":"https://github.com/OneBusAway","followers_url":"https://api.github.com/users/OneBusAway/followers","following_url":"https://api.github.com/users/OneBusAway/following{/other_user}","gists_url":"https://api.github.com/users/OneBusAway/gists{/gist_id}","starred_url":"https://api.github.com/users/OneBusAway/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OneBusAway/subscriptions","organizations_url":"https://api.github.com/users/OneBusAway/orgs","repos_url":"https://api.github.com/users/OneBusAway/repos","events_url":"https://api.github.com/users/OneBusAway/events{/privacy}","received_events_url":"https://api.github.com/users/OneBusAway/received_events","type":"Organization","site_admin":false},"repo":{"id":3447443,"name":"onebusaway-iphone","full_name":"OneBusAway/onebusaway-iphone","owner":{"login":"OneBusAway","id":1428806,"avatar_url":"https://avatars.githubusercontent.com/u/1428806?v=3","gravatar_id":"","url":"https://api.github.com/users/OneBusAway","html_url":"https://github.com/OneBusAway","followers_url":"https://api.github.com/users/OneBusAway/followers","following_url":"https://api.github.com/users/OneBusAway/following{/other_user}","gists_url":"https://api.github.com/users/OneBusAway/gists{/gist_id}","starred_url":"https://api.github.com/users/OneBusAway/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OneBusAway/subscriptions","organizations_url":"https://api.github.com/users/OneBusAway/orgs","repos_url":"https://api.github.com/users/OneBusAway/repos","events_url":"https://api.github.com/users/OneBusAway/events{/privacy}","received_events_url":"https://api.github.com/users/OneBusAway/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/OneBusAway/onebusaway-iphone","description":"The OneBusAway iPhone app.","fork":false,"url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone","forks_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/forks","keys_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/keys{/key_id}","collaborators_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/teams","hooks_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/hooks","issue_events_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/issues/events{/number}","events_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/events","assignees_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/assignees{/user}","branches_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/branches{/branch}","tags_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/tags","blobs_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/git/refs{/sha}","trees_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/git/trees{/sha}","statuses_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/statuses/{sha}","languages_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/languages","stargazers_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/stargazers","contributors_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/contributors","subscribers_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/subscribers","subscription_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/subscription","commits_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/commits{/sha}","git_commits_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/git/commits{/sha}","comments_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/comments{/number}","issue_comment_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/issues/comments{/number}","contents_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/contents/{+path}","compare_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/compare/{base}...{head}","merges_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/merges","archive_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/downloads","issues_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/issues{/number}","pulls_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/pulls{/number}","milestones_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/milestones{/number}","notifications_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/labels{/name}","releases_url":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/releases{/id}","created_at":"2012-02-15T07:17:54Z","updated_at":"2015-03-26T07:12:00Z","pushed_at":"2015-03-26T19:23:19Z","git_url":"git://github.com/OneBusAway/onebusaway-iphone.git","ssh_url":"git@github.com:OneBusAway/onebusaway-iphone.git","clone_url":"https://github.com/OneBusAway/onebusaway-iphone.git","svn_url":"https://github.com/OneBusAway/onebusaway-iphone","homepage":"","size":39780,"stargazers_count":93,"watchers_count":93,"language":"Objective-C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":65,"mirror_url":null,"open_issues_count":73,"forks":65,"open_issues":73,"watchers":93,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/pulls/405"},"html":{"href":"https://github.com/OneBusAway/onebusaway-iphone/pull/405"},"issue":{"href":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/issues/405"},"comments":{"href":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/issues/405/comments"},"review_comments":{"href":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/pulls/405/comments"},"review_comment":{"href":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/pulls/405/commits"},"statuses":{"href":"https://api.github.com/repos/OneBusAway/onebusaway-iphone/statuses/cc81d4573615581ecb4e6e47e70fbdd31671c86e"}}}}