The Saga of your life

The Saga (@GetSaga) lifelogging app brings RunKeeper (@runkeeper) activities into a user’s location-based view of their life’s activities. Jeremy Bensley (@jbensley) walks us through how A.R.O., Inc. (@arodotcom), makers of Saga, use the Health Graph platform (@healthgraphapi) to show the saga of your life.

Bill Day: Please tell us about yourself and your work.

Jeremy Bensley

Jeremy Bensley: I’m the Director of Server Development at A.R.O., Inc. Running the platform development team means I’m involved with many tasks on a daily basis, but at my core I’m a data guy, and specifically I love tracking my movements, my activities, and my habits. My background is in machine learning, natural language processing, and making sense of lots and lots of (often noisy) output from sensors. Aside from managerial duties my primary tasks for Saga are the time segmentation of the LifeLog and integration with external APIs such as RunKeeper’s Health Graph API.

A.R.O. is a great place to work. We think the sensors in your smartphone can be used to power a wide range of awesome app experiences. Everything from contextually-aware systems like Google Now to virtual personal assistants like Siri, and we’ve only begun to scratch the surface on this potential.

BD: What is the “elevator pitch” for why someone should use Saga?

JB: Saga is a location lifelog. It creates a diary of your life based on where you go. The beauty of Saga is that it does this without requiring much attention from the user. Different people will like different aspects of Saga: Perhaps you will use it to figure out how to optimize your commute to work, or how you run your errands. Or as a beautiful way to tell the story of your amazing weekend.

BD: How did you get started using the Health Graph API?

JB: We wanted to include health details as part of the Saga lifelog. A first step is including information such as the details of your run from RunKeeper. For many runners, running is a part of your life, more than just the numbers of the run (distance, time, pace, etc). It’s about getting out to a unique location, having an amazing run or race, meeting up with fellow runners at the pub afterward, and basically just having a wonderful weekend.

And Health Graph users aren’t tracking just runs or other forms of exercise. Right now we’re focusing on run information, but soon we will incorporate other measurements available in Health Graph platform such as body measurements and food intake.

BD: How will the Health Graph platform benefit your business?

JB: People who use the Health Graph through a number of tools have already established a form of lifelogging practice, just very focused. We think they will be familiar with lifelogging in general, and appreciate the additional context that Saga will provide to their existing logging practice.

BD: Which portions of the Health Graph API do you use, and why?

JB: For our initial integration we are pulling the FitnessActivityFeed and associated FitnessActivities to display a summary of a user’s workout in their lifelog. We have plans in our roadmap for expanding upon this to include other activity feeds and eventually allow people to post into some of these feeds using data from Saga.

Saga screenshot

BD: What do you like about the Health Graph API? What would you like to see changed?

JB: It’s an amazingly comprehensive platform for tracking all of the health-related aspects of your life, and it’s fantastic that RunKeeper places such a strong emphasis and dedication to making this the best API for health tracking. My only complaint as a developer would be the lack of API versioning, or if it exists documentation on its usage. [Editor’s note: Please monitor “revisions” via this blog for updates and modifications to the Health Graph API and platform.]

BD: If you could request any new feature from the Health Graph platform, what would it be? How would you use it?

JB: I believe the Health Graph platform provides an amazingly comprehensive health tracking API. Nonetheless I’d like to see extra data to allow for timestamp normalization, by including either a UTC timestamp or the user’s timezone in the activity data.

BD: Can you share any future plans for Saga? What’s coming next that people will be excited about? Does the Health Graph platform play a role in that, and if so, how?

JB: In the future, Saga will incorporate more logging services (for example, a service to track mood, menstrual cycle, music listening) to include in the lifelog. The Health Graph platform will certainly be a part of that, as right now we have a very small subset of it included.

Bill Day (@billday) is Platform Evangelist & PM for RunKeeper where he helps developers learn about and use the Health Graph platform.


Lose weight faster with DietBet and your friends

DietBet (@dietbet) enables runners and other RunKeeper (@runkeeper) users to lose weight socially by challenging their friends to a fun weight loss competition. Below we discuss how DietBet uses the Health Graph API & platform (@healthgraphapi) to help motivate people and keep their weight loss journeys fun.

Bill Day: Please tell us about yourself and your work.

Adam McClean of DietBet

Adam McClean: I’ve been a product manager for almost eight years with a primary focus in e-commerce and consumer brands. I’m also training for a mini marathon later this year.

BD: What is the “elevator pitch” for why someone should use DietBet?

AM: DietBet is the best way to jumpstart your weight loss and access the support necessary for success. It’s a great mix of behavioral economics (loss aversion and financial incentives), community, and accountability. Players put money on the line and commit to losing 4% of their starting weight in 4 weeks. During the game players make friends, talk smack, and track their progress as they approach their goal. Everyone who reaches the 4% goal ends up splitting the pot — and making some extra money!

BD: How did you get started using the Health Graph API?

AM: I’ve been using RunKeeper and saving my personal data to the Health Graph for a long time. After I participated in my first DietBet, it was clear the two should integrate.

BD: How will the Health Graph platform benefit your business?

AM: Running and weight loss have a symbiotic relationship: Losing weight helps you improve your running time and running helps you burn calories and lose weight. Players who connect with RunKeeper will be able to send weight updates and running activities directly into their DietBet game. Also, any weight updates made on DietBet will be saved back to the player’s Health Graph account.

BD: Which portions of the Health Graph API do you use, and why?

AM: Since DietBet players are required to submit their weight in order to play the game, we wanted to allow them to do this from both DietBet and RunKeeper. We are using Weight Measurements to get/post all of the weight data. We are also grabbing running details from Fitness Activities, so other players can see the hard work being done to help a player make their 4% goal.

DietBet screenshot

BD: What do you like about the Health Graph API?

AM: We love the simple approach to tracking changes using Root Resource and Change Log. This lowers the overhead on our end and lets us post activities and weight updates within minutes.

BD: If you could request any new feature from the Health Graph platform, what would it be? How would you use it?

AM: Most weight data is inputted manually using the honor code. Because we have a team of referees and a photo-based verification solution, we’d like to be able to indicate when weight entries are “verified” vs “manual” the same way you can specify a “tracked” vs “manual” fitness entry.

BD: Can you share any future plans for DietBet? What’s coming next that people will be excited about?

AM: We’re hoping to expand beyond the current game (4% in 4 weeks) and allow users to play games with longer timelines and larger weight loss goals. We also want to reward players for maintaining their weight or establishing healthy habits.

BD: Is there anything else we should know about you or DietBet?

AM: Organize a game today and use promo code HEALTHGRAPH. If you get 8+ other players into the game, we’ll refund your bet!

Bill Day (@billday) is Platform Evangelist & PM for RunKeeper where he helps developers learn about and use the Health Graph platform.


Validating tracked versus manual fitness activities using the Health Graph API

One question we receive fairly often from Health Graph (@healthgraphapi) partners is how to validate that fitness activities (runs, walks, bike rides, etc.) read out of the Health Graph platform were GPS-tracked versus manually entered by the user. Rewards partners a la Earndit and GymPact, corporate wellness providers like Virgin HealthMiles, and forward-thinking brands are often keen to differentiate between tracked versus manually entered activities as part of their programs’ anti-fraud efforts.

So how do you tell the difference between GPS and manual activities?

Each item in the Fitness Activity feed has ‘source‘, ‘entry_mode‘, and ‘has_path‘ fields. These let you determine whether the activity was originally submitted as a GPS-tracked activity. For example, a RunKeeper (@runkeeper) mobile app GPS-tracked run should have values of “RunKeeper“, “API“, and “true” for the aforementioned fields, respectively.

Health Graph fitness activity documentation

If you are interested in including GPS-tracked sources from other Health Graph partners’ activity trackers, you can include them in your ‘source‘ filtering. In addition, if you need to differentiate by type of activity (i.e. running, walking, cycling, etc.) you can use the ‘type‘ field.

Using these fields should let you skip any activities for which the user simply entered statistics, or originally entered the route map (path) via the Web. For more details on these fields and their usage, please refer to the Health Graph fitness activities documentation, especially the array structures section.

Caveat: The only reliable way to verify whether a user has subsequently edited the map associated with a saved GPS-tracked activity is to manually check each point’s ‘type‘ (a value of “manual” means it has been edited). For efficiency’s sake, we don’t save that information anywhere else in the Health Graph platform and we retrieve points only when full data for the activity is requested. That said, we have found that most users do not edit maps after the fact.

Bill Day (@billday) is Platform Evangelist & PM for RunKeeper where he helps developers learn about and use the Health Graph.


RunKeeper hackathon recap

What happens when you give the RunKeeper crew two days to let imaginations run wild? A whole lot of awesome, I tell ya!

Our product team is always five steps ahead in terms of planning awesome updates to the app, but in the process, it seems each developer has some sort of other dream RunKeeper project they’d love work on if given the time. We decided to set two work days aside for engineers (and others throughout the company) to try to bring those to reality.

The community had lots of interesting ideas on what would make it into our first-ever hackathon, and many of the resulting hacks lined up with your hopes! There was a simple start widget for the home and lock screens on Android, much-improved data visualizations for your fitness reports, refreshed technology for GPS tracking, in-app strength training tracking, a pretty new website, and some ridiculously fun and motivating audio cues. And a few other things that are internal and top secret—for now :).

We’re cranking hard to turn some of these hacks into actual RunKeeper updates and features, so stay tuned! And in the meantime, the pictures and videos below are definitely worth (more than a) thousand words.

Kicking off some collaboration

image

Jacked Jim gears up for his commercial debut in the RoidKeeper strength training promotional video

image

This team gave a whole new meaning to the term long hours. (And garnished some awesome prizes in the process)

image

Makers of the aforementioned awesome audio cues hack demo their goods

image

A little hack to get some more real-time insights into our community

image

Working to build the perfect GPS algorithm

image

And this video really speaks to the need for that widget hack

One of our many rocking trophies

image

Cross-posted from the RunKeeper blog.


Launch RunKeeper from your own iOS app

Are you a Health Graph (@healthgraphapi) partner with an iOS app of your own? And do you encourage your users to track their fitness activities using the RunKeeper (@runkeeper) app?

If you do and you want a way to ease their transition from your experience into RunKeeper tracking, we’ve got just the ticket!

We’ve added support for launching RunKeeper on-device from your app. To launch the RunKeeper app on iPhone (or iPad, if a user rolls that way):

  1. Present the user with a button in your app that they can click to launch RunKeeper.
  2. When the user clicks that RunKeeper button, attempt to open RunKeeper using the following Objective-C code:
                [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"RunKeeperPro://"]];
              
  3. If the user has an up to date RunKeeper release installed, the RunKeeper app should launch and they can begin tracking immediately.
  4. If the user has an older copy of RunKeeper, or hasn’t installed the RunKeeper app yet, prompt them to install the latest RunKeeper release from iTunes and then they can begin tracking after installation.

Here’s an example of how you might implement this, taken from our partner GymPact (@gympact; learn more about GymPact from this previous partner profile).

First up, notice how GymPact places a prominent RunKeeper button on their app launch screen once a user connects their GymPact account to a RunKeeper account (connection is a one time only operation per user).

Once the user clicks that button, GymPact loads this RunKeeper screen to provide additional context before starting the RunKeeper app.

Clicking on the “Connected – Get Running!” button on the screen above tells the user they’re about to open the RunKeeper app if they have it, or that they need to install the RunKeeper app if they don’t already have it installed.

From here they can grab RunKeeper from the App Store if need be and then away they go!

We hope this will be useful for many of our iOS app partners. Please give it a try and let us know what feedback and requests you have.

And Android partners, fear not, we have you covered too: Similar support is coming in our next Android app release. This will be supported via Android Intents. More details once that release is available in the Google Play store.

Bill Day (@billday) is Platform Evangelist for RunKeeper where he helps developers learn about and use the Health Graph.


Earn discounts with your favorite retailers from Bank of Fitness

Bank of Fitness (@bankoffitness) turns your workouts into discounts from your favorite retailers. Learn how and why Bank of Fitness chose to use the Health Graph (@healthgraphapi) to access out-of-gym workout data from RunKeeper (@runkeeper), opening up a new world of potential savings for exercising consumers.

Bill Day: Please tell us about yourself and Bank of Fitness.

Corey Draffen: I created Bank of Fitness (BoF) because of the severe lack of motivation there is for the average person to exercise and lead a healthier life.

Bank of Fitness is motivating the world to be healthier. We plan to keep people exercising by providing motivation through real-life rewards. Exercise at a gym or using a mobile fitness app and Bank of Fitness will automatically award you points redeemable for free items and valuable discounts at great retailers. The more you exercise, the more points you earn. The more points you earn, the more you save!

BD: What is the “elevator pitch” for why someone should use your app?

CD: Workout. Get Rewarded! It’s that simple.

BD: Can you tell us a bit about your users? What kinds of things do they do with Bank of Fitness?

CD: Our beta users have tracked more than 1500 workouts and redeemed rewards for Target gift cards, Visa gift cards, and some special discounts with retailers. We are in the process of partnering with gym management software companies to reward millions of users for going to the gym every day.

BD: How did you get started using the Health Graph API?

CD: We reviewed the Health Graph API documentation, then did a proof of concept to explore how an integration would work. We are excited to see it moving forward! BankOfFitness.com is now ready with end-to-end integration with RunKeeper.

BD: How is using the Health Graph benefiting your business?

CD: RunKeeper’s Health Graph keeps track of fitness activities for users. Fitness activity feeds enable us to reward RunKeeper users every time they workout.

BD: What do you like about the Health Graph platform? What would you like to see changed?

CD: We like how the platform keeps track of different type of activities; it’s not just limited to cardio exercise.

Having access to comprehensive API documentation that’s simple to understand has been really helpful, too. And when our QA team identified issues while integrating with the user registration process, the RunKeeper team was very responsive. We appreciate the quick turnaround.

BD: If you could request any new feature from the Health Graph, what would it be? How would you use it?

CD: Currently we have to ask users to register with BoF after RunKeeper Registration/Sign In. This is because the Health Graph API does not return user email addresses. This two-step registration process will likely increase the drop-out of first time users. If there were a way to get the email address of users who authorized RunKeeper access to BoF, it would be a very helpful feature.

BD: Can you share any future plans for Bank of Fitness? What’s coming next that your users will be excited about? Does the Health Graph play a role in that, and if so, how?

CD: Our near term plan is to integrate with fitness club management software companies so we can reward people working out at gyms. The Health Graph will play an important role, since we want those millions of gym members to also track their workout activities outside of the gym.

We have some exclusive discounts from retailers and are in-process on building new relationships that will result in even more exciting gifts and discounts for our users.

We have also created BoF APIs for use by fitness club management software companies. We are in partnership conversations with club management software companies to use our APIs.

Bill Day (@billday) is Platform Evangelist for RunKeeper where he helps developers learn about and use the Health Graph.


Run with anyone, anywhere using Running Club

Running Club app (@runningclubapp) lets you do virtual runs (and bike rides and walks) with friends that are physically located elsewhere during the run. By integrating with the Health Graph (@healthgraphapi), Running Club has guaranteed that you can store and use your run data on your platform of choice and with other activity tracking apps such as RunKeeper’s own (@runkeeper).

Bill Day: Please tell us about yourself and your app.

Eric Piazza: I’ve been a software developer for a little over ten years.

Most people assume that I am also an avid runner, but actually the opposite is true: I have a hard time getting motivated to run. But this lack of motivation was actually the reason I got the idea for the app. I found that the only time I would get out and run consistently was when I had a “reason” to run. Joining a local running club with some friends was a great motivator, but with two young kids and work piling up, I found I was missing more and more runs. With all the technology available in mobile phones I thought “Why can’t I just run with my friends through the phone?”. I got together with some colleagues and about nine months later the “Running Club App” was born!

BD: What is the “elevator pitch” for why someone should use your Running Club app?

EP: The Running Club app can be thought of as a “virtual running club” where people can schedule live, interactive runs with friends and other runners around the country. What makes Running Club unique from other apps is this live functionality, where users can actually see their progress compared to others during a run, and have a live group chat with everyone before and afterwards. Running Club uses a “dot race” style visualization to show how far everyone in the activity has run in real-time.

Note also that the Running Club app can also be used for other activities such as Cycling or Walking.

BD: How did you get started using the Health Graph API?

EP: I am also a RunKeeper user, and during our development I saw a newsletter featuring a handful of apps from the RunKeeper app section. I knew that integrating Running Club with Health Graph would be a great way to get existing RunKeeper users to use our app, while allowing them to continue to track their data using RunKeeper.

BD: How is using the Health Graph benefiting your business?

EP: The benefits of the Health Graph are obvious.

From our perspective, we are able to better reach our target audience, both through visibility on the RunKeeper app pages, and also through the Health Graph posts themselves. When a user posts a result from our app to the Health Graph, all of their friends can see they are using the Running Club app, and hopefully they will turn around and try it themselves. RunKeeper users benefit as well since they have the ability to use Running Club, but keep their run data in their existing system.

BD: Which portions of the Health Graph API do you use?

EP: We use the feature for posting activity results.

BD: What do you like about the Health Graph? What would you like to see changed?

EP: It’s a really innovative idea that allows smaller apps like us tap into the huge RunKeeper community.

The API was easy to use and integrate. The only change I’d like to see at the moment is to allow a post without actually providing activity data (an informational post). For example, for Facebook and Twitter, when someone signs up for an activity, they can automatically post information about the upcoming activity, something like “John is running 5K at 7:00 PM tonight, join him *live* in the Running Club App”. We are not able to make a similar post to the Health Graph platform because results information is required.

BD: Can you share any future plans for Running Club? What’s coming next that your users will be excited about? Does the Health Graph play a role in that, and if so, how?

EP: We are currently working on Running Club 2.0, which will include some really neat new individual features as well as voice updates as you run.

BD: Is there anything else we should know about you or your application?

EP: You really have to try a group run to fully appreciate the Running Club app. There is nothing else like our app on the market, and the social experience you get from running “with” your friends in other parts of the country, or meeting a new running partner is extremely satisfying.

To give you an example, the other day I was in a 5K run with a friend from New York, and a friend across the world in Dubai. I knew both these guys but they didn’t know each other. We ran a 5K, and they both finished within 5 seconds of each other (they left me in the dust). They liked the motivation that they got from each other and have been scheduling runs together on a regular basis since then.

Bill Day (@billday) is Platform Evangelist for RunKeeper where he helps developers learn about and use the Health Graph.