Ana içeriğe atla

Genel Bakış

Zaman Operatörleri, belirli bir zaman anına göre mesajlar göndermenizi sağlar—bir eylem gerçekleştikten sonra veya gelecekteki bir tarihten önce. O anı, Etiket kullanarak kullanıcıya Unix zaman damgası (saniye cinsinden) olarak saklarsınız. OneSignal daha sonra mevcut zamanı o zaman damgasıyla karşılaştırır ve geçen zamana (veya kalan zamana) göre kullanıcıları hedeflemenizi sağlar. Bu, mesajları manuel olarak planlamadan hatırlatıcılar, takipler ve son teslim tarihi mesajlarını otomatikleştirmeyi kolaylaştırır. Yaygın kullanım durumları:
  • Terk edilmiş sepet: Belirli bir süre sonra ödeme yapmayan kullanıcıları hatırlatmak
  • Etkinlik hatırlatıcıları: Planlanmış randevu veya yenileme tarihinden önce kullanıcılara mesaj göndermek
  • Kilometre taşları: Kullanıcılar bir son tarihe kadar bir eylemi tamamlamadıklarında takip etmek
  • Doğum günleri: Kullanıcının doğum gününde (veya doğum günü civarında) otomatik mesajlar göndermek
Zaman Operatörleri yalnızca ücretli planlarda kullanılabilir. Ücretsiz planlar hala First Session ve Last Session gibi varsayılan zamana dayalı segment filtrelerini kullanabilir.

Bunu ne zaman kullanmalıyım?

Şu durumlarda Zaman Operatörleri kullanın:
  • Sabit takvim zamanı değil, bir etkinliğe göre mesajlar göndermek
  • Hareketli zaman pencereleri oluşturmak (örneğin, “24–48 saat sonra”)
  • Farklı tarihlere sahip birçok kullanıcı için aynı mantığı yeniden kullanmak
  • Zaman geçtikçe uygunluğu sürekli değerlendirmek
Bir etkinlik gerçekleştiğinde hemen mesajlaşmayı tetiklemeniz gerekiyorsa, bunun yerine Özel Etkinlikler kullanmayı düşünün.

Etiketler vs Özel Etkinlikler

Birçok “hatırlatıcı” kullanım durumunu Etiketler veya Özel Etkinlikler ile çözebilirsiniz. En iyi seçenek, neyi saklamak istediğinize ve otomasyonu nasıl tetiklemek istediğinize bağlıdır.
  • Kullanıcıda son bilinen zaman damgasını (örneğin, cart_updated_at veya subscription_expires_at) saklamak ve zamanla o değere göre segmentleme yapmak istediğinizde Etiketler kullanın.
  • Her etkinlik oluşumunu (özellikleriyle birlikte) kaydetmek ve gerçek zamanlı davranışa göre Journey’leri tetiklemek istediğinizde Özel Etkinlikler kullanın.
Pratikte, birçok uygulama ikisini birden kullanabilir: gerçek zamanlı izleme için Özel Etkinlikler ve daha sonra segmentleme yapmak istediğiniz kullanıcı durumu için Etiketler.
Etiketler ve Özel Etkinlikler kullanıcılarınıza veri eklemenin her ikisi de yoludur. Ancak bazı temel farklar vardır:
ÖzellikEtiketlerÖzel Etkinlikler
Veri kullanımıSegmentasyon ve kişiselleştirmeSegment olmadan Yolculukları tetikleme, Bekle adımları, doğrudan Yolculuklar içinde kişiselleştirme
Veri tutmaÖmür boyu30+ gün (ömür boyu depolama mevcuttur)
Veri formatıAnahtar-değer dizgiler veya sayılarJSON
Veri kaynağıOneSignal SDK, API veya entegrasyonlar (sınırlı)OneSignal SDK, API veya entegrasyonlar
Veri erişimiSegmentasyon ve mesaj kişiselleştirmeYolculuklar ve Yolculuk-mesaj-şablon kişiselleştirme, Segmentasyon (Yakında)
Etiketler ve Özel Etkinlikler arasındaki temel ayrım, derinliklerinde ve kullanım durumlarındadır. Etiketler bir kullanıcının özellikleridir, örneğin Ad, Hesap Durumu veya Konum. Etkinlikler ise kullanıcının yaptığı şeylerdir, örneğin Bir Öğe Satın Alma, Seviye Tamamlama veya Arkadaş Davet Etme. Hem etiketler hem de etkinlikler segmentasyon ve kişiselleştirme için kullanılabilir. Uygulamada, muhtemelen her ikisini de kullanacaksınız:
  • Statik ve sık değişmeyen kullanıcı özellikleri için Etiketler
  • Gerçek zamanlı senaryolar, karmaşık segmentasyon ve daha sofistike yolculuk iş akışları için Özel Etkinlikler

Hızlı Referans

  1. Etkinlik tarihini saniye cinsinden Unix zaman damgasına dönüştürün.
  2. Anahtarın etkinlik adı ve değerin zaman damgası string olarak olduğu bir Etiket ayarlayın (örn., 'event_date': '1739145600').
  3. Time Elapsed Greater Than operatörünü kullanarak bir segment oluşturun:
    • Geçmiş bir tarihten sonra için Time Elapsed Greater Than operatörünü pozitif değerle kullanın
    • Gelecekteki bir tarihten önce için Time Elapsed Greater Than operatörünü negatif değerle kullanın
Yaygın bir hata, zaman damgalarını saniye (10 basamak) yerine milisaniye (13 basamak) olarak ayarlamaktır. Zaman Operatörleri saniye gerektirir.

Geçmiş bir etkinlikten sonra mesaj gönderme

Bir şey olduktan sonra belirli bir süre geçtikten sonra kullanıcılara mesaj göndermek istediğinizde bu kalıbı kullanın. Örnek: Kullanıcı sepetini güncelledikten 24 saat sonra terk edilmiş sepet hatırlatıcısı gönderme
1

Etkinlik gerçekleştiğinde zaman damgasını sakla

Kullanıcı sepetini güncellediğinde, mevcut zamanı Unix zaman damgası (saniye cinsinden) olarak kaydedin:
// SDK örneği
const timestampSeconds = String(Math.floor(Date.now() / 1000));
OneSignal.User.addTag("cart_updated_at", timestampSeconds);
Saniye (10 basamak) kullanın, milisaniye (13 basamak) değil.
2

Segment oluştur

  1. Audience > Segments’e gidin
  2. User Tag filtresi ekleyin
  3. Key’i cart_updated_at olarak ayarlayın
  4. Time Elapsed Greater Than’i seçin
  5. Value’yu 1 gün (veya 24 saat veya 86400 saniye) olarak ayarlayın
Time Elapsed Greater Than kullanan segment
3

Üst sınır ekle (Önerilen)

Üst sınır olmadan kullanıcılar segmentte sonsuza dek kalırlar. Pencere oluşturmak için ikinci bir filtre ekleyin:
  • Time Elapsed Greater Than 24 saat
  • Time Elapsed Less Than 48 saat
Artık kullanıcılar sadece etkinlikten 24-48 saat sonra segmentte kalırlar.
Hem Time Elapsed Greater Than hem de Less Than kullanan segment
4

Segmenti Journey'de kullan

Mesajlaşmayı otomatikleştirmek için segmentinizi hedefleyen bir Journey oluşturun.

Gelecekteki bir etkinlikten önce mesaj gönderme

Randevu veya yenileme gibi gelecekteki bir tarihten önce kullanıcılara mesaj göndermek için bu kalıbı kullanın.
  1. Gelecekteki tarihi Unix zaman damgası etiketi olarak saklayın (örn., 'future_date': '1739145600')
  2. Time Elapsed Greater Than ve istediğiniz giriş zamanını negatif değer olarak kullanarak segment oluşturun
    • Örnek: -2 gün (veya -172800 saniye)
Negatif değerle Time Elapsed Greater Than kullanan segment
  1. Aynı Time Elapsed Greater Than operatörünü daha yakın zamanın negatif değeriyle üst sınır eklemek için kullanın
    • Örnek: -1 gün (veya -86400 saniye)
Negatif değer ve üst sınırla Time Elapsed Greater Than kullanan segment

Örnek: Doğum günü mesajları

Her kullanıcının bir sonraki yaklaşan doğum gününü zaman damgası olarak saklayarak doğum günü mesajları gönderin.
1

Bir sonraki doğum günü zaman damgasını sakla

Kullanıcının bir sonraki doğum gününü hesaplayın ve saklayın:
function getNextBirthday(month, day) {
  // month: 0-11 (Jan=0), day: 1-31
  const now = new Date();
  let birthday = new Date(now.getFullYear(), month, day);

  if (birthday <= now) {
    birthday = new Date(now.getFullYear() + 1, month, day);
  }
  
  return String(Math.floor(birthday.getTime() / 1000));
}

// Örnek: 15 Ocak doğum günü
OneSignal.User.addTag("birthday", getNextBirthday(0, 15));
2

Doğum günü segmenti oluştur

  • User Tag: birthday
  • Time Elapsed Greater Than: 0 saniye
Doğum günü zaman damgası geçtiğinde kullanıcılar segmente girer.
Time Elapsed Greater Than 0 kullanan doğum günü segmenti
3

Tekrarlayan Journey kurma

  1. Doğum günü segmentinizi hedefleyen bir Journey oluşturun
  2. Kullanıcıların gelecek yıl yeniden girebilmesi için yeniden girişi 52 hafta olarak ayarlayın
  3. Gönderdikten sonra birthday etiketini gelecek yılın tarihine güncelleyin (backend’inizde veya Journey’de)
Mümkün olduğunda kullanıcının yerel saat dilimini kullanarak doğum günü zaman damgalarını hesaplayın. Sadece sunucu zamanını kullanmak, mesajların beklenenden erken veya geç gönderilmesine neden olabilir.
Mesajların yıldan yıla doğru kalmasını istiyorsanız, mesajı gönderdikten sonra kullanıcının birthday etiketini bir sonraki doğum gününe güncelleyin (örneğin, backend’inizde veya Journey adımında). Bunu yaparsanız, bunun yerine Özel Etkinlikler kullanmak daha kolay olabilir.
Doğum günü mesajları kullanıcının birthday etiketi tarihi civarında kullanıcılara gönderilecektir.

SSS

Matematik nasıl çalışır? (teknik detaylar)

Zaman Operatörleri, sabit tarihler yerine göreceli, hareketli pencereler oluşturmanızı sağlamak için mevcuttur. OneSignal geçen zamanı şu formülü kullanarak hesaplar:
time_elapsed = current_time - tag_timestamp
  • Geçmiş zaman damgaları → pozitif değerler
  • Gelecekteki zaman damgaları → negatif değerler
Operatörler:
  • Time Elapsed Greater Than X: elapsed > X olduğunda eşleşir
  • Time Elapsed Less Than X: elapsed < X olduğunda eşleşir
Gelecekteki zaman damgaları neden Less Than ile hemen eşleşir: Herhangi bir negatif sayı herhangi bir pozitif sayıdan küçüktür. Bu nedenle time_elapsed_lt 2 days (172,800 saniye) gelecekteki 30 günlük zaman damgasıyla eşleşir çünkü:
-2,592,000 < 172,800  →  true (eşleşir)
Gelecekteki zaman damgaları her zaman negatif geçen zaman ürettiği için, yaklaşan bir etkinlikten önce kullanıcıların segmentlere ne zaman girip çıkması gerektiğini tanımlamak için negatif değerler kullanmalısınız. Pozitif değerler gelecekteki bir tarihten önceki zamanı temsil edemez.

Nasıl test edebilirim?

  1. Harici ID, Abonelik ID, E-posta veya telefon numarası ile kullanıcınızı bulun. Kullanıcınızı bulmayla ilgili ayrıntılar için Test aboneliklerini bulma ve ayarlama’ya bakın.
  2. Mevcut tarih ve gelecekteki tarih (şu andan 5 dakika sonra) için saniye cinsinden zaman damgası alın.
  3. ‘current_time’ ve ‘future_time’ anahtarları ve saniye cinsinden zaman damgaları değerleri olan iki etiket ayarlayın.
  4. Aşağıdaki filtrelerle current_time segmenti oluşturun:
    • User Tag: current_time Time Elapsed Greater Than: 2 dakika
    • VE User Tag: current_time Time Elapsed Less Than: 5 dakika
  5. Aşağıdaki filtrelerle future_time segmenti oluşturun:
    • User Tag: future_time Time Elapsed Greater Than: -5 dakika
    • VE User Tag: future_time Time Elapsed Less Than: -2 dakika
Kullanıcınızı şöyle görmelisiniz:
  • Mevcut zaman tarihinden 2 dakika sonra current_time segmentine girer ve mevcut zaman tarihinden 5 dakika sonra segmentten çıkar.
  • Gelecekteki zaman tarihinden 5 dakika önce future_time segmentine girer ve gelecekteki zaman tarihinden 2 dakika önce segmentten çıkar.