Android'de paylaşım yaparken utm_campaign ekleme — hızlı rehber

Kerem Aydın·6 Temmuz 2026·⏱3 dk

Intent.ACTION_SEND oluşturulmadan önce utm_campaign'i dinamik olarak ekleyin: Uri.Builder ile URL'yi oluşturun, utm_source/utm_medium/utm_campaign parametrelerini ekleyin ve nihai metin dizisini Intent.EXTRA_TEXT içine yerleştirin. Aşağıda Kotlin ile hazır kod, test seçenekleri ve yaygın hatalar yer almaktadır.

Paylaşım sırasında utm_campaign neden önemlidir?

utm_campaign, yönlendirmeleri belirli bir pazarlama kampanyasına (örneğin black_friday_2026 veya new_user_promo) atfetmenizi sağlar. Etiketler olmadan mesajlaşma uygulamalarından gelen çoğu trafik "direct" olarak kaydedilir veya etiketlenmemiş kalır; bu durum GA4 raporlarını bozar ve performans değerlendirmesini zorlaştırır.

Android uygulamasına utm_campaign nasıl eklenir?

Adımlar:

  1. Temel URL'yi oluşturun.
  2. Parametreleri Uri.Builder ile ekleyin (parametreleri doğru şekilde kodlar).
  3. Nihai metin dizisini Intent ACTION_SEND içine yerleştirin ve chooser'ı çağırın.

Kotlin örneği:

val baseUrl = "https://example.com/product"
val campaign = "promo_2026" // Remote Config, veritabanı veya arayüzden alınabilir

val uri = Uri.parse(baseUrl).buildUpon()
    .appendQueryParameter("utm_source", "android_app")
    .appendQueryParameter("utm_medium", "share")
    .appendQueryParameter("utm_campaign", campaign)
    .build()

val shareIntent = Intent(Intent.ACTION_SEND).apply {
    type = "text/plain"
    putExtra(Intent.EXTRA_TEXT, uri.toString())
}
startActivity(Intent.createChooser(shareIntent, "Paylaş"))

Kısa seçenek özeti:

  • Dinamik değerler: utm_campaign'i Firebase Remote Config, sunucu veya anlık üretimle (kullanıcı kimliği/promo türü dahil) alın.
  • Mesaj metinlerine UTM eklemeniz gerekiyorsa (sadece link değil), uri.toString() öğesini gövdeye yerleştirin.
  • Uri.Builder parametreleri kendisi kodlar; çift kodlama kullanmayın.

Java örneği (mikro):

String baseUrl = "https://example.com/product";
String campaign = "promo_2026";

Uri uri = Uri.parse(baseUrl).buildUpon()
    .appendQueryParameter("utm_source", "android_app")
    .appendQueryParameter("utm_medium", "share")
    .appendQueryParameter("utm_campaign", campaign)
    .build();

Intent share = new Intent(Intent.ACTION_SEND);
share.setType("text/plain");
share.putExtra(Intent.EXTRA_TEXT, uri.toString());
startActivity(Intent.createChooser(share, "Paylaş"));

A/B testleri ve hızlı değişiklikler için utm_campaign değerini Firebase Remote Config'de saklamak uygundur — sürüm yayınlamadan kampanyayı değiştirebilirsiniz.

Test etme ve GA4 entegrasyonu

  • GA4'te Realtime / DebugView modunda test edin: emülatörde/cihazda mobil tarayıcı açın, paylaşımdan gelen linke tıklayın ve gelen olayı izleyin.
  • Linklerin query parametrelerini temizleyebilecek bir ara hizmet üzerinden yönlendirilmediğinden emin olun.
  • Üretim ortamı için: karmaşık yönlendirme durumlarında query parametrelerini koruyan sunucu tarafı yönlendirmeler kullanın veya yönlendirme sonrası etiketleri korumak için deep links / branch gibi çözümlerden yararlanın.

Trafiği kendinizin yönlendirdiği hedef açılış sayfasındaki dahili linklere utm parametreleri eklemeyin — bu durum self-referral'a yol açar ve atıf modelini bozar.

Yaygın hatalar

  • Yönlendirme sonrası UTM kaybolması: neden — yönlendirme query'yi sıfırlar. Çözüm — query'yi sunucu düzeyinde koruyacak şekilde yapılandırın veya doğru deep link kullanın.
  • Parametrelerin kodlanmamış olması: linki manuel olarak metne ekliyorsanız veya bot için deep link oluşturuyorsanız, değerleri her zaman URL-encode edin.
  • utm_campaign'in yinelenmesi: benzersiz tanımlayıcılar üretin veya kampanya versiyonlarını ayırt etmek için adlandırma kurallarını kontrol edin.
  • Query (?) yerine fragment (#) kullanılması: fragment'ler sunucuya iletilmez ve analitik tarafından dikkate alınmaz.

SSS

  • utm_campaign için güvenli değerler nasıl oluşturulur?
    Latin harfler, rakamlar ve alt çizgi kullanın; boşluklardan ve özel karakterlerden kaçının. Uri.Builder kullanılırken değerleri kodlamak gerekli değildir.

  • Etiketler mesajlaşma uygulamalarında (Telegram, WhatsApp) korunur mu?
    Çoğu mesajlaşma uygulaması query parametrelerini korur, ancak bazı uygulamalar URL'yi kısaltabilir veya kendi yönlendirmelerini yapabilir. Hedef uygulama kombinasyonlarını test edin.

  • Link kısaltıcı uygun mudur?
    Kullanılabilir, ancak kısaltıcının geçiş sırasında orijinal query parametrelerini koruduğundan emin olun; aksi takdirde etiketler kaybolur.

  • utm_medium ve utm_source eklemek gerekir mi?
    Evet, doğru atıf için utm_campaign ile birlikte en azından utm_source ve utm_medium gönderin.


Gerekirse, projede UTM linklerinin merkezi olarak oluşturulması için Kotlin'de hazır yardımcı programlar/fonksiyonlar gönderebilirim.