{"action":"created","issue":{"url":"https://api.github.com/repos/aerogear/aerogear-unifiedpush-server/issues/523","labels_url":"https://api.github.com/repos/aerogear/aerogear-unifiedpush-server/issues/523/labels{/name}","comments_url":"https://api.github.com/repos/aerogear/aerogear-unifiedpush-server/issues/523/comments","events_url":"https://api.github.com/repos/aerogear/aerogear-unifiedpush-server/issues/523/events","html_url":"https://github.com/aerogear/aerogear-unifiedpush-server/pull/523","id":67605085,"number":523,"title":"AGPUSH-971 : Advanced Analytics, Server Side implementation","user":{"login":"sebastienblanc","id":335133,"avatar_url":"https://avatars.githubusercontent.com/u/335133?v=3","gravatar_id":"","url":"https://api.github.com/users/sebastienblanc","html_url":"https://github.com/sebastienblanc","followers_url":"https://api.github.com/users/sebastienblanc/followers","following_url":"https://api.github.com/users/sebastienblanc/following{/other_user}","gists_url":"https://api.github.com/users/sebastienblanc/gists{/gist_id}","starred_url":"https://api.github.com/users/sebastienblanc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sebastienblanc/subscriptions","organizations_url":"https://api.github.com/users/sebastienblanc/orgs","repos_url":"https://api.github.com/users/sebastienblanc/repos","events_url":"https://api.github.com/users/sebastienblanc/events{/privacy}","received_events_url":"https://api.github.com/users/sebastienblanc/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-04-10T14:14:05Z","updated_at":"2015-04-21T13:50:22Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/aerogear/aerogear-unifiedpush-server/pulls/523","html_url":"https://github.com/aerogear/aerogear-unifiedpush-server/pull/523","diff_url":"https://github.com/aerogear/aerogear-unifiedpush-server/pull/523.diff","patch_url":"https://github.com/aerogear/aerogear-unifiedpush-server/pull/523.patch"},"body":"This is the first step for the advanced analytics it contains : \r\n* Unique identifier added to the payload of each Push Message\r\n* Retrieving the identifier when an installation registers\r\n* Some basic calculation\r\n\r\nThe Admin console has a few updates but these are temporary since it will be replcaed by charts.\r\n\r\n@matzew @edewit @lfryc Mind to take a look ? \r\n\r\nps: I wonder if that PR should also be merged into the new-ui branch to be able to move on with the chart integration ? "},"comment":{"url":"https://api.github.com/repos/aerogear/aerogear-unifiedpush-server/issues/comments/94798929","html_url":"https://github.com/aerogear/aerogear-unifiedpush-server/pull/523#issuecomment-94798929","issue_url":"https://api.github.com/repos/aerogear/aerogear-unifiedpush-server/issues/523","id":94798929,"user":{"login":"matzew","id":157646,"avatar_url":"https://avatars.githubusercontent.com/u/157646?v=3","gravatar_id":"","url":"https://api.github.com/users/matzew","html_url":"https://github.com/matzew","followers_url":"https://api.github.com/users/matzew/followers","following_url":"https://api.github.com/users/matzew/following{/other_user}","gists_url":"https://api.github.com/users/matzew/gists{/gist_id}","starred_url":"https://api.github.com/users/matzew/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matzew/subscriptions","organizations_url":"https://api.github.com/users/matzew/orgs","repos_url":"https://api.github.com/users/matzew/repos","events_url":"https://api.github.com/users/matzew/events{/privacy}","received_events_url":"https://api.github.com/users/matzew/received_events","type":"User","site_admin":false},"created_at":"2015-04-21T13:50:22Z","updated_at":"2015-04-21T13:50:22Z","body":"Did another review, I think here is a list of open items that need to be done:\r\n\r\n* rebase afer JMS landed on master branch and leverage the MetricsCollector instead of new VariantMetricInformationDao on this PR\r\n* push identifier: docment it on the endpoint doc\r\n* `request.getHeader(\"push-identifier\");` header needs a different prefix (aerogear-notification-id)\r\n* first/last opened will stay as is, right ?\r\n* JavaDoc on `NotificationSenderCallback`\r\n* `message.getMessage().getUserData().put(\"push-identifier\",pushMessageInformation.getId());` needs to be done at outer/different/custom level - not on the envelope/payload (e.g. the user data)\r\n* `pushMessageInformation.setAppOpenCounter` needs atomicLong or AtomicRef\r\n\r\n"}}