User browses your website anonymously. The Web SDK generates a visitor ID and sends a page_view event.
Same person opens your mobile app on their phone. The Android SDK sends a screen_view with a different device ID. Two separate profiles now exist.
User taps a link in the app that opens a WebView. The Android SDK injects the device ID into localStorage. The Web SDK reads it and sends it as bridgeId. Profiles merge — no login needed.
User logs in on the website. The Web SDK calls identify() with their userId. The web profile now has a known identity.
User logs in on the app too. The app SDK calls identify() with the same userId. Both profiles share "john" — identity merge triggered!
User keeps browsing across platforms. All events land under the same unified profile.