docs: add a Branch/AppsFlyer comparison and a status section - #20
Merged
Merged
Conversation
The most common way someone finds this project is searching for an open-source Branch alternative, and the README never addressed the comparison — so a reader had no way to judge fit without reading the source. Leads with scope, because that's what decides fit: Branch and AppsFlyer are MMPs, this is the deferred-deep-linking and referral-attribution slice of them, self-hosted. Names what you give up (ad-network attribution, dashboard, fraud detection, Universal Links setup, support) before what you gain. Also records that the SDK runs in production at Sparkle, and that the iOS fingerprint match rate shouldn't be compared directly against a commercial MMP's published numbers — they score against signal pooled across their whole install base, this only ever sees your own clicks. Pricing figures are hedged as third-party reports; neither vendor publishes list pricing.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The most common way someone finds this project is searching for an open-source Branch alternative, and the README never addressed that comparison — so a reader had no way to judge fit without reading the source.
What it says
Leads with scope, because that's what actually decides fit: Branch and AppsFlyer are mobile measurement platforms; this is the deferred-deep-linking and referral-attribution slice of them, self-hosted. If you're attributing paid UA spend, you need an MMP and this isn't one.
Names what you give up before what you gain — no ad-network attribution, no dashboard, no fraud detection, no support SLA, you run the infrastructure. Overselling would generate issues from people who adopted it expecting an MMP, which costs more than the traffic is worth.
Calls out the Universal Links gap explicitly. It's a headline Branch feature and the most likely source of surprise: Branch hosts the AASA and
assetlinks.jsonfiles and handles domain verification; here that's yours. The landing page's custom-scheme app-open attempt is deliberately inert (decisions.md #27), and the section says so, while clarifying that deferred deep linking itself is unaffected since it runs after install rather than at link-tap.Qualifies the iOS match-rate figure. The README quotes ~85–90%. That's what one self-hosted deployment sees; Branch and AppsFlyer score against signal pooled across their entire SDK install base. Structural difference in available signal, not a tuning gap — worth saying before someone benchmarks and feels misled.
Adds a Status section recording that the SDK runs in production at Sparkle on the PHP backend, with a link to a real production referral link so readers can watch the live flow rather than take it on faith.
On the pricing figures
Neither vendor publishes list pricing, so every number is hedged as a third-party report and the section tells readers to check directly. That way it degrades into "this was reported once" rather than a false claim as pricing shifts.
Sources consulted: Branch (Vendr), Branch breakdown (Chottulink), AppsFlyer (Vendr), AppsFlyer breakdown (Tolinku)