Amplitude öğrenme kılavuzu
Bu bölümün sonunda
  • SDK, HTTP API, entegrasyon ve warehouse yollarının ne zaman kullanıldığını bileceksin.
  • Mobil, web ve backend için temel kod kalıplarını okuyabileceksin.
  • Aynı sinyali iki yoldan gönderip çift saymanın nasıl önleneceğini bileceksin.

Genel akış

Her kaynak tek kullanıcı kimliğinde birleşir, analiz oradan çıkar Mobil SDKiOS, Android, React Native, Flutter Web SDKTarayıcı event'leri HTTP APIBackend'den event'ler Adjust entegrasyonuAttribution → user property Warehouse importSnowflake, BigQuery vb. Amplitude projesi Event'ler + property'ler User property'ler Kimlik birleştirme device_id + user_id → Amplitude ID Analiz chart'larıFunnel, retention, path Cohort senkronuReklam ve CRM araçlarına Warehouse exportHam event verisi
Her giriş yolu aynı projeye yazar. Bir event'i hangi kapıdan gönderdiğin, onun hangi kullanıcıya ve hangi oturuma bağlanacağını etkiler.

SDK ve S2S: iki aracın aynı ayrımı

Adjust'ta bildiğin kural burada da geçerli: davranış event'leri cihazdan, doğrulanmış para event'leri ve uygulama kapalıyken olan event'ler sunucudan gelir.

Cihazdan Uygulama Adjust SDK Amplitude SDK Ekran, tıklama, arama, sepete ekleme, onboarding adımları. Oturum ve cihaz bilgisi otomatik eklenir. Sunucudan Backend Adjust S2S Amplitude HTTP API Doğrulanmış satın alma, abonelik yenileme, iade, uygulama kapalıyken olan her şey. Cihaz bilgisi yoktur, kimliği sen verirsin.
Tipik bir müşteri kurulumunda aynı uygulama her iki araca da hem cihazdan hem sunucudan veri gönderir. Hangi event'in hangi yoldan gittiğine iki araç için ayrı ayrı karar verilir.
Event türüÖnerilen yolNeden
Ekran görüntüleme, tıklama, aramaSDKOturum ve cihaz bağlamı otomatik gelir
Onboarding adımlarıSDKLogin öncesi anonim davranış ölçülür
Satın alma (doğrulanmış)HTTP API, backend doğruladıktan sonraSahte veya iptal edilen işlemler sayılmaz
Abonelik yenileme, iadeHTTP APIKullanıcı uygulamada değilken olur
CRM'den gelen durum değişikliği (ör. plan yükseltme)HTTP API veya identify çağrısıKaynağı backend'dir
Çift sayım

Aynı satın almayı hem SDK'dan Purchase, hem backend'den Purchase olarak gönderirsen iki event olur. Ya tek yol seç, ya da adlarını ayır (Purchase Attempted cihazdan, Purchase Completed sunucudan). Sunucu tarafında aynı event'in yeniden gönderilmesine karşı her event'e benzersiz bir insert_id ver.

Kod kalıpları

Her SDK'da aynı dört temel işlem vardır: başlat, event gönder, kullanıcıyı tanımla, user property güncelle. Aşağıdaki örnekler bu dördünü yan yana gösterir.

import * as amplitude from '@amplitude/analytics-browser';

// 1. Initialize once, as early as possible
amplitude.init('YOUR_API_KEY');

// 2. Track an event with properties
amplitude.track('Product Viewed', {
  product_id: 'SKU-1042',
  category: 'headphones',
  price: 49.9,
});

// 3. Identify the user after login
amplitude.setUserId('cust_88231');

// 4. Update persistent user properties
const identify = new amplitude.Identify();
identify.set('plan', 'premium');
identify.setOnce('signup_date', '2026-11-04');
identify.add('orders_count', 1);
amplitude.identify(identify);

// Revenue as a dedicated call
const revenue = new amplitude.Revenue()
  .setProductId('SKU-1042')
  .setPrice(49.9)
  .setQuantity(1);
amplitude.revenue(revenue);
Doğrula

SDK paket adları, metot imzaları ve başlatma seçenekleri sürümden sürüme değişir; özellikle eski (legacy) ve yeni nesil SDK'lar arasında fark büyüktür. Bir müşteri entegrasyonunda kullanmadan önce projedeki SDK sürümünün dokümanına bak. HTTP API'de EU veri yerleşimi için farklı bir endpoint kullanılır; büyük hacimler için ayrı bir batch endpoint'i vardır.

Sunucu event'lerinde dikkat edilecekler

  • Kimlik: Sunucu event'ini doğru kişiye bağlamak için cihazdaki user_id ile aynı değeri gönder. Sadece login olmuş kullanıcıların sunucu event'i doğru bağlanır.
  • Zaman: time alanı event'in gerçekleştiği andır (milisaniye). Gönderdiğin an değil.
  • Tekrar gönderim: Hata sonrası tekrar denemelerde aynı insert_id kullan; Amplitude belirli bir süre içinde aynı insert_id'yi tek event sayar.
  • Oturum: Sunucu event'leri kullanıcının uygulama oturumuna ait değildir; oturum süresi gibi metrikleri etkilememeleri beklenir.
Adjust tarafında

Adjust S2S'de event'i doğru cihaza bağlamak için cihaz tanımlayıcıları (ADID, IDFA/GAID vb.) gerekir; kimlik olmayan S2S event'i eşleşmez. Amplitude HTTP API'de bunun karşılığı user_id veya device_id'dir. Aynı backend her iki araca da gönderiyorsa, iki farklı kimlik setini birlikte saklaması gerekir.

SDK event'leri ne zaman görünür?

SDK'lar event'leri anında göndermez; cihazda kuyruğa alır ve belirli bir sayıya ya da süreye ulaşınca toplu gönderir. İnternet yoksa bekletir. Bu yüzden bir event'in Amplitude'a ulaşması saniyeler, çevrimdışı senaryoda saatler sürebilir; ama time alanı her zaman event'in gerçekleştiği anı taşır.

İpucu

Entegrasyon testinde event'i chart'larda aramak yerine user lookup ve ingestion debugger ekranlarını kullan. Bunlar Adjust Testing Console'un karşılığıdır ve event'in gelip gelmediğini, hangi property'lerle geldiğini neredeyse anında gösterir.

Ortamlar: sandbox nerede?

Adjust'ta sandbox ve production aynı uygulamanın içinde, bir filtreyle ayrılır. Amplitude'da yaygın uygulama, geliştirme ve production için ayrı projeler açmaktır. Her projenin kendi API key'i vardır; build konfigürasyonu hangi key'in kullanılacağını belirler.

Sık yapılan hata

Geliştirme build'inin production API key'iyle çıkması. Test event'leri gerçek veriye karışır ve geri temizlemek zordur. Key'i build ortamına göre seçen bir yapı kur ve yayından önce kontrol et.

Warehouse ile çalışma

Veri zaten bir warehouse'ta varsa (ör. backend event'leri BigQuery'de), Amplitude oradan veri içeri alabilir. Ters yönde, Amplitude'daki ham event'ler analiz ve yedekleme için warehouse'a aktarılabilir. Ryze'ın API-to-warehouse connector işleriyle en çok kesişen kısım burasıdır.

Doğrula

Desteklenen warehouse kaynak ve hedefleri, senkronizasyon sıklığı ve hangi planda olduğu değişebilir. Güncel listeyi Amplitude'un entegrasyon kataloğundan kontrol et.

Alıştırma

Ücretsiz bir test projesi aç. Basit bir HTML sayfasına Web SDK'yı ekle, bir butona track, bir "giriş yap" butonuna setUserId bağla. Sonra aynı kullanıcı için terminalden yukarıdaki HTTP API örneğiyle bir sunucu event'i gönder. User lookup ekranında üç event'in de aynı kişinin akışında göründüğünü doğrula.