Chapter 9 / 9
Hands-on lab plan
You learn Amplitude by asking questions of your own data, not by reading. This plan aims, over four weeks, to set up a test project from scratch, connect it with Adjust and run a discrepancy analysis.
- 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
Week 1: model
- Create a free Amplitude account and two projects:
guide-testandguide-prod. Use only the test project throughout this guide; the second one is there to make environment separation a habit. - 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).
- Fill in the "question it serves" column for each event. Drop any event where you can't.
- 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
- Integrate the Web SDK, or the platform SDK of your app, with the test project's key.
- Add the SDK events from your plan; wire
setUserIdto login andresetto logout. - Send at least one event (e.g.
Checkout Completed) only through the HTTP API, with aninsert_id. - Run the validation checklist from Chapter 6 one item at a time using user lookup and the ingestion debugger.
- 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.
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.
| Chart | Sample question | Setting to experiment with |
|---|---|---|
| Segmentation | How many people view products per day? | Switch between uniques and totals, break down by platform |
| Funnel | What is cart-to-payment conversion? | Conversion window, step order, holding product_id constant |
| Retention | Do people who signed up return on day 7? | The difference between "on day N" and "on day N or later" |
| Journeys | What do users do before paying? | Choosing start and end events |
| Cohort | Who abandons their cart? | The "did and did not" condition |
| Stickiness / Lifecycle | How 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
- If your test app has the Adjust SDK, set up the integration following Adjust's Amplitude partner documentation and make sure identities match.
- Install from a tracker link on a test device; check that user's attribution user properties in Amplitude user lookup.
- Break your retention and funnel charts down by the attribution field.
- 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.
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_iddeduplication 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.