DField SolutionsLoading · Töltődik
Ugrás a tartalomhoz

A mobil app analitika 2026 ban ott van, ahol a webes 2018 ban: a 'tedd be a Firebase t és kész' időszak véget ért. A NAIH 2025 ben indított egy magyar app fókuszú adatkezelési auditsorozatot, és a leggyakoribb megállapítás az volt, hogy a fejlesztő nem tudta megmondani, hova mennek pontosan a Firebase Analytics event ek, mire használja a Google azokat, és milyen jogalapon. Ez a poszt az alternatíváról.

Ez nem 'a Firebase rossz' irányú érvelés. A Firebase t magunk is használjuk, ahol a felhasználói consent tiszta, a DPA kötött és a use case egyértelmű. A poszt azokról a magyar app projektekről szól, ahol a marketing analitika nem prioritás, és a privacy tiszta state alapelvárás.

1. Mit kérdezel meg, mielőtt SDK t teszel be

  • Mire használjuk az adatot? (Crash debug? Funkció megértés? Marketing optimalizálás?)
  • Az adat opt out alapú vagy opt in alapú? (Magyarországon a marketing analitikára opt in kell.)
  • Az adat kilép e az EU ból? (Ha igen, SCC kell, és NAIH kockázat.)
  • Mennyi PII (personally identifiable information) megy? (User id? IP? Eszköz id? Email?)
  • Mennyi időre tárolunk? (Mert a 'forever' nem GDPR megfelelő válasz.)

2. On device aggregálás · ami sokszor elég

A leggyakoribb mobil analitika kérdés: 'a user a feature A vagy a feature B felé megy gyakrabban?'. Erre nem kell minden tap et szervernek küldeni. Tárolj on device egy aggregátot (pl 'feature_a_count' számláló), és napi egyszer a session végén küldd el a számokat (nem az event eket). Ez k anonim módon mondja meg a választ, és a user privát marad.

// On device aggregátor Swift ben
actor LocalCounters {
  private var counters: [String: Int] = [:]
  private let store: UserDefaults = .standard

  func increment(_ key: String) {
    counters[key, default: 0] += 1
  }

  func flushAndReset() async -> [String: Int] {
    let snapshot = counters
    counters.removeAll()
    // szerverre küldjük az aggregátot
    await Network.post("/api/anon-stats", body: [
      "date": Date().iso8601(),
      "counters": snapshot,
      "build": Bundle.main.buildNumber,
      "platform": "ios",
      "locale": Locale.current.identifier,
    ])
    return snapshot
  }
}

3. Self hosted PostHog · ha eseményszintű kell

Ha tényleg eseményszintű analitika kell (pl. funnel elemzés, kohorsz vizsgálat), akkor a self hosted PostHog egy reális opció. A teljes adat a saját szervereden marad, EU régióban (Hetzner, OVH, Magyar Telekom Cloud), és a PostHog cloud verziójához képest ~30 százalék több munka, de a NAIH audit egyetlen kérdéssel zárul: 'hol vannak az adatok? · A saját szerverünkön, EU n belül.'.

  • Self hosted minimum costs: 1 nagyobb VM (8 GB RAM, 4 vCPU), kb 50-80 EUR / hó.
  • Karbantartás: havonta egyszer update, ~2 óra.
  • A saját szerveren tárolt adat retentionjét te szabod meg (mi 90 napban dolgozunk).
  • Az ingest endpoint t app oldalról szabad self hosted ra mutatnod (a SDK ezt támogatja).
// PostHog Android SDK self hosted endpoint tel
import com.posthog.android.PostHog
import com.posthog.android.PostHogAndroidConfig

class App : Application() {
  override fun onCreate() {
    super.onCreate()
    val config = PostHogAndroidConfig(
      apiKey = BuildConfig.POSTHOG_KEY,
      host = "https://analitika.cegunk.hu"
    ).apply {
      // Csak akkor küldj, ha a user beleegyezett
      // (a SDK ezt opt in flag gel kezeli)
      optOut = !ConsentManager.hasAnalyticsConsent()
      // PII auto capture kikapcsolva
      sessionReplay = false
      captureApplicationLifecycleEvents = true
      captureDeepLinks = false
    }
    PostHog.with(this, config)
  }
}

4. Plausible / Umami · ha minimalista vagy

Webes oldalon a Plausible és az Umami kategorikusan jó privacy tisztaság szempontjából. Mobilon a Plausible nem natívan jelen van, de a saját analitika küldést egyszerűen lehet egy lightweight HTTP klienssel csinálni · csak a `pageview` és néhány custom event etlen menjen át. A trade off: nincs funnel, nincs kohorsz, nincs replay. De a NAIH meg van elégedve, mert nincs PII, nincs cross app tracking, nincs cookie.

5. PostHog Replay alternatívák · session replay nélkül

A 'session replay' a fejlesztők kedvence (látja, hol akadt el a user), és a privacy advocate ek rémálma (egy teljes input sequence felvétele a PII felvétele). 2026 ban a NAIH álláspontja a session replay re igencsak szigorú: csak explicit, granular consent tel és csak addig, amíg a user kifejezetten benne van. Mi két alternatívát ajánlunk a magyar piacra:

  • Anonim crash riport és error trace (Sentry, ahol a PII et a config szinten kicseréljük szűrőre · `beforeSend` hook).
  • Heat map saját implementációban: tárolj on device 'tap location' aggregátot a feature kategóriákhoz, és a session végén küldd el. Nincs replay, de a 'hova nyom a user' válaszolható, és nincs PII.
// Sentry beforeSend hook · PII szűrés
import * as Sentry from "@sentry/react-native";

Sentry.init({
  dsn: process.env.SENTRY_DSN,
  beforeSend(event, hint) {
    // 1. User context elhagyása minden esetben
    if (event.user) {
      event.user = { id: hashUserId(event.user.id) };
    }
    // 2. Email / telefon mintázat törlése a stack trace ben
    const piiPatterns = [
      /\b[\w._%+-]+@[\w.-]+\.[A-Za-z]{2,}\b/g,  // email
      /\+36 ?\d{1,2} ?\d{3} ?\d{4}/g,            // magyar telefon
      /\b\d{8,11}\b/g,                            // hosszú számok
    ];
    const cleanString = (s: string) =>
      piiPatterns.reduce((acc, p) => acc.replace(p, "[REDACTED]"), s);

    if (event.message) event.message = cleanString(event.message);
    if (event.exception?.values) {
      event.exception.values.forEach((v) => {
        if (v.value) v.value = cleanString(v.value);
      });
    }
    return event;
  },
});

A magyar NAIH gyakorlat szigorúbb az IAB TCF dialógusok ellen, mint a francia CNIL. A jelenlegi (2025 4 negyedévben kibocsátott) NAIH ajánlás szerint: a consent dialógusban 'Elfogadom' és 'Elutasítom' egy szinten, egy színben legyen. A 'Beállítások' nem helyettesíti az 'Elutasítom' t. Ha az appodban Firebase Analytics van, az alapértelmezetten ne küldjön event et, csak a consent után.

Az analitika consent jét tedd minden új session induláskor felülvizsgálható módon (pl. a settings ben egyenként ki / be kapcsolható kategória). Ez nem csak compliance · ez egyfajta felhasználói bizalom építés. Egy 2024 es Eurobarometer adat szerint a magyar mobil felhasználók 71 százaléka nyitottabb azokhoz az appokhoz, ahol az analitika beállítható.

Mit veszítesz, mit nyersz · a trade off táblázat

  • Veszítesz: cross app reach (pl Facebook attribuáció), part felhasználói cohort összevetés (mert a Google ban van).
  • Veszítesz: marketing kampány attribuáció a TikTok / Meta felé (a SKAdNetwork és a Privacy Sandbox alapú alternatívák itt nem privacy tisztábbak).
  • Nyersz: a NAIH és a felhasználó bizalma, és ezzel a B2C app retention 6-10 százalékos javulása (saját mérés, két app esetben).
  • Nyersz: az adat a saját szervereden marad, és a saját elemzéseid alapján döntesz, nem a Firebase által nyújtott feldolgozott adatból.

Záró megjegyzés: a privacy tiszta analitika nem kategorikusan rossz. Minőségileg más típusú elemzés. A 'minden tap et követek' modellből egy 'a fontos eseményeket aggregálom' modellbe lépsz. Ez kevesebb data points sze, de a kérdéseid is más. Ha a kérdésed 'hány user nyomta meg ezt a gombot', az ki kell, hogy egy aggregátum. Ha a kérdésed 'pontosan ki nyomta meg, mikor', akkor PII kell, és akkor consent kell.

MegosztásXLinkedIn#
Mező Dezső
Szerző

Mező Dezső

Alapító, DField Solutions

Pénzügyi cégeknél és kreátor-eszközöknél is építettem már olyan rendszereket, amik nap mint nap élesben futnak. Budapesttől San Franciscóig · startupoknak és nagyobb vállalatoknak egyaránt.

Folytatás
HASONLÓ TÉMÁJÚ PROJEKTEK
Beszéljünk

Inkább építenénk együtt?

Beszéljünk a projektedről. 30 perc, nincs kötelezettség.