{"id":988609,"date":"2026-10-03T20:00:00","date_gmt":"2026-10-03T20:00:00","guid":{"rendered":"https:\/\/croncodestudio.com\/en\/?post_type=croncode_post&#038;p=988609"},"modified":"2026-09-08T22:58:43","modified_gmt":"2026-09-08T22:58:43","slug":"choosing-analytics-without-surveillance","status":"publish","type":"croncode_post","link":"https:\/\/croncodestudio.com\/en\/journal\/choosing-analytics-without-surveillance\/","title":{"rendered":"Choosing Analytics Without Surveillance"},"content":{"rendered":"<div class=\"vgblk-rw-wrapper limit-wrapper\">\n<p>Analytics is a count of things you chose to remember. Surveillance is a map of a person you did not need. Consumer apps cross that line when every tap, location ping, and clipboard curiosity becomes a \u201clearning opportunity.\u201d At <a href=\"\/en\/\">Croncode<\/a> we pick tools to answer product questions, not to rebuild a dossier. The ethics of personalization are in a sibling essay: <a href=\"\/en\/journal\/ai-personalization-without-creepiness-where-consumer-apps-cross-the-line\/\">personalization without creepiness<\/a>. This page is the instrumentation choice.<\/p>\n<blockquote class=\"croncode-kisa-cevap\">\n<p>Choose analytics that name the job, keep the SDK list short, and refuse events that reconstruct a person\u2019s week. A dashboard is not a license to watch.<\/p>\n<\/blockquote>\n<h2>What questions deserve an event?<\/h2>\n<p>Did the first job complete. Did the second job complete in week two. Did the paid path fail. Did deletion finish. Did a crash hit the first job. That is enough for a small app to steer. Vanity opens and heatmaps of settings are optional and often noisy. Retention framing: <a href=\"\/en\/journal\/retaining-users-in-week-two\/\">week two<\/a>. Crash framing: <a href=\"\/en\/journal\/crash-free-sessions-what-founders-should-ask\/\">crash-free questions<\/a>.<\/p>\n<p>Jobs we instrument as jobs, not as stalking: <a href=\"\/en\/app\/yourstyle-ai-stylist-outfit\/\">YourStyle<\/a> saved a garment, <a href=\"\/en\/app\/numira-navigate-lifes-choices-with-numira\/\">Numira<\/a> structured a choice, <a href=\"\/en\/app\/spylie-uncover-the-truth-with-spylie\/\">Spylie<\/a> finished a case beat, <a href=\"\/en\/app\/luviport-flawless-journeys-the-premium-experience\/\">Luviport<\/a> confirmed a window. Catalog: <a href=\"\/en\/journal\/what-croncode-builds-mobile-ai-human-centered\/\">what Croncode builds<\/a>.<\/p>\n<h2>Which SDK habits turn into surveillance?<\/h2>\n<ol>\n<li>Five marketing pixels on a consumer utility.<\/li>\n<li>Events that include raw email, exact GPS, or photo contents.<\/li>\n<li>Session replay that captures a decision journal or a message.<\/li>\n<li>A vendor you cannot name on the privacy label.<\/li>\n<\/ol>\n<p>Deletion must include the analytics identity: <a href=\"\/en\/journal\/data-deletion-requests-in-small-apps\/\">deletion requests<\/a>. Store ownership for the label: <a href=\"\/en\/journal\/who-owns-the-app-store-account\/\">App Store account<\/a>. We will not ship mystery SDKs: <a href=\"\/en\/journal\/what-croncode-will-not-build\/\">will not build<\/a>.<\/p>\n<h2>When is Apple\u2019s own stack enough?<\/h2>\n<table>\n<thead>\n<tr>\n<th>Need<\/th>\n<th>Start with<\/th>\n<th>Add a vendor when<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Crashes<\/td>\n<td>Organizer \/ MetricKit<\/td>\n<td>Roles need a shared queue<\/td>\n<\/tr>\n<tr>\n<td>Store funnels<\/td>\n<td>App Analytics<\/td>\n<td>You need a custom job event<\/td>\n<\/tr>\n<tr>\n<td>Experiments<\/td>\n<td>None<\/td>\n<td>You can name a hypothesis<\/td>\n<\/tr>\n<tr>\n<td>Ads<\/td>\n<td>None until you buy ads<\/td>\n<td>You accept the label change<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>A landing page can stay dumb and still send store traffic: <a href=\"\/en\/journal\/landing-pages-that-send-traffic-to-the-app-store\/\">store landing pages<\/a>. Do not put a full ad stack on the site and then claim the app is private.<\/p>\n<h2>How do we write the event list in a brief?<\/h2>\n<p>Ten named events, each with a reason. No \u201ctrack everything and we will see.\u201d Quote packet: <a href=\"\/en\/journal\/what-to-send-when-requesting-a-software-quote\/\">what to send<\/a>. AI features should not log prompts that contain secrets: <a href=\"\/en\/journal\/how-to-brief-an-ai-app-studio\/\">AI brief<\/a>. Security: <a href=\"\/en\/journal\/security-questions-before-you-sign\/\">security questions<\/a>.<\/p>\n<p>Founder: <a href=\"\/en\/team\/goktug-unver\/\">Goktug Unver<\/a>. Co-founder: <a href=\"\/en\/team\/yusufhan-sokur\/\">Yusufhan Sokur<\/a>. Team: <a href=\"\/en\/team\/ozgur-ismet-ozkan\/\">Ozgur Ismet Ozkan<\/a>. Shipping: <a href=\"\/en\/journal\/how-croncode-ships-ai-consumer-apps-from-istanbul\/\">Istanbul shipping<\/a>.<\/p>\n<h2>What mistakes look like being data-driven?<\/h2>\n<ul>\n<li><strong>Optimizing a paywall with fear copy because a chart moved:<\/strong> <a href=\"\/en\/journal\/in-app-paywalls-that-do-not-lie\/\">honest paywalls<\/a>.<\/li>\n<li><strong>Pushing users who asked for quiet:<\/strong> <a href=\"\/en\/journal\/push-notifications-that-earn-the-permission\/\">earn the permission<\/a>.<\/li>\n<li><strong>Reading reviews as anecdotes and analytics as gospel:<\/strong> both lie. <a href=\"\/en\/journal\/how-to-read-app-store-reviews-as-a-team\/\">reviews as a team<\/a> and <a href=\"\/en\/journal\/what-users-say-vs-what-the-data-shows-building-a-data-driven-decision-culture-in-product-development\/\">users vs data<\/a>.<\/li>\n<li><strong>Adding Android pixels before the iOS job is true:<\/strong> <a href=\"\/en\/journal\/when-to-build-android-after-ios\/\">Android after iOS<\/a>.<\/li>\n<\/ul>\n<p>Choose a studio that will argue this list: <a href=\"\/en\/journal\/how-to-choose-a-custom-software-studio-for-ios\/\">choose an iOS studio<\/a>. Hire: <a href=\"\/en\/hire-software-studio\/\">hire<\/a>. Custom: <a href=\"\/en\/custom-software\/\">custom software<\/a>. Contact: <a href=\"\/en\/contact-us\/\">contact<\/a>. Journal: <a href=\"\/en\/journel\/\">\/en\/journel\/<\/a>.<\/p>\n<h2>How should a weekly review use the dashboard?<\/h2>\n<p>Thirty minutes. Three job events. One decision. If the meeting becomes a tour of funnels, you are entertaining yourselves. Founder-led support still beats a clever cohort when you have thirty users: <a href=\"\/en\/journal\/founder-led-support-in-the-first-users\/\">founder-led support<\/a>. Lean hours: <a href=\"\/en\/journal\/small-team-multiple-products-how-a-lean-studio-structures-its-engineering-and-design-resources\/\">small team, multiple products<\/a>.<\/p>\n<p>We do not publish fake conversion ranks for Croncode apps. If a vendor slide starts with \u201c#1 analytics,\u201d treat it as ads. Identity: we are not croncodetech.com. <a href=\"\/en\/journal\/croncode-llc-official-identity-not-croncodetech\/\">Identity<\/a>.<\/p>\n<h2>Frequently asked questions<\/h2>\n<h3>Is on-device analytics enough?<\/h3>\n<p>It can be, if you can still answer the job questions. Many teams still need a small server count. Small is the point.<\/p>\n<h3>Do I need consent banners in the app?<\/h3>\n<p>Follow the law of your markets and Apple\u2019s rules for the data you collect. Do not copy a website cookie modal as a substitute for a real choice.<\/p>\n<h3>Can I use analytics to personalize?<\/h3>\n<p>Only with a line the user can understand. If you cannot put it on a permissions screen, do not do it. See the creep essay linked above.<\/p>\n<h3>What if an investor wants more events?<\/h3>\n<p>Give them the job completion count. A raw event firehose is not a board story.<\/p>\n<h3>Will Croncode install any SDK the client names?<\/h3>\n<p>No. We will refuse SDKs we cannot explain on the privacy label. Talk to us via <a href=\"\/en\/contact-us\/\">contact<\/a>.<\/p>\n<\/div>\n<p><!-- .vgblk-rw-wrapper --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>How to choose app analytics without surveillance: event names for the job, a small SDK list, and a hard no on stalking the user across the week.<\/p>\n","protected":false},"featured_media":988610,"template":"","croncode_category":[48],"croncode_author":[47],"class_list":["post-988609","croncode_post","type-croncode_post","status-publish","has-post-thumbnail","hentry","croncode_category-studio","croncode_author-yusufhan-sokur"],"_links":{"self":[{"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/croncode_post\/988609","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/croncode_post"}],"about":[{"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/types\/croncode_post"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/media\/988610"}],"wp:attachment":[{"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/media?parent=988609"}],"wp:term":[{"taxonomy":"croncode_category","embeddable":true,"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/croncode_category?post=988609"},{"taxonomy":"croncode_author","embeddable":true,"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/croncode_author?post=988609"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}