Amplitude learning guide
What you will have at the end
  • A tracking plan and a test app sending data according to it.
  • At least one saved chart of each type and a dashboard.
  • A measured waterfall between Adjust installs and Amplitude new users.

The four-week path

Each week uses the output of the previous one Week 1 · Model Chapters 1–3 Open a test projectWrite a tracking planTry identity scenarios Week 2 · Data Chapters 4 and 6 Integrate SDK + HTTP APIRun the validation listGenerate sample data Week 3 · Analysis Chapter 5 One chart of each typeDefine a cohortBuild a dashboard Week 4 · Connect Chapter 7 Set up Adjust integrationChannel-level analysisBuild the waterfall
The weeks are a guide; what really counts is having each week's output ready.

Week 1: model

  1. Create a free Amplitude account and two projects: guide-test and guide-prod. Use only the test project throughout this guide; the second one is there to make environment separation a habit.
  2. Write a tracking plan of 8–10 events using the template in Chapter 6. Target an app you have, or a simple web page if you don't (e.g. product list, product detail, cart, checkout).
  3. Fill in the "question it serves" column for each event. Drop any event where you can't.
  4. Write down the identity scenarios from Chapter 3 for your own app: where is login, where is logout, is there a shared device?

Week 2: data

  1. Integrate the Web SDK, or the platform SDK of your app, with the test project's key.
  2. Add the SDK events from your plan; wire setUserId to login and reset to logout.
  3. Send at least one event (e.g. Checkout Completed) only through the HTTP API, with an insert_id.
  4. Run the validation checklist from Chapter 6 one item at a time using user lookup and the ingestion debugger.
  5. Generate sample data so there is something to analyse: repeat the flows from different browsers and test accounts over a few days, or send timestamped synthetic events from a script via the HTTP API.
Careful

Send synthetic data only to the test project. Synthetic events sent to the production project permanently pollute real analysis.

Week 3: analysis

For each chart type, first write the question, then guess the answer, then build the chart.

ChartSample questionSetting to experiment with
SegmentationHow many people view products per day?Switch between uniques and totals, break down by platform
FunnelWhat is cart-to-payment conversion?Conversion window, step order, holding product_id constant
RetentionDo people who signed up return on day 7?The difference between "on day N" and "on day N or later"
JourneysWhat do users do before paying?Choosing start and end events
CohortWho abandons their cart?The "did and did not" condition
Stickiness / LifecycleHow often do users come?Weekly vs daily view

Collect your saved charts in a dashboard and write in each chart's description which question it answers.

Week 4: connecting with Adjust

  1. If your test app has the Adjust SDK, set up the integration following Adjust's Amplitude partner documentation and make sure identities match.
  2. Install from a tracker link on a test device; check that user's attribution user properties in Amplitude user lookup.
  3. Break your retention and funnel charts down by the attribution field.
  4. Take Adjust installs and Amplitude new users for the same period and build the waterfall from Chapter 7 with your own data. Write the evidence for each bar; list separately what you can't measure.
Tip

If you have an app you are developing, using it as the test environment is the most efficient route: real screens and real flows bring up the questions to ask while you write the plan.

Check yourself

Say your own answer in one sentence before revealing it.

Why doesn't Amplitude replace an MMP on mobile?

It does no attribution matching with ad networks, doesn't manage SKAN and doesn't send postbacks to networks. It takes the source from the MMP.

Is a subscription plan an event property or a user property?

A user property. It is the person's state and applies to every later event until it changes. It is not context specific to one event.

What happens if, on upgrade, Subscription Started is sent first and the plan update second?

That event itself carries plan = free, because each event is stamped with the user property value at the moment it happened.

Why is setUserId('guest') dangerous?

Everyone who gets this value merges into one person. The merge usually can't be undone, and all user-level metrics for that period are corrupted.

Why might the same funnel give different conversion on two dashboards?

The conversion window, step order setting, counting unit or date range/timezone may differ. Compare those four settings first.

Adjust shows 10,000 installs, Amplitude 8,700 new users. What is your first step?

Not tying the gap to a single cause, but breaking it into independent ones: multiple devices, SDK init timing, consent, timezone and so on. Measure each, classify it, and state the unexplained remainder separately.

What to verify before passing it on to a client

The concepts in this guide are stable. The items below can change with version, plan or UI; check the current documentation before using them in client work.

  • How identity matching is set up in the Adjust–Amplitude integration, and which fields arrive under which names
  • Identity merge rules, minimum ID length and blocked ID values
  • Package name and method signatures of the SDK version in use
  • HTTP API endpoints (by data region) and the insert_id deduplication window
  • Session definition and default timeout values
  • Current names of charts (especially Journeys / Pathfinder) and retention definitions
  • Names of governance tools and which of them apply retroactively
  • Free plan limits and which feature is in which plan

Resources

  • Amplitude developer and product documentation: amplitude.com/docs
  • Amplitude's free training platform (Amplitude Academy): search the Amplitude site for the course and certification list
  • Adjust Help Center, Amplitude partner page: help.adjust.com

This guide was written without checking the live documentation; confirm the links and page names are current when you open them.