Quick answer
An SDK (software development kit) is a package of libraries, documentation, sample code and tools that lets developers add a platform’s or service’s capability to their own software, often by wrapping that service’s API.
What is an SDK?
An SDK (software development kit) is a package of code and tools that lets developers add a capability to their own software without building it from scratch. A typical SDK includes a library you call from your code, documentation, sample code, and sometimes build tools or a test app.
Payment SDKs add checkout, map SDKs add maps, and analytics SDKs add event tracking: they record what users do in a website or app and send it to an analytics service.
SDK vs API vs library
| Term | What it is | Example |
|---|---|---|
| API | A defined interface for asking a service to do something, usually over HTTP | POST /events with a JSON body |
| Library | Reusable code for one job, called from your program | A date-formatting library |
| SDK | A kit around one platform or service: libraries, docs, samples, tools, often wrapping an API | An Android analytics SDK that batches events and calls the collect API |
| Framework | A structure that calls your code and controls the flow | React, Flutter |
The short version: an API is the door, an SDK is the toolkit that makes using the door easy and safe. You can always call an analytics API directly; the SDK handles the parts that are easy to get wrong.
What an analytics SDK does for you
Taking TapCub's client SDKs as a concrete example, an analytics SDK typically handles:
- Automatic events. App launch, foreground and background, screen views, clicks and crashes, without writing tracking code for each.
- Queueing and batching. Events are stored locally and sent in batches. TapCub's Android SDK keeps up to 10,000 events for 7 days in a local queue, so data survives offline periods.
- Retry with backoff. Rate limits, server errors and network failures are retried from 1 second up to 5 minutes, instead of losing the batch.
- Identity. A device or visitor id, and a login call that links anonymous activity to a known user.
- Consent timing. A two-step start: store the configuration first with no collection and no network, then begin sending only after the user accepts the privacy policy.
- Remote configuration. Sampling or switches changed in the console without shipping a new app version.
Initializing TapCub's Android SDK shows the two steps:
class App : Application() {
override fun onCreate() {
super.onCreate()
TapCub.preInit(this, TapCubConfig(siteKey = "YOUR_SITE_KEY"))
}
}
// after the user accepts the privacy policy
TapCub.init()
Types of analytics SDKs
| Type | Runs in | Examples in TapCub |
|---|---|---|
| Web | The browser | client.js script tag; Vue, React, Next.js and Nuxt reuse it |
| Native mobile | iOS and Android apps | Swift package, Android library on Maven Central |
| Cross-platform | One codebase, several platforms | React Native, Flutter, uni-app packages |
| Mini program | WeChat, Alipay and Douyin mini programs | One npm package with per-platform entries |
| Server | Your backend | Node.js, PHP, Python, Java and Go libraries for server-side events |
Client SDKs see user behavior directly but can be blocked, delayed or lost. Server SDKs are reliable for business events such as orders and sign-ups but do not see clicks. Most products use both; see server-side tracking.
How to evaluate an SDK before you add it
- Size and performance. How much does it add to the app or page, and does it run work on the main thread?
- Permissions and data. What device data does it read, and can you turn parts off? Check against your privacy policy.
- Offline behavior. Does it queue and retry, and how much does it keep?
- Consent controls. Can collection wait for consent without losing the cold start?
- Maintenance. Release history, supported OS versions, open issues, changelog.
- Escape hatches. Can you disable it remotely or send events through an API instead?
Common SDK problems
- Initialized too late. Calling setup after the first screen loses the launch and first screen view.
- Unregistered app id. Many services silently drop data from apps they do not recognize.
- Duplicate SDKs. Two analytics SDKs, or the same one initialized twice, double-count events.
- Version drift. Old app versions in the wild keep old tracking behavior for months; plan for it in your tracking plan.
See also: Native app.
Sources
- Amazon Web Services. What is an SDK?
- Wikipedia. Software development kit.
- TapCub documentation. SDK overview.
Was this explanation clear?
We use your answers to fix and expand this page.
Couldn’t send. Please try again in a minute.
Thanks for the feedback. We’ll use it to improve this page.You’ve already sent feedback on this page. Thanks.

Technical Engineer
Focuses on tracking code, SDKs, and API integrations, with practical guidance on implementation checks and troubleshooting.