Bölüm 3 / 9
Kimlik mantığı: "kullanıcı" kimdir?
Amplitude'da analizlerin birimi cihaz değil kişidir. Aynı kişinin telefonunu, tabletini ve web tarayıcısını tek kullanıcıda toplamak için kimlikleri birleştirir. Adjust'tan sonra en çok kafa karıştıran ve en pahalı hataların yapıldığı yer burasıdır.
- device_id, user_id ve Amplitude ID'nin ne olduğunu ve kimin ürettiğini bileceksin.
- Birleştirmenin (merge) adım adım nasıl olduğunu izleyebileceksin.
- Hangi user_id hatalarının binlerce kişiyi tek kullanıcıya çevirdiğini tanıyacaksın.
Üç kimlik
| Kimlik | Kim üretir | Ne zaman vardır | Neyi temsil eder |
|---|---|---|---|
device_id | SDK (cihaz veya tarayıcı için) | İlk açılıştan itibaren, login olmadan da | Bir cihaz veya tarayıcı |
user_id | Sen, kendi müşteri sisteminden | Kullanıcı login olunca sen set edersin | Bir müşteri hesabı |
| Amplitude ID | Amplitude, ikisini eşleştirerek | Her zaman | Analizde sayılan "kişi" |
Adjust'ta ADID bir uygulamadaki bir cihazı temsil eder ve cihazlar arası birleştirme yapılmaz: aynı kişinin telefonu ve tableti iki ayrı install'dır. Amplitude'da aynı kişi, aynı user_id ile login olduğu sürece tek kullanıcıdır. İki aracın kullanıcı sayıları bu yüzden yapısal olarak farklıdır.
Birleştirmeyi adım adım izle
Aşağıdaki senaryoda bir müşteri önce telefondan, sonra tabletten uygulamayı kullanıyor. Adımlar arasında geçiş yaparak hangi event'in hangi Amplitude ID'ye ait olduğunu izle.
| Event | Cihaz | device_id | user_id | Amplitude ID |
|---|
Birleştirmenin kuralları
- Anonim → tanımlı: Bir cihazda login öncesi oluşan event'ler, aynı cihazda
user_idset edildiğinde o kişiye bağlanır. Onboarding'i login'den önce ölçebilmenin nedeni budur. - Cihazlar arası: Farklı cihazlarda aynı
user_idgörülünce bu cihazlar tek kişide birleşir. - İki farklı user_id birleşmez: Aynı cihazda farklı bir
user_idile login olunursa o yeni bir kişi olarak ele alınır. Sorun, login'ler arasındaki anonim event'lerin kime yazıldığıdır.
Birleştirmenin kesin kuralları (özellikle aynı cihazda kullanıcı değişince ne olduğu, birleşmeden önceki "new user" sayımının geriye dönük nasıl göründüğü ve yanlış bir birleştirmenin geri alınıp alınamadığı) Amplitude'un kimlik dokümanında anlatılıyor. Müşteriye kesin cümle kurmadan önce oradan kontrol et.
Cihaz, kişi, login: aynı kitle üç farklı sayı
Bir uygulamanın aynı haftası üç farklı birimle sayıldığında üç farklı sayı çıkar. Hangisinin "doğru" olduğu sorulan soruya bağlıdır.
user_id set edilmiş olanların alt kümesidir.Pahalı hatalar
Kimlik hataları sessizdir: event'ler gelmeye devam eder, chart'lar dolar, ama sayılar yanlış kişilere yazılır. En sık görülenler:
Yapma
setUserId('guest'),'0','null','undefined'gibi ortak değerler: herkes tek kişide birleşir- E-posta adresini
user_idyapmak: değişebilir ve kişisel veridir - Login öncesi geçici bir ID set edip sonra gerçek ID'ye geçmek
- Logout'ta kimliği sıfırlamamak
- iOS ve Android'de farklı formatta ID (
88231vecust_88231)
Yap
- Backend'deki değişmeyen, benzersiz müşteri ID'sini kullan
- Kullanıcı gerçekten login olmadan
user_idset etme - Logout'ta SDK'nın reset fonksiyonunu çağır
- Tüm platformlarda ve HTTP API'de aynı ID formatı
- Yayından önce user lookup ekranında birkaç test kullanıcısını kontrol et
Birleştirme çoğu durumda geriye dönük düzeltilemez. 'guest' ile birleşmiş binlerce kişinin geçmiş verisi tek bir "süper kullanıcı" olarak kalır ve o dönemin retention, funnel ve kullanıcı sayıları güvenilmez olur.
Amplitude bazı açıkça geçersiz ID değerlerini engelleyebiliyor ve user_id / device_id için bir minimum uzunluk kuralı uyguluyor. Güncel listeyi ve kuralı HTTP API dokümanından kontrol et.
Logout örneği
import * as amplitude from '@amplitude/analytics-browser';
// On login: link this device to the backend customer ID
amplitude.setUserId('cust_88231');
// On logout: clear user_id and start a fresh device_id,
// so the next person's events are not written to this user
amplitude.reset();"New user" install değildir
Amplitude'da yeni kullanıcı, bir Amplitude ID'nin ilk görüldüğü andır. Adjust'ta install ise bir cihazın ilk oturumudur. Bu yüzden aşağıdaki durumlarda iki sayı ayrışır:
| Durum | Adjust | Amplitude |
|---|---|---|
| Kişi ikinci cihazına kurdu ve login oldu | Yeni install | Birleşir, aynı kişi |
| Kişi önce web'i kullandı, sonra uygulamayı kurdu (aynı user_id) | Yeni install | Mevcut kullanıcı |
| Amplitude SDK'sı consent sonrasında başlatılıyor, kullanıcı reddetti | Kendi consent kurallarına göre | Hiç görülmez |
| Amplitude SDK'sı ilk ekrandan sonra başlatılıyor, kullanıcı hemen çıktı | Install | Hiç görülmez |
Bölüm 7 bu farkları bir discrepancy analizinde nasıl ayrıştıracağını gösteriyor.
Bir test projesinde aynı user_id ile önce bir tarayıcıdan, sonra gizli pencereden login ol. User lookup ekranında iki cihazın tek kullanıcıda birleştiğini gör. Sonra logout'ta reset() çağırmadan başka bir test hesabıyla login ol ve aradaki event'lerin kime yazıldığını incele.