<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 11, 2015 at 3:51 PM, Sebastien Blanc <span dir="ltr">&lt;<a href="mailto:scm.blanc@gmail.com" target="_blank">scm.blanc@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Let&#39;s start with the &quot;semi-automatic&quot; approach ;) <br></div><div>@passos : maybe you can use the same method&#39;s name to keep it unified ? (we can always change the names later) </div></div></blockquote><div><br></div><div>I think summers had a good API though on the other thread already</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 11, 2015 at 3:48 PM, Corinne Krych <span dir="ltr">&lt;<a href="mailto:corinnekrych@gmail.com" target="_blank">corinnekrych@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Yeap all is in &quot;semi&quot;. <div>for iOs we&#39;ll have 2 public static methods:</div><div><br></div>







<div>AGPushAnalytics.<span>sendMetricWhenAppLaunched(serverURL: </span><span>NSURL</span><span>, launchOptions: [</span><span>NSObject</span><span>:</span><span>AnyObject</span><span>]?)</span></div><div>AGPushAnalytics.<span>sendMetricsWhenAppAwoken(serverURL: </span><span>NSURL</span><span>, applicationState: </span><span>UIApplicationState</span><span>, userInfo: [</span><span>NSObject</span><span>:</span><span>AnyObject</span><span>])</span></div><div><span><br></span></div>















<div><div>If we want all automation we have to provide more wrapping around native life cycle, which can be quite intrusive.<div><br></div></div><div>++</div><span><font color="#888888"><div>Corinne</div></font></span></div></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On 11 May 2015 at 15:44, Matthias Wessendorf <span dir="ltr">&lt;<a href="mailto:matzew@apache.org" target="_blank">matzew@apache.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">iOS is also semi automatic ;-)</div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 11, 2015 at 3:41 PM, Daniel Passos <span dir="ltr">&lt;<a href="mailto:dpassos@redhat.com" target="_blank">dpassos@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Of course. My point was just to be clear we can&#39;t do it &quot;automatic&quot; :)<br></div><div class="gmail_extra"><div><div><br><div class="gmail_quote">On Mon, May 11, 2015 at 10:39 AM, Erik Jan de Wit <span dir="ltr">&lt;<a href="mailto:edewit@redhat.com" target="_blank">edewit@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">but the android sdk could have a method for uploading the metrics, so<br>
that a developer can opt for having that displayed on the dashboard.<br>
<br>
This method can then also be used for cordova ;)<br>
<div><div><br>
On Mon, May 11, 2015 at 3:30 PM, Daniel Passos &lt;<a href="mailto:dpassos@redhat.com" target="_blank">dpassos@redhat.com</a>&gt; wrote:<br>
&gt; On Fri, May 8, 2015 at 2:10 AM, Matthias Wessendorf &lt;<a href="mailto:matzew@apache.org" target="_blank">matzew@apache.org</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Thu, May 7, 2015 at 11:58 PM, Daniel Passos &lt;<a href="mailto:dpassos@redhat.com" target="_blank">dpassos@redhat.com</a>&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Just to be clear, we are talking about metrics for messages delivered<br>
&gt;&gt;&gt; (received on device) or about really read/open?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Because in Android land is not possible know when message was<br>
&gt;&gt;&gt; read/opened. We delegate how the message will be delivered/showed to the<br>
&gt;&gt;&gt; MessageHandler[1] and we don&#39;t have access to it.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; when the user clicks on the message, the app opens. That&#39;s what we track<br>
&gt;&gt; w/ this PR, not the actual: I read the message - more &quot;App was opened due to<br>
&gt;&gt; push&quot;, see:<br>
&gt;&gt; <a href="https://issues.jboss.org/browse/AGPUSH-971" target="_blank">https://issues.jboss.org/browse/AGPUSH-971</a><br>
&gt;<br>
&gt;<br>
&gt; I can&#39;t do that. I can&#39;t do an action when app was opened. To do that we<br>
&gt; would need to create our own application[1] class, and all projects would<br>
&gt; need to extend it. As I have told in my previous email, for now I only can<br>
&gt; do something when the message is delivered to the device.<br>
&gt;<br>
&gt; [1] <a href="http://developer.android.com/reference/android/app/Application.html" target="_blank">http://developer.android.com/reference/android/app/Application.html</a><br>
&gt;<br>
&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Today we only have access when the message is delivered. Basically we<br>
&gt;&gt;&gt; receive the message in a AeroGearGCMMessageReceiver[2] do some checks and<br>
&gt;&gt;&gt; push the message for all Handles registered[3][4]<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; [1]<br>
&gt;&gt;&gt; <a href="https://github.com/aerogear/aerogear-android-push/blob/master/aerogear-android-push/src/main/java/org/jboss/aerogear/android/unifiedpush/MessageHandler.java" target="_blank">https://github.com/aerogear/aerogear-android-push/blob/master/aerogear-android-push/src/main/java/org/jboss/aerogear/android/unifiedpush/MessageHandler.java</a><br>
&gt;&gt;&gt; [2]<br>
&gt;&gt;&gt; <a href="https://github.com/aerogear/aerogear-android-push/blob/master/aerogear-android-push/src/main/java/org/jboss/aerogear/android/unifiedpush/gcm/AeroGearGCMMessageReceiver.java" target="_blank">https://github.com/aerogear/aerogear-android-push/blob/master/aerogear-android-push/src/main/java/org/jboss/aerogear/android/unifiedpush/gcm/AeroGearGCMMessageReceiver.java</a><br>
&gt;&gt;&gt; [3]<br>
&gt;&gt;&gt; <a href="https://github.com/aerogear/aerogear-android-push/blob/master/aerogear-android-push/src/main/java/org/jboss/aerogear/android/unifiedpush/RegistrarManager.java#L118" target="_blank">https://github.com/aerogear/aerogear-android-push/blob/master/aerogear-android-push/src/main/java/org/jboss/aerogear/android/unifiedpush/RegistrarManager.java#L118</a><br>
&gt;&gt;&gt; [4]<br>
&gt;&gt;&gt; <a href="https://github.com/aerogear/aerogear-android-push/blob/master/aerogear-android-push/src/main/java/org/jboss/aerogear/android/unifiedpush/RegistrarManager.java#L130" target="_blank">https://github.com/aerogear/aerogear-android-push/blob/master/aerogear-android-push/src/main/java/org/jboss/aerogear/android/unifiedpush/RegistrarManager.java#L130</a><br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; -- Passos<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Wed, May 6, 2015 at 6:38 AM, Matthias Wessendorf &lt;<a href="mailto:matzew@apache.org" target="_blank">matzew@apache.org</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Hi,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; as discussed on the previous thread, there will be a new endpoint to<br>
&gt;&gt;&gt;&gt; &#39;track&#39; the &quot;App opened/launched due to received push notification&quot;.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Internally, on the UPS, the Push Message has an ID, which get&#39;s append<br>
&gt;&gt;&gt;&gt; to the payload of the notification, like here:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; <a href="https://github.com/matzew/aerogear-unifiedpush-server/blob/analytics/push/sender/src/main/java/org/jboss/aerogear/unifiedpush/message/sender/APNsPushNotificationSender.java#L107-L108" target="_blank">https://github.com/matzew/aerogear-unifiedpush-server/blob/analytics/push/sender/src/main/java/org/jboss/aerogear/unifiedpush/message/sender/APNsPushNotificationSender.java#L107-L108</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On the client SDKs this will be read and a HTTP call made to the soon<br>
&gt;&gt;&gt;&gt; introduced MetricsEndpoint. Currently this info is send to the<br>
&gt;&gt;&gt;&gt; RegistrationEndpoint, including the deviceToken/registrationId. However, I<br>
&gt;&gt;&gt;&gt; think that the deviceToken/registrationId is currently not needed for<br>
&gt;&gt;&gt;&gt; metrics, since we are just interested in anonymous &quot;app launched/opened due<br>
&gt;&gt;&gt;&gt; to push&quot;, and not a specific &quot;DEVICE X did open, while DEVICE Y did not yet<br>
&gt;&gt;&gt;&gt; open&quot;.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; So all we really need is the ID of the push notification, to be<br>
&gt;&gt;&gt;&gt; processed by our Metrics Service<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; <a href="https://github.com/matzew/aerogear-unifiedpush-server/blob/analytics/jaxrs/src/main/java/org/jboss/aerogear/unifiedpush/rest/registry/installations/InstallationRegistrationEndpoint.java#L128-L133" target="_blank">https://github.com/matzew/aerogear-unifiedpush-server/blob/analytics/jaxrs/src/main/java/org/jboss/aerogear/unifiedpush/rest/registry/installations/InstallationRegistrationEndpoint.java#L128-L133</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Therefore my proposal is have an endpoint:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; PUT /metrics/pushmessage/{pushMessageID}<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; I think PUT is good/best, because there is nothing really created on the<br>
&gt;&gt;&gt;&gt; server, it&#39;s more updating the &#39;counter&#39; on the existing<br>
&gt;&gt;&gt;&gt; PushMessageInformation object.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Thoughts?<br>
&gt;&gt;&gt;&gt; -Matthias<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; aerogear-dev mailing list<br>
&gt;&gt;&gt; <a href="mailto:aerogear-dev@lists.jboss.org" target="_blank">aerogear-dev@lists.jboss.org</a><br>
&gt;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Matthias Wessendorf<br>
&gt;&gt;<br>
&gt;&gt; blog: <a href="http://matthiaswessendorf.wordpress.com/" target="_blank">http://matthiaswessendorf.wordpress.com/</a><br>
&gt;&gt; sessions: <a href="http://www.slideshare.net/mwessendorf" target="_blank">http://www.slideshare.net/mwessendorf</a><br>
&gt;&gt; twitter: <a href="http://twitter.com/mwessendorf" target="_blank">http://twitter.com/mwessendorf</a><br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; aerogear-dev mailing list<br>
&gt;&gt; <a href="mailto:aerogear-dev@lists.jboss.org" target="_blank">aerogear-dev@lists.jboss.org</a><br>
&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; -- Passos<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; aerogear-dev mailing list<br>
&gt; <a href="mailto:aerogear-dev@lists.jboss.org" target="_blank">aerogear-dev@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br>
<br>
<br>
<br>
--<br>
</div></div>Cheers,<br>
       Erik Jan<br>
<div><div>_______________________________________________<br>
aerogear-dev mailing list<br>
<a href="mailto:aerogear-dev@lists.jboss.org" target="_blank">aerogear-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br>
</div></div></blockquote></div><br><br clear="all"><br></div></div><span><font color="#888888">-- <br><div><div dir="ltr">-- Passos<br></div></div>
</font></span></div>
<br>_______________________________________________<br>
aerogear-dev mailing list<br>
<a href="mailto:aerogear-dev@lists.jboss.org" target="_blank">aerogear-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Matthias Wessendorf <br><br>blog: <a href="http://matthiaswessendorf.wordpress.com/" target="_blank">http://matthiaswessendorf.wordpress.com/</a><br>sessions: <a href="http://www.slideshare.net/mwessendorf" target="_blank">http://www.slideshare.net/mwessendorf</a><br>twitter: <a href="http://twitter.com/mwessendorf" target="_blank">http://twitter.com/mwessendorf</a></div>
</div>
</div></div><br>_______________________________________________<br>
aerogear-dev mailing list<br>
<a href="mailto:aerogear-dev@lists.jboss.org" target="_blank">aerogear-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
aerogear-dev mailing list<br>
<a href="mailto:aerogear-dev@lists.jboss.org" target="_blank">aerogear-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
aerogear-dev mailing list<br>
<a href="mailto:aerogear-dev@lists.jboss.org">aerogear-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/aerogear-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/aerogear-dev</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Matthias Wessendorf <br><br>blog: <a href="http://matthiaswessendorf.wordpress.com/" target="_blank">http://matthiaswessendorf.wordpress.com/</a><br>sessions: <a href="http://www.slideshare.net/mwessendorf" target="_blank">http://www.slideshare.net/mwessendorf</a><br>twitter: <a href="http://twitter.com/mwessendorf" target="_blank">http://twitter.com/mwessendorf</a></div>
</div></div>