
Heap for iOS: the capture-everything approach to mobile analytics - raviparikh
http://blog.heapanalytics.com/?p=76
======
eps
Fucking hell. This is exceptionally disturbing.

This sort of service needs to be legally regulated _now_. The app devs must be
required to warn in large block letters that evryhting you do in the app, even
while offline, is streamed to some random company. You can argue all you want
that "everyone's doing it", but it doesn't make this any less unacceptable and
going against basic expectations of privacy.

~~~
DeusExMachina
Aside from using some user resource (like battery or network) how is this
different from what website have been doing for a long time? There are tools
to even track the mouse movement of the user.

Which is not the "everyone is doing it argument", but more "why does this need
legal regulation now?". Why not before on web apps? The privacy implications
look the same to me, but the point does not seem to be raised in the latter
case.

~~~
socillion
Disabling Javascript is an easy opt out for websites.

This service is designed to produce user specific data. judging from what they
record on websites (see docs, tldr everything) I'd be surprised if the iPhone
version doesn't record GPS locations or what other apps you use.

I'm also not sure how commonly websites record data in this detail that also
maps to specific users, but if it's common on websites its definitely news to
me - and all the more reason to use stuff like Ghostery/Disconnect/Noscript.
Do these have iPhone equivalents yet?

~~~
sjtgraham
Not using an app is an easy opt out for people.

~~~
socillion
That assumes the customers know about it, and I think you're giving companies
too much credit to assume they will disclose it.

~~~
zaptheimpaler
Not a lot of customers know to disable JS either.

------
jazzychad
So, I'm curious how this will compete with free offerings like Flurry which do
similar-ish mobile analytics tracking and can handle millions of users per app
for free. I got very excited about this Heap announcement but looked at the
pricing. Multiple thousands/month for sub-million unique users may be
considered steep (but then again I'm a cheap developer). I've been looking for
a Flurry alternative (since I just want analytics and none of their ad junk).

Mobile apps are kind of a different beast from websites. Apps can have huge
number of unique users, whereas SaaS websites tend to have many fewer users by
comparison.

~~~
matm
We'd definitely appreciate more data points on pricing - care to send us an
email at team@heapanalytics.com, and we can discuss more there? It'd be great
to understand what sort of price point works for people like you.

------
DenisM
So here's my quick feedback to the team.

Pros:

\- Pricing is fine with me - I'm doing a paid SaaS app with relatively high
per-user revenue. You will likely price out most of other devs, however.

\- I like the retroactive analysis. The idea of grab everything and let god
sort it out speaks to me.

\- I like doing both device and web analytics in one place. I don't think
doing one or the other makes sense anymore.

Cons:

\- I don't see a way to make sure a user from different devices is counted as
one user, not two. I want to track the user across all touch points. From
experience I know solving this problem is very-very hard - sometimes you want
to see what the user did before he identified himself, which is where your
idea of "one user per session" falls apart - a session might have different
users in it signin in and out, and then there is a period between signins
which can be attributed to either of the authenticated users before or after
in the same session. Not to mention apps with support for multiple-account
apps, (e.g. iOS gmail app where identity depends on which part of the app
you're in).

With all that said, I don't think I will be trying it out. There are tons of
analytics services out there, and I don't feel like I can make an educated
decision about which one to try first, or at all. Where you can help me is by
providing a survey of the problem space, talking about the problems, potential
solution methods, and then addressing which products implement which methods.

Good luck.

~~~
matm
Great, thanks for the thorough feedback!

Re: your first con. We offer a heap.identify() API call that associates
activity with one canonical identity. For instance, if a user logs in on a new
separate device, you can call heap.identify({handle: 'DenisM'}) to associate
all activity on that device with the existing user DenisM.

We hope you reconsider and give us a go. We're always down to talk more in
person and better understand your use cases. Just ping us at
team@heapanalytics.com.

------
usujason
Is the "capture everything" approach to analytics a way to differentiate
themselves from more enterprise level mobile analytics solutions such as
Localytics?

------
nwhitehead
Do you have any case studies showing what the actual overhead is? I love the
idea but would worry about negatively impacting the customer experience.

~~~
matm
CPU-wise, our SDK adds up to 2% overhead to normal UIEvent-handling. This is
with frantic and constant user input - in practice the overhead is much less.

Network-wise, we batch user activity and by default make a network request
every 5-10 seconds. We'll expose a config variable so devs can tune this
frequency on a per-app basis.

~~~
DenisM
Keeping network alive like this is not cool - the radio will drain the
battery. It would be much better to not only allow a configuration for how
often the sync happens, but also allow the app to manually trigger sync,
normally at the same time as other network activity is going on so that no
extra power is spent bringing the radio up and down.

~~~
matm
This makes total sense! Manually syncing is a good idea.

We need to make sure we have reasonable defaults in place, though, and so far,
we've had no issues from our beta testers.

~~~
mpweiher
Steady small but spaced updates is just about worst case for battery if you're
on 3G. You want relatively large batch sizes so the system can turn the radios
off and keep them off. Obviously doesn't matter if the main app is using the
radios...

~~~
jordanthoms
There is an excellent guide on the Android site covering this:
[http://developer.android.com/training/efficient-
downloads/ef...](http://developer.android.com/training/efficient-
downloads/efficient-network-access.html) (and it really applies to iPhones
also)

------
randall
I've been having an awesome time with Heap for the web. Their response time is
fantastic for user feedback too.

Glad they exist.

------
boctor
We need more mobile metrics innovation so I welcome this.

Coincidentally just today I released an open source library on iDevRecipes to
do smarter metrics. My approach is to use base classes.

To achieve the no extra code part, is the SDK using swizzling‎?

~~~
DenisM
You can easily intercept all UI events via UIWindow or UIApplication subclass,
no swizzling required. I do this routinely to detect when a user is idle: no
events - no activity.

------
sama
this is how analytics should be done. congrats, guys. proud to be an investor!

------
eliperkins
Curious if this means that the Heap SDK will require for the shipped app to be
symbolicated or not, given how their example is written.

------
DenisM
What is there on the analysis part?

Restoring user behavior from touch events is a bit like restoring a steak from
ground beef. Do you guys offer any help with that? Something to string
individual events into a path?

~~~
matm
You can try out the analysis part with some sample (web-only) data at:
<https://heapanalytics.com/dashboard/demo>

We let you define events after-the-fact based on the gesture type and the
corresponding target variable. Once that event is defined, you can include it
in funnels, view it in user-specific activity streams, slice n' dice it, etc.

~~~
DenisM
Thanks for the demo link, that clears things up a bit.

FYI, I don't think you're using the work "cohort" correctly in the video.
Cohorts are stable groups, composed of the same people over time. "Users who
send 5 links" is not a cohort, as the group's composition changes over time.

~~~
matm
Huh, interesting! Will keep that in mind.

------
kevingibbon
Been testing Heap on iOS out for the last few days. Awesome product. Congrats
guys!

------
shloime
I've wanted to use heap in the past, but the plans aren't very startup
friendly..

~~~
matm
Similar to my comment above: it'd be great to understand what sort of price
point works for people like you. Feel free to send us an email at
team@heapanalytics.com.

