> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt # Kotlin Multiplatform web analytics installation - Docs Copy page # Kotlin Multiplatform web analytics installation - Docs 1. 1 ## Install the dependency Required Add the PostHog KMP SDK to your shared module's `commonMain` source set: shared/build.gradle.kts PostHog AI ```kotlin kotlin { sourceSets { commonMain.dependencies { implementation("com.posthog:posthog-kmp:0.+") } } } ``` `0.+` resolves to the latest `0.x` release. The SDK is a pre-release, so the API can change between minor versions – pin an exact version from [Maven Central](https://central.sonatype.com/artifact/com.posthog/posthog-kmp) if you would rather upgrade deliberately. Kotlin/Wasm support requires `0.2.0` or higher. 2. 2 ## Configure PostHog Required Call `PostHog.setup()` once, early in your app's lifecycle. The config is shared across every target – only the `PostHogContext` differs per platform. ## Tab Android needs the `Application` instance, so set PostHog up from your `Application` class – not from an Activity, whose `onCreate` re-runs on every recreation (for example, on rotation): MyApplication.kt PostHog AI ```kotlin import android.app.Application import com.posthog.kmp.PostHog import com.posthog.kmp.PostHogConfig import com.posthog.kmp.PostHogContext class MyApplication : Application() { override fun onCreate() { super.onCreate() PostHog.setup( config = PostHogConfig( apiKey = "", host = "https://us.i.posthog.com", ), context = PostHogContext(this), ) } } ``` Register the class in your `AndroidManifest.xml`: android/src/main/AndroidManifest.xml PostHog AI ```xml ``` ## Tab On iOS, use the no-argument `PostHogContext()`: MainViewController.kt PostHog AI ```kotlin import com.posthog.kmp.PostHog import com.posthog.kmp.PostHogConfig import com.posthog.kmp.PostHogContext fun MainViewController() = ComposeUIViewController { LaunchedEffect(Unit) { PostHog.setup( config = PostHogConfig( apiKey = "", host = "https://us.i.posthog.com", ), context = PostHogContext(), ) } App() } ``` ## Tab On the web (Kotlin/JS and Kotlin/Wasm), use the no-argument `PostHogContext()`: main.kt PostHog AI ```kotlin import com.posthog.kmp.PostHog import com.posthog.kmp.PostHogConfig import com.posthog.kmp.PostHogContext fun main() { PostHog.setup( config = PostHogConfig( apiKey = "", host = "https://us.i.posthog.com", ), context = PostHogContext(), ) } ``` ## Tab On the JVM – for example, a Compose Multiplatform desktop app – use the no-argument `PostHogContext()`: main.kt PostHog AI ```kotlin import com.posthog.kmp.PostHog import com.posthog.kmp.PostHogConfig import com.posthog.kmp.PostHogContext fun main() = application { PostHog.setup( config = PostHogConfig( apiKey = "", host = "https://us.i.posthog.com", ), context = PostHogContext(), ) // ... } ``` 3. 3 ## Track screen views Recommended Despite the name, the web analytics dashboard can be used to track screen views in mobile apps, too. Open your app and view some screens to generate some events. Screen views are off by default. Set `captureScreenViews = true` to capture them automatically – screen views on Android and iOS, pageviews on the web: Kotlin PostHog AI ```kotlin PostHogConfig( apiKey = "", host = "https://us.i.posthog.com", captureScreenViews = true, ) ``` You can also capture a screen view yourself from shared code: Kotlin PostHog AI ```kotlin import com.posthog.kmp.PostHog PostHog.screen( screenName = "Dashboard", properties = mapOf( "background" to "blue" ) ) ``` 4. 4 ## Next steps Recommended After installing PostHog and ensuring [autocapture](/docs/product-analytics/autocapture.md) is enabled, head to your [web analytics dashboard](/docs/web-analytics/dashboard.md) to see your data. And then check out our [start here](/docs/web-analytics/start-here.md) guide. > **PostHog tip:** Web analytics works with [anonymous events](/docs/data/anonymous-vs-identified-events.md). This means if you are primarily using PostHog for web analytics, it can be significantly cheaper for you. ### Still have questions? Ask PostHog AI ### Was this page useful? HelpfulCould be better