Tracking behavior in persuasive apps: is sensor-based detection always better than user self-reporting?