[aerogear-dev] [UPS] Advanced Analytics

Matthias Wessendorf matzew at apache.org
Thu Apr 9 03:27:17 EDT 2015


since APNs, and GCM can be used for Desktop and browsers, I don't like the
word device here. It's more an installation (that's the origin of this name
actually)

On Thu, Apr 9, 2015 at 9:15 AM, Sebastien Blanc <scm.blanc at gmail.com> wrote:

>
>
> On Wed, Apr 8, 2015 at 6:57 PM, Andres Galante <agalante at redhat.com>
> wrote:
>
>> Sebi, I just change the demo.
>>
> I like it more, but I wonder about the stacked bars again, not sure it is
> the best visually, maybe having the 2 bar side-by-side like here
> http://c3js.org/samples/chart_bar.html or what I really would like to see
> but I could not find it in c3 is : the 2 bars superposed a bit like this
> http://i.stack.imgur.com/0hjX7.png
>
>>
>> I now understand what you mean, and you are right its hard to explain it
>> in a short word.
>>
> Yes  , what about "Sent out to <number> devices"  ?
>
>> If we want we can ask someone from marketing, they have a hole sub team
>> dedicated to writing.
>>
>> Parse uses "Push Notifications"
>>
>> http://blog.parse.com/2013/03/18/introducing-push-analytics-improved-insight-into-push-campaigns/
>>
>> Urban Airship uses "Total Pushes sent"
>> http://urbanairship.com/products/mobile-analytics
>>
>>
>>
>> On Wed, Apr 8, 2015 at 1:46 PM, Matthias Wessendorf <matzew at apache.org>
>> wrote:
>>
>>>
>>>
>>> On Wed, Apr 8, 2015 at 6:05 PM, Andres Galante <agalante at redhat.com>
>>> wrote:
>>>
>>>> Do we always successful deliver messages to all registered devices?
>>>>
>>>
>>> no, it's not even us. we just give the payload to the networks. They all
>>> (APNS, GCM, Windows) have no SLA for actual delivery.
>>>
>>> All what we can say is:
>>> delivered "payload" to APNs for distribution to n devices
>>>
>>> Once they open the app, our server is hit, and we know: n devices did
>>> receive it
>>>
>>>
>>>>
>>>> On Wed, Apr 8, 2015 at 12:51 PM, Matthias Wessendorf <matzew at apache.org
>>>> > wrote:
>>>>
>>>>> Again, I doubt that there will be 3k of messages per app, a day.
>>>>> That would mean your "ESPN Sports News" app would send you 3k messages
>>>>> - joy, he?
>>>>>
>>>>> I wonder how the charts would look on more realistic data:
>>>>> 500.000 devices
>>>>> 1 push message a day (delivered to all 500k)
>>>>> opened by 250k, same day
>>>>>
>>>>>
>>>>> Now if I sent two messages: Breaking news A, Breaking news B
>>>>> How would I see how many directly opened "Breaking news A" (or the
>>>>> other one)?
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Apr 8, 2015 at 5:44 PM, Andres Galante <agalante at redhat.com>
>>>>> wrote:
>>>>>
>>>>>> Good idea! take a look:
>>>>>>
>>>>>> https://rawgit.com/andresgalante/UPS/master/app-detail-analytics.html
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Apr 8, 2015 at 12:24 PM, Sébastien Blanc <scm.blanc at gmail.com
>>>>>> > wrote:
>>>>>>
>>>>>>> I wonder if a bar chart (even maybe stacked bar) would not be more
>>>>>>> clear to show this data ?
>>>>>>> Wdyt ?
>>>>>>>
>>>>>>> Envoyé de mon iPhone
>>>>>>>
>>>>>>> Le 8 avr. 2015 à 15:44, Andres Galante <agalante at redhat.com> a
>>>>>>> écrit :
>>>>>>>
>>>>>>> Yes, you are right, it should be something like:
>>>>>>>
>>>>>>> 5 message sent
>>>>>>> 3k delivered
>>>>>>> 2k open
>>>>>>> 4k devices.
>>>>>>>
>>>>>>> Just change the example. Also the x-axis should be dates.
>>>>>>>
>>>>>>> Thanks!
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Apr 8, 2015 at 10:32 AM, Matthias Wessendorf <
>>>>>>> matzew at apache.org> wrote:
>>>>>>>
>>>>>>>> One thing: I think the numbers on the chart are confusing, and
>>>>>>>> incorrect.
>>>>>>>> It's usually not a ton of messages that are sent. that's more like
>>>>>>>> 5 or 10 per day (speaking of vanilla marketing pushes). If more, I'd
>>>>>>>> UNINSTALL the damn app.
>>>>>>>> Therefore the "app opened due to receiving push" numbers are also
>>>>>>>> not 100% correct here.
>>>>>>>>
>>>>>>>> On Wed, Apr 8, 2015 at 2:59 PM, Matthias Wessendorf <
>>>>>>>> matzew at apache.org> wrote:
>>>>>>>>
>>>>>>>>> :-) I like that too.
>>>>>>>>>
>>>>>>>>> But Andres, again, awesome UX !
>>>>>>>>>
>>>>>>>>> On Wed, Apr 8, 2015 at 2:46 PM, Sebastien Blanc <
>>>>>>>>> scm.blanc at gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Wed, Apr 8, 2015 at 2:37 PM, Lukáš Fryč <lukas.fryc at gmail.com>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Looks good so far, Andres,
>>>>>>>>>>>
>>>>>>>>>>> you are right, we want to show time-aggregated data, not
>>>>>>>>>>> particular events.
>>>>>>>>>>>
>>>>>>>>>>> Idea:
>>>>>>>>>>> My perspective might be very technical rather then marketing,
>>>>>>>>>>> but a pie chart with Push Network split would be interesting to me.
>>>>>>>>>>>
>>>>>>>>>> +1 (or Donut :) )
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> st 8. 4. 2015 v 14:12 odesílatel Andres Galante <
>>>>>>>>>>> agalante at redhat.com> napsal:
>>>>>>>>>>>
>>>>>>>>>>> Hi,
>>>>>>>>>>>>
>>>>>>>>>>>> With the new data we have I've compared sent vs open messages
>>>>>>>>>>>> on a chart for each App:
>>>>>>>>>>>>
>>>>>>>>>>>> https://rawgit.com/andresgalante/UPS/master/app-detail-analytics.html
>>>>>>>>>>>> (the x axis should be dates)
>>>>>>>>>>>>
>>>>>>>>>>>> I am wondering if we can generate a ratio that's useful for a
>>>>>>>>>>>> marketing person and show a benchmark comparing with other UPS users to
>>>>>>>>>>>> know if the users campaign is successful or not. Something like: open/sent
>>>>>>>>>>>> or device/open
>>>>>>>>>>>>
>>>>>>>>>>>> I believe that to show the first and last time a message was
>>>>>>>>>>>> open is not very useful. Maybe I am wrong, but, If we want to show an over
>>>>>>>>>>>> time chart for each notification we should collect periodical data, for
>>>>>>>>>>>> example # of open messages per hour to generate a linear graph that
>>>>>>>>>>>> represents a day.
>>>>>>>>>>>>
>>>>>>>>>>>> What do you think?
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Mon, Mar 30, 2015 at 5:00 PM, Sébastien Blanc <
>>>>>>>>>>>> scm.blanc at gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Envoyé de mon iPhone
>>>>>>>>>>>>>
>>>>>>>>>>>>> Le 30 mars 2015 à 21:31, Daniel Passos <dpassos at redhat.com> a
>>>>>>>>>>>>> écrit :
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Mon, Mar 30, 2015 at 12:29 PM, Sebastien Blanc <
>>>>>>>>>>>>> scm.blanc at gmail.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Folks !
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> For AGPUSH-969[1] and to kick off the discussions,  I started
>>>>>>>>>>>>>> a small POC mainly focused on the backend. To sum up quickly : we want to
>>>>>>>>>>>>>> know how many installations/users has  opened the application after that a
>>>>>>>>>>>>>> Push Notification has been touched.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Let me see if I understood. UPS will send a message to the
>>>>>>>>>>>>> client and when the message be *read* (instead of delivered), the client
>>>>>>>>>>>>> will send a message back to the UPS saying: "The message was read"?
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Yes , but let me be more specific here : us when the app is in
>>>>>>>>>>>>> the background or not running and that the user "tap" the notification
>>>>>>>>>>>>>
>>>>>>>>>>>>> So, the very first thing that had to be done was to give the
>>>>>>>>>>>>>> Push Notification a unique identifier, so that we can track it and do the
>>>>>>>>>>>>>> metrics on it.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> +1. Not only us (UPS) but also the backend app
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>> For that, I have been using an existing model object that we
>>>>>>>>>>>>>> have , the PushMessageInformation[2], and that is currently used to provide
>>>>>>>>>>>>>> information for our dashboard.
>>>>>>>>>>>>>> This object has now some extra fields, like a appOpenCounter
>>>>>>>>>>>>>> etc ...
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> The ID of this PushMessageInformation is now passed into the
>>>>>>>>>>>>>> payload of the Push Message, just before we send it,  this way the client
>>>>>>>>>>>>>> library can use this ID to pass extra information to the UPS when a
>>>>>>>>>>>>>> notification is touched.
>>>>>>>>>>>>>> For this POC, I hijacked the cordova-helloworld, so that it
>>>>>>>>>>>>>> extracts the ID from the payload and pass it as header when registering.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> The message back (from client to UPS) will be send every time
>>>>>>>>>>>>> the user _read_ that?
>>>>>>>>>>>>>
>>>>>>>>>>>>> Well normally that will only happen once per installation per
>>>>>>>>>>>>> Push message
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>> When the UPS receive the request, it looks for the header and
>>>>>>>>>>>>>> if it exist it updates the existing PushMessageInformation instance.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Please note, that for this POC, all is happening on
>>>>>>>>>>>>>> Application level and not on Variant level but that can be easily changed.
>>>>>>>>>>>>>> It depends on how fined grained we want to have these analytics.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I did a small screencast that shows this in action :
>>>>>>>>>>>>>> https://www.youtube.com/watch?v=PseBBJZLz6s&feature=youtu.be
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> The UPS branch containing the changes is here (the 2 latests
>>>>>>>>>>>>>> commits are relevant) :
>>>>>>>>>>>>>> https://github.com/sebastienblanc/aerogear-unified-push-server/tree/analytics
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> The client app is not really relevant since I really hacked
>>>>>>>>>>>>>> badly the app (and the push plugin) ;) , however if interested I may share
>>>>>>>>>>>>>> it.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Now, let's discuss :)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Sebi
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> [1] https://issues.jboss.org/browse/AGPUSH-969
>>>>>>>>>>>>>> [2]
>>>>>>>>>>>>>> https://github.com/aerogear/aerogear-unifiedpush-server/blob/master/model/api/src/main/java/org/jboss/aerogear/unifiedpush/api/PushMessageInformation.java
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>> aerogear-dev mailing list
>>>>>>>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> -- Passos
>>>>>>>>>>>>>
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> aerogear-dev mailing list
>>>>>>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> aerogear-dev mailing list
>>>>>>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> aerogear-dev mailing list
>>>>>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> aerogear-dev mailing list
>>>>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> aerogear-dev mailing list
>>>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Matthias Wessendorf
>>>>>>>>>
>>>>>>>>> blog: http://matthiaswessendorf.wordpress.com/
>>>>>>>>> sessions: http://www.slideshare.net/mwessendorf
>>>>>>>>> twitter: http://twitter.com/mwessendorf
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Matthias Wessendorf
>>>>>>>>
>>>>>>>> blog: http://matthiaswessendorf.wordpress.com/
>>>>>>>> sessions: http://www.slideshare.net/mwessendorf
>>>>>>>> twitter: http://twitter.com/mwessendorf
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> aerogear-dev mailing list
>>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> aerogear-dev mailing list
>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> aerogear-dev mailing list
>>>>>>> aerogear-dev at lists.jboss.org
>>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> aerogear-dev mailing list
>>>>>> aerogear-dev at lists.jboss.org
>>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Matthias Wessendorf
>>>>>
>>>>> blog: http://matthiaswessendorf.wordpress.com/
>>>>> sessions: http://www.slideshare.net/mwessendorf
>>>>> twitter: http://twitter.com/mwessendorf
>>>>>
>>>>> _______________________________________________
>>>>> aerogear-dev mailing list
>>>>> aerogear-dev at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> aerogear-dev mailing list
>>>> aerogear-dev at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>>
>>>
>>>
>>>
>>> --
>>> Matthias Wessendorf
>>>
>>> blog: http://matthiaswessendorf.wordpress.com/
>>> sessions: http://www.slideshare.net/mwessendorf
>>> twitter: http://twitter.com/mwessendorf
>>>
>>> _______________________________________________
>>> aerogear-dev mailing list
>>> aerogear-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>>
>>
>>
>> _______________________________________________
>> aerogear-dev mailing list
>> aerogear-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>>
>
>
> _______________________________________________
> aerogear-dev mailing list
> aerogear-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/aerogear-dev
>



-- 
Matthias Wessendorf

blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http://twitter.com/mwessendorf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/aerogear-dev/attachments/20150409/d201aaba/attachment-0001.html 


More information about the aerogear-dev mailing list