<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Goodlabs Wiki</title>
    <link>https://goodlabs.kz/wiki/</link>
    <description>Field notes on growth analytics, server-side tracking and attribution — fintech, superapps and e-commerce.</description>
    <language>en</language>
    <lastBuildDate>Thu, 30 Jul 2026 12:00:00 GMT</lastBuildDate>
    <atom:link href="https://goodlabs.kz/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Superapp analytics: four ways measurement breaks inside a native shell, and what holds</title>
      <link>https://goodlabs.kz/wiki/superapp-analytics/</link>
      <guid isPermaLink="true">https://goodlabs.kz/wiki/superapp-analytics/</guid>
      <pubDate>Thu, 30 Jul 2026 12:00:00 GMT</pubDate>
      <description>A superapp is not a website and not an app - it is a native shell full of WebViews, and every standard measurement assumption breaks at the boundary. The four problems, in the order they bite, and the three rules that hold across all of them.</description>
      <category>superapp</category>
      <category>webview</category>
      <category>attribution</category>
      <category>banking</category>
      <category>mobile-growth</category>
      <category>hub</category>
    </item>
    <item>
      <title>GA4 vs Amplitude for a superapp: what the licence costs you, and what the taxonomy costs you</title>
      <link>https://goodlabs.kz/wiki/ga4-vs-amplitude-superapp/</link>
      <guid isPermaLink="true">https://goodlabs.kz/wiki/ga4-vs-amplitude-superapp/</guid>
      <pubDate>Tue, 28 Jul 2026 12:00:00 GMT</pubDate>
      <description>GA4 is free until superapp volume turns its quotas into your architecture. A comparison grounded in a 200-event cleanup, a vendor-selection memo, and the published limits of both tools.</description>
      <category>ga4</category>
      <category>amplitude</category>
      <category>product-analytics</category>
      <category>superapp</category>
      <category>vendor-selection</category>
      <category>banking</category>
    </item>
    <item>
      <title>AppsFlyer vs Adjust vs Firebase-only: when an MMP is actually worth paying for</title>
      <link>https://goodlabs.kz/wiki/appsflyer-adjust-firebase-mmp/</link>
      <guid isPermaLink="true">https://goodlabs.kz/wiki/appsflyer-adjust-firebase-mmp/</guid>
      <pubDate>Tue, 28 Jul 2026 12:00:00 GMT</pubDate>
      <description>Three tests for whether you need a measurement partner at all — and the two differences between AppsFlyer and Adjust that actually showed up in a banking S2S integration.</description>
      <category>mmp</category>
      <category>appsflyer</category>
      <category>adjust</category>
      <category>firebase</category>
      <category>mobile-attribution</category>
      <category>s2s</category>
      <category>skan</category>
    </item>
    <item>
      <title>Do you actually need a CDP? Four tests before you sign anything</title>
      <link>https://goodlabs.kz/wiki/do-you-need-a-cdp/</link>
      <guid isPermaLink="true">https://goodlabs.kz/wiki/do-you-need-a-cdp/</guid>
      <pubDate>Tue, 28 Jul 2026 12:00:00 GMT</pubDate>
      <description>Most &quot;we need a CDP&quot; conversations are a taxonomy problem, an identity problem, or an activation gap. Here is how to tell which one you have, and the cheaper architecture that closes three of the four.</description>
      <category>cdp</category>
      <category>dwh</category>
      <category>first-party-data</category>
      <category>reverse-etl</category>
      <category>identity</category>
      <category>capi</category>
    </item>
    <item>
      <title>Two hundred events, thirty-five that matter: rebuilding an Amplitude taxonomy at superapp scale</title>
      <link>https://goodlabs.kz/wiki/amplitude-event-taxonomy-superapp/</link>
      <guid isPermaLink="true">https://goodlabs.kz/wiki/amplitude-event-taxonomy-superapp/</guid>
      <pubDate>Tue, 28 Jul 2026 12:00:00 GMT</pubDate>
      <description>Two hundred events, eighteen prefixes, and nobody could answer how many people bought a policy last month. How a superapp event taxonomy collapses to thirty-five with one required parameter, why the money event has to leave the browser, and the migration step everyone skips.</description>
      <category>amplitude</category>
      <category>event-taxonomy</category>
      <category>product-analytics</category>
      <category>banking</category>
      <category>superapp</category>
      <category>data-governance</category>
    </item>
    <item>
      <title>GA4 has an AI Assistant channel now. It still won&apos;t tell you how much AI traffic you get</title>
      <link>https://goodlabs.kz/wiki/ga4-ai-assistant-traffic/</link>
      <guid isPermaLink="true">https://goodlabs.kz/wiki/ga4-ai-assistant-traffic/</guid>
      <pubDate>Tue, 28 Jul 2026 12:00:00 GMT</pubDate>
      <description>Google shipped a native AI Assistant channel in May 2026. It classifies on the referrer header - and roughly 70% of AI traffic arrives without one. What the native channel covers, the custom channel group that fills the gap, and how to size the part that lands in Direct forever.</description>
      <category>ga4</category>
      <category>ai-search</category>
      <category>attribution</category>
      <category>channel-grouping</category>
      <category>analytics</category>
    </item>
    <item>
      <title>Consent Mode v2 and server-side GTM: moving the tags didn&apos;t move the obligation</title>
      <link>https://goodlabs.kz/wiki/consent-mode-v2-server-side-gtm/</link>
      <guid isPermaLink="true">https://goodlabs.kz/wiki/consent-mode-v2-server-side-gtm/</guid>
      <pubDate>Tue, 28 Jul 2026 12:00:00 GMT</pubDate>
      <description>Going server-side changes where a tag fires, not whether it was allowed to - and it removes three safety nets that used to cover for a sloppy consent setup. How consent actually reaches the server container, why non-Google tags fire regardless, and the denied-state test nobody runs.</description>
      <category>consent-mode</category>
      <category>sgtm</category>
      <category>server-side</category>
      <category>gdpr</category>
      <category>pii</category>
      <category>data-governance</category>
    </item>
    <item>
      <title>What server-side GTM actually costs to run</title>
      <link>https://goodlabs.kz/wiki/sgtm-hosting-cost/</link>
      <guid isPermaLink="true">https://goodlabs.kz/wiki/sgtm-hosting-cost/</guid>
      <pubDate>Tue, 28 Jul 2026 12:00:00 GMT</pubDate>
      <description>Cloud Run&apos;s real floor is three instances, not one. Stape bills incoming requests, not events. Cloudflare stopped being a proxy-only option in April 2026. Published rates with the arithmetic shown - and the line items nobody puts on a pricing page.</description>
      <category>sgtm</category>
      <category>server-side</category>
      <category>cloud-run</category>
      <category>stape</category>
      <category>cloudflare</category>
      <category>infrastructure</category>
    </item>
    <item>
      <title>Attribution inside a SuperApp WebView: getting the source into Amplitude without polluting the paid channel</title>
      <link>https://goodlabs.kz/wiki/webview-attribution-product-analytics/</link>
      <guid isPermaLink="true">https://goodlabs.kz/wiki/webview-attribution-product-analytics/</guid>
      <pubDate>Fri, 24 Jul 2026 12:00:00 GMT</pubDate>
      <description>Your service runs inside a SuperApp WebView, paid traffic arrives on ad-origin deep links, and a kill-switch has already killed the browser pixel. How to capture attribution off the launch URL and native getAttribution() into Amplitude, gate it to ad-origin traffic so it doesn&apos;t poison the paid channel, and run a separate server-side layer for ROAS.</description>
      <category>superapp</category>
      <category>webview</category>
      <category>amplitude</category>
      <category>attribution</category>
      <category>adjust</category>
      <category>server-side</category>
    </item>
    <item>
      <title>Instagram and Facebook leads straight into your CRM, with a Cloudflare Worker instead of Zapier or a VPS</title>
      <link>https://goodlabs.kz/wiki/meta-lead-ads-crm-cloudflare-worker/</link>
      <guid isPermaLink="true">https://goodlabs.kz/wiki/meta-lead-ads-crm-cloudflare-worker/</guid>
      <pubDate>Tue, 14 Jul 2026 12:00:00 GMT</pubDate>
      <description>Meta Lead Ads captures the lead, then leaves it stuck inside Meta. A working bridge on a Cloudflare Worker: a stateless edge proxy that verifies the inbound signature, pulls the lead from the Graph API, dedups, DLQs the failures, and signs its handoff to the CRM - no server, and no third-party SaaS touching your PII.</description>
      <category>meta-lead-ads</category>
      <category>instagram</category>
      <category>cloudflare-worker</category>
      <category>crm</category>
      <category>webhook</category>
      <category>attribution</category>
    </item>
    <item>
      <title>Google Ads sees the leads but not the money: fixing a broken gclid chain</title>
      <link>https://goodlabs.kz/wiki/google-ads-leads-no-disbursements-gclid/</link>
      <guid isPermaLink="true">https://goodlabs.kz/wiki/google-ads-leads-no-disbursements-gclid/</guid>
      <pubDate>Mon, 13 Jul 2026 12:00:00 GMT</pubDate>
      <description>Your Google Ads account is full of leads but shows no revenue - almost always a broken gclid chain. Where a redirect tracker drops the click ID, how to reconnect it all the way to a server-side purchase with GA4 Measurement Protocol and Enhanced Conversions, and the deployment traps that bite on the way.</description>
      <category>google-ads</category>
      <category>gclid</category>
      <category>attribution</category>
      <category>sgtm</category>
      <category>enhanced-conversions</category>
      <category>measurement-protocol</category>
    </item>
    <item>
      <title>Tracking a funnel on a SPA you don&apos;t control, with a fetch/XHR interceptor in GTM</title>
      <link>https://goodlabs.kz/wiki/fetch-xhr-interceptor-spa-funnels/</link>
      <guid isPermaLink="true">https://goodlabs.kz/wiki/fetch-xhr-interceptor-spa-funnels/</guid>
      <pubDate>Mon, 06 Jul 2026 12:00:00 GMT</pubDate>
      <description>Someone else owns the SPA&apos;s front end, but you still need to qualify leads and gate conversions. Monkey-patching fetch and XMLHttpRequest inside GTM gets it done - how the interception works, how to build value-based bidding from what you intercept, and the day a front-end change broke the whole thing without a single error.</description>
      <category>gtm</category>
      <category>spa</category>
      <category>fetch-interceptor</category>
      <category>conversion-tracking</category>
      <category>value-based-bidding</category>
      <category>lead-qualification</category>
    </item>
    <item>
      <title>O2O Banking: connecting digital advertising to branch visits, loan disbursements, and deposits</title>
      <link>https://goodlabs.kz/wiki/banking-offline-branch-attribution/</link>
      <guid isPermaLink="true">https://goodlabs.kz/wiki/banking-offline-branch-attribution/</guid>
      <pubDate>Mon, 04 May 2026 12:00:00 GMT</pubDate>
      <description>An advanced online-to-offline attribution architecture for banks: click capture, branch handoff, CRM/OCRM ledger, offline conversion imports, Meta CAPI, value model, and QA for campaigns where the final sale happens in a branch.</description>
      <category>o2o</category>
      <category>banking</category>
      <category>offline-conversions</category>
      <category>crm</category>
      <category>google-ads</category>
      <category>meta-capi</category>
    </item>
    <item>
      <title>Deep links for a Halyk-class SuperApp: WebView services, cross-auth, and lossless UTM/MMP attribution</title>
      <link>https://goodlabs.kz/wiki/superapp-deeplinks-webview-attribution/</link>
      <guid isPermaLink="true">https://goodlabs.kz/wiki/superapp-deeplinks-webview-attribution/</guid>
      <pubDate>Mon, 04 May 2026 12:00:00 GMT</pubDate>
      <description>How to build deep-linking for a banking SuperApp with hundreds of WebView services: verified App Links, Universal Links, templates for deposits and payments, cross-authorization, and preserving UTM and MMP attributes across every transition.</description>
      <category>superapp</category>
      <category>deeplinks</category>
      <category>webview</category>
      <category>mmp</category>
      <category>app-links</category>
      <category>universal-links</category>
      <category>attribution</category>
    </item>
    <item>
      <title>A SuperApp cannot be grown on KYC alone: Firebase events, a value model, and tROAS for product growth</title>
      <link>https://goodlabs.kz/wiki/superapp-promotion-firebase-troas/</link>
      <guid isPermaLink="true">https://goodlabs.kz/wiki/superapp-promotion-firebase-troas/</guid>
      <pubDate>Mon, 04 May 2026 12:00:00 GMT</pubDate>
      <description>How to grow a Halyk-class banking SuperApp once registration and KYC already deliver users but the business needs transfers, loans, deposits, and purchases inside WebView services. We cover event taxonomy, value in Firebase, tROAS, and campaign structure.</description>
      <category>superapp</category>
      <category>firebase</category>
      <category>troas</category>
      <category>app-campaigns</category>
      <category>banking</category>
      <category>mobile-growth</category>
    </item>
    <item>
      <title>When TikTok and Instagram open your site inside the app: keeping attribution, events, and CAPI working without hacks</title>
      <link>https://goodlabs.kz/wiki/tiktok-instagram-inapp-browser-tracking/</link>
      <guid isPermaLink="true">https://goodlabs.kz/wiki/tiktok-instagram-inapp-browser-tracking/</guid>
      <pubDate>Mon, 04 May 2026 12:00:00 GMT</pubDate>
      <description>An in-app browser breaks the usual tracking model: the click is there, but the event, the cookie, and the purchase live in different contexts. We walk through a first-party bridge architecture, event_id, and server-side routing for Meta CAPI and TikTok Events API.</description>
      <category>in-app-browser</category>
      <category>tiktok</category>
      <category>instagram</category>
      <category>capi</category>
      <category>events-api</category>
      <category>server-side</category>
    </item>
    <item>
      <title>The end of rented audiences: why businesses are building their own DWHs and collecting First-Party Data</title>
      <link>https://goodlabs.kz/wiki/first-party-data-dwh/</link>
      <guid isPermaLink="true">https://goodlabs.kz/wiki/first-party-data-dwh/</guid>
      <pubDate>Sun, 05 Apr 2026 12:00:00 GMT</pubDate>
      <description>GDPR, CCPA, and the death of third-party cookies make dependence on Meta and Google dangerous. We look at how enterprise companies are saving marketing with the Modern Data Stack and Reverse ETL.</description>
      <category>dwh</category>
      <category>first-party-data</category>
      <category>cdp</category>
      <category>bigquery</category>
      <category>analytics</category>
    </item>
    <item>
      <title>The end of the Pixel era: why businesses should move to CAPI and CAPIG</title>
      <link>https://goodlabs.kz/wiki/meta-capi-capig/</link>
      <guid isPermaLink="true">https://goodlabs.kz/wiki/meta-capi-capig/</guid>
      <pubDate>Tue, 10 Mar 2026 12:00:00 GMT</pubDate>
      <description>Browser-side trackers lose up to 30% of data to ad blockers and iOS 14. We look at how Server-Side Tracking (CAPI) and the CAPIG gateway rescue analytics and cut CPA.</description>
      <category>capi</category>
      <category>capig</category>
      <category>meta</category>
      <category>server-side</category>
      <category>analytics</category>
    </item>
    <item>
      <title>How to connect online advertising with offline sales: building transparent O2O analytics</title>
      <link>https://goodlabs.kz/wiki/ocrm-o2o-sales-funnel/</link>
      <guid isPermaLink="true">https://goodlabs.kz/wiki/ocrm-o2o-sales-funnel/</guid>
      <pubDate>Sun, 22 Feb 2026 12:00:00 GMT</pubDate>
      <description>Stop judging ads only by leads. We walk through how to pipe data from Google Ads into the CRM (amoCRM/Bitrix24) and feed real sales back into analytics.</description>
      <category>crm</category>
      <category>analytics</category>
      <category>google-ads</category>
      <category>ga4</category>
      <category>o2o</category>
    </item>
    <item>
      <title>How SKAdNetwork actually works: an iOS analytics guide without rose-tinted glasses</title>
      <link>https://goodlabs.kz/wiki/skan-mmp-firebase/</link>
      <guid isPermaLink="true">https://goodlabs.kz/wiki/skan-mmp-firebase/</guid>
      <pubDate>Thu, 15 Jan 2026 12:00:00 GMT</pubDate>
      <description>We unpack the logic of SKAN, how its timers work, and how to relay data from the MMP into Firebase.</description>
      <category>skan</category>
      <category>ios</category>
      <category>mmp</category>
      <category>firebase</category>
      <category>analytics</category>
    </item>
  </channel>
</rss>
