Ana içeriğe atla
Event Streams, mesaj verilerini OneSignal’dan gerçek zamanlı olarak seçtiğiniz hedefe göndermenizi sağlar. Event stream’ler, OneSignal’ı pazarlama ekosistemin içindeki diğer ürünlere bağlamanın harika bir yoludur. Ekibinizin ilgili mesajlaşmayı tetiklemesini, kayıtları tutmasını ve çok daha fazlasını yapmasını sağlar. Mevcut olay türleri şunları içerir:
  • Push mesaj olayları (gönderildi, alındı, tıklandı, başarısız, abonelik iptal edildi)
  • E-posta olayları (gönderildi, açıldı, tıklandı, geri döndü, abonelik iptal edildi vb.)
  • SMS olayları (gönderildi, başarısız, abonelik iptal edildi vb.)
  • Uygulama içi mesaj olayları (gösterim, tıklandı vb.)
  • Canlı Aktivite olayları (gönderildi, teslim edildi, onaylanmış teslimat, başarısız, abonelik iptal edildi, tıklandı)

Yaygın kullanım durumları

  • Etkileşim verilerini merkezileştirin — Çapraz kanal etkinliğinin (açılışlar, tıklamalar, geri dönüşler) bağlantısız araçlar arasında dağılmak yerine tek bir yerde olması için olayları bir CRM, CDP veya veri ambarına aktarın.
  • Analiz, raporlama ve uyumluluk — Trend analizi, denetim veya düzenleyici kayıt tutma için her mesaj olayını bir ambara kaydedin.
  • Etkisizleşmeyi izleyin — Erken aşamada elde tutma risklerini tespit etmek için abonelik iptallerini, geri dönüşleri ve redleri kendi sistemlerinizde takip edin.
  • Harici iş akışlarını tetikleyin — Bir kullanıcı mesajı açtığında veya tıkladığında diğer araçlarda otomasyonları başlatın (örn. lead skorunu güncellemek, takip dizisi başlatmak).
  • Toplu senkronizasyonları ve ekstra entegrasyonları değiştirin — Olaylara gerçek zamanlı olarak tepki verin ve OneSignal’ı doğrudan hedefinize bağlayarak ara araçları ve bakım maliyetini azaltın.

Teknik ekibinizi başlatmak

Event Streams kurulumu, pazarlama/ürün sahibi (hangi olayların önemli olduğuna ve nereye gideceğine karar veren) ile mühendislik ekibi (alıcı uç noktayı oluşturan ve stream’i yapılandıran) arasında ortak bir çabadır. İşte mühendislik tarafının neler içerdiği:
  1. Bir hedef ve kapsam üzerinde karar verin — Olayların nereye gitmesi gerektiğini (kendi API’niz, bir veri ambarı, bir CDP vb.), hangi olay türlerini akıtacağınızı (push, e-posta, SMS, IAM, Canlı Aktivite) ve uç noktanın uygun boyutta olması için bir mesaj hacmi tahmini üzerinde anlaşın.
  2. Bir HTTP uç noktası oluşturun — POST isteklerini kabul eden, kamuya açık erişilebilir bir uç nokta oluşturun veya yapılandırın. Yanıt sürelerini düşük tutmak için ağır işlem olmadan olayları hızlıca kaydetmelidir. Performans beklentileri ve uç noktanın geride kalması durumunda neler olacağı için bkz. Yeniden Denemeler / Devre Dışı Bırakma.
  3. OneSignal’da Event Stream’i yapılandırınVeri > Event Streams’de olayları seçin, URL ve kimlik doğrulama başlıklarını ayarlayın ve Liquid sözdizimi ile Event Streams Verileri alanlarını kullanarak JSON gövdesini tanımlayın.
  4. Uçtan uca test edin — Üretim uç noktanıza geçmeden önce payload biçimini ve başlıkları doğrulamak için webhook.site kullanın (bkz. Test Etme).

Kurulum

OneSignal uygulamanız için Veri > Event Streams > Yeni Event Stream altında yeni bir event stream yapılandırabilirsiniz.
Yeni Event Stream butonu
Gereksinimler Aşağıdaki gereksinimler karşılanmadıkça olaylar gönderilemez:
  • Kamuya açık erişilebilir bir HTTP(S) uç noktası için geçerli bir URL veya IP adresi
  • URL’ler ve IP adresleri genel olarak yönlendirilebilir olmalıdır
  • Alan adları tanınmış bir üst düzey alan adı içermelidir (örn. “.com”, “.net”)

Olay Seçimi

Event Stream’inizi adlandırın ve Olayları Seç’e tıklayın.
Olayları Seç ve webhook tetikleyici seçeneklerini gösteren event stream kurulumu
Bu, event stream’inizi tetiklemek istediğiniz olayları seçebileceğiniz Olay Seçimi sayfasını açacaktır.
Her olay, planınızın mesaj olayı hacmine sayılır. Büyük bir kitle için her olay türünü (özellikle sent) akıtmak kotanızı hızla tüketebilir — örneğin, 100.000 kullanıcıya tek bir gönderim yalnızca 100.000 sent olayı oluşturur.Hacmi yönetmek için:
  • Yalnızca ihtiyacınız olan olay türlerini seçin — örn. gönderim düzeyinde izlemeye ihtiyacınız yoksa received ve clicked yeterli olabilir.
  • Tüm trafiği akıtmak yerine belirli mesajları veya şablonları sınırlamak için event stream filtrelerini kullanın.
Kanal ve olay türleri işaretlenmiş event stream olay seçimi

Event stream filtreleri

İsteğe bağlı olarak, bir veya daha fazla mesajın veya şablonun tanımlayıcılarını belirterek olayları daha da iyileştirebilir, yalnızca belirli mesajlarla ilgili olayları almanızı sağlayabilirsiniz.
Mesaj ve şablon ID'leri için event stream filtre alanları
Şablon tanımlayıcıları Mesajlar > Şablonlar’a giderek kopyalanabilir. Takip etmek istediğiniz şablonun yanında Seçenekler > Şablon ID’sini Kopyala’yı seçin ve Event Stream filtrelerine yapıştırın.
Şablon ID'sini Kopyala seçeneğiyle mesaj işlem menüsü

Event Stream’i Yapılandırma

HTTP yöntemini, URL’yi seçin ve event stream için başlıklar ekleyin. OneSignal ile sistemleriniz arasında güvenli iletişimi sağlamak için kimlik doğrulamanın yapılandırılması gereken yer burasıdır. URI ve Başlıklar, hem kullanıcı özelliklerinden hem de event stream’in özelliklerinden gelecek liquid sözdizimi içerebilir.

Kimlik Doğrulama Başlıkları

Uç noktanıza yapılan isteklerin gerçekten OneSignal’dan geldiğini doğrulamak için kimlik doğrulama başlıkları ekleyebilirsiniz. Yaygın kimlik doğrulama yöntemleri şunları içerir:
  • Authorization Başlığı: Bir Authorization başlığı ekleyin, burada YOUR_TOKEN sisteminiz veya 3. taraf tarafından şu şekilde sağlanır:
    • Basic {{YOUR_TOKEN}}
    • Bearer {{YOUR_TOKEN}}
    • ApiKey {{YOUR_API_KEY}}
  • Özel Başlıklar: Aşağıdaki gibi özel başlıklar da ekleyebilirsiniz:
    • X-API-Key: {{YOUR_API_KEY}}
Not: OneSignal şifreleme hizmetleri sağlamaz

Yapılandırmanızı Test Etme

Test etmenin kolay bir yolunu arıyorsanız, webhook.site kullanın. Sayfanın merkezinde “Your unique URL”yi bulun. Bu URL’yi kopyalayın ve event stream yapılandırmanızın URL alanında kullanın.
webhook.site test URL'siyle yapılandırılmış event stream URL alanı

İzin verilmeyen başlıklar

Aşağıdaki başlıklar kısıtlıdır ve ayarlanamaz.
  • content-length
  • referer
  • metadata-flavor
  • x-google-metadata-request
  • host
  • x-onesignal*

Gövde

Bir event stream için gövde JSON olacaktır. Gövde JSON’u, bireysel anahtar/değer çiftleri olarak veya düzenlenebilir bir kod bloğu olarak tanımlanabilir. Girdi yöntemini değiştirmek için gövde başlığı altındaki ilk açılır menüyü kullanın ve özel gövdeyi seçin.
Anahtar-değer ve özel gövde seçenekleriyle event stream gövde düzenleyicisi
Sağda, event stream kurulumu sırasında girilen bilgilerden oluşturulmuş örnek bir cURL isteği görebilirsiniz
Yapılandırılmış event stream isteği için cURL önizleme paneli

Kişiselleştirme

Event Stream’inizdeki tüm alanları önceden tanımlanmış Event Streams Verileri ile kişiselleştirebilirsiniz. Bu veriler Liquid Sözdizimi kullanılarak eklenebilir. Bu, event stream’leri neredeyse her kullanım durumu için kullanma esnekliği sağlar.
Kişiselleştirme için mevcut tüm olay, mesaj ve kullanıcı olay verilerinin bir listesi için Event Streams Verileri’ne bakın.

Örnek gövde

Açılır menüden “Özel Gövde”yi seçin:
JSON
{
  "Event Data": {
    "event.kind": "{{ event.kind }}",
    "event.id": "{{ event.id }}",
    "event.timestamp": "{{ event.timestamp }}",
    "event.datetime": "{{ event.datetime }}",
    "event.app_id": "{{ event.app_id }}",
    "event.subscription_device_type": "{{ event.subscription_device_type }}",
    "event.subscription_id": "{{ event.subscription_id }}",
    "event.onesignal_id": "{{ event.onesignal_id }}",
    "event.external_id": "{{ event.external_id }}",
    "event.data.page_name": "{{ event.data.page_name}}",
    "event.data.page_id": "{{ event.data.page_id}}",
    "event.data.target_name": "{{ event.data.target_name}}",
    "event.data.target_id": "{{ event.data.target_id}}",
    "event.data.failure_reason": "{{ event.data.failure_reason}}"
  },
  "Message Data": {
    "message.id": "{{ message.id }}",
    "message.name": "{{ message.name }}",
    "message.title": "{{ message.title.en }}",
    "message.contents": "{{ message.contents.en }}",
    "message.template_id": "{{ message.template_id }}",
    "message.url": "{{ message.url }}",
    "message.app_url": "{{ message.app_url }}",
    "message.web_url": "{{ message.web_url }}"
  }
}
Liquid yer tutucularıyla event stream özel JSON gövdesi

JSON’da Liquid Sözdizimi Kullanma

JSON içinde Liquid sözdizimi kullanırken, uygun alıntılama veri tipine bağlıdır: JSON Biçimlendirme Yönergeleri
  • DizelerMutlaka tırnak içine alınmalıdır.
  • Sayılar → Tırnak içine alınmamalıdır.
  • Nesneler → Tırnak içine alınmamalıdır.
Aşağıdaki Doğru örneklerindeki // yorum satırları yalnızca okunabilirlik içindir. Gerçek Event Stream gövdenizde bunları kaldırın — katı JSON // yorumlarına izin vermez.
Örnekler
✅ Doğru — tırnak içine alın:
JSON
{
  "user_id": "{{ user.onesignal_id }}"
}
❌ Yanlış — tırnak eksikliği geçersiz JSON üretir:
JSON
{
  "user_id": {{ user.onesignal_id }}
}
Liquid sözdiziminde çok dilli koşulları işlemek için en iyi uygulamalar Dil tabanlı koşullarla ilgili sorunlardan kaçınmak için:
  1. Doğrudan Dil Kontrollerini Kullanın: Daha iyi uyumluluk için koşullarda her zaman user.language’ı doğrudan kontrol edin, userLang gibi değişkenlerde değil.
  2. Basit Başlayın: Temel ifadelerle başlayın, ardından kademeli olarak karmaşıklık ekleyin.
  3. Aşırı İçiçe Geçmeden Kaçının: Ayrıştırma sorunlarını önlemek için koşulları düz tutun.
  4. Önce Temel Noktalama İşaretlerini Test Edin: Özel karakterler kullanmadan önce basit cümleler ve noktalama işaretleriyle başlayın.
  5. Geri Dönüşler Kullanın: Eksik çeviriler durumunda varsayılan bir dil (örn. İngilizce) sağlayın.
  6. Standart Anahtarlara Bağlı Kalın: Güvenilirlik için content/title/en gibi standart OneSignal anahtarlarını kullanın.
Bu yaklaşım, ayrıştırma hatalarını en aza indirir ve sistemle uyumluluğu sağlar.
Liquid sözdizimi kullanarak mesajlarınızı nasıl kişiselleştireceğinize dair ayrıntılar ve seçenekler için Liquid Sözdizimi Kullanma Kılavuzumuzu inceleyin.

Sonuçlar ve Hata Ayıklama

Event Stream’inizin performansını izleme ve sorunları giderme: Rapor sekmesi — Tüm zamanların toplamlarını, event stream’inizin mevcut durumunu ve zaman içinde HTTP yanıt kodlarının zaman serisi grafiğini gösterir.
YanıtAnlamı
2xxOlay uç noktanız tarafından başarıyla alındı.
4xx / 5xxUç noktanız bir hata döndürdü. Belirli durum kodu ve yanıt gövdesi için Günlükler sekmesini kontrol edin.
Zaman aşımıUç noktanız izin verilen pencere içinde yanıt vermedi. OneSignal bağlantıyı kapattı ve teslimatı başarısız olarak işledi.
Günlükler sekmesi — Tam istek gövdesi, başlıklar ve uç noktanızdan gelen yanıt dahil olmak üzere son isteklerin bir örneğini görüntüler. Hata ayıklarken başlamak için en iyi yer burasıdır — OneSignal’ın tam olarak ne gönderdiğini ve sunucunuzun ne döndürdüğünü görebilirsiniz. Payload veya yapılandırmanın ayarlanması gerekiyorsa, event stream’i düzenleyin ve örnek istekler göndermek için Test Gönder butonunu kullanın. Payload uç noktanızın beklediğiyle eşleşene kadar yineleyin, ardından canlıya geçin.
Grafikler ve zaman içinde HTTP yanıt durumunu içeren event stream raporu

Yeniden Denemeler / Devre Dışı Bırakma

Yeniden deneme davranışı — Bir istek kurtarılabilir bir durumla başarısız olduğunda (örn. 429), OneSignal artan gecikmelerle yeniden dener. Tek bir olayın yeniden denemeleri başarısız olmaya devam ederse, bu olay kalıcı olarak başarısız olarak işaretlenir ve artık yeniden denenmez. Otomatik devre dışı bırakma — Uç noktanız birçok olay boyunca sürekli başarısızlıklar döndürürse, OneSignal tüm event stream’i devre dışı bırakabilir. Bu olduğunda:
  1. Uygulama ve kuruluş yöneticileri, başarısızlık hacmi önemli hale geldiğinde (devre dışı bırakmadan önce) ve stream devre dışı bırakıldığında tekrar e-posta alır.
  2. Panodaki Event Streams dizin sayfasında da bir banner görünür.
  3. Temel sorunu düzeltin, Günlükler sekmesi veya webhook.site ile test edin ve stream’i yeniden etkinleştirin.
Performans rehberi — Uç noktanız mesaj gönderimlerinizin ürettiği olay hacmini işleyebilmelidir. Birikimleri ve devre dışı bırakmayı önlemek için:
  • Olayları hızlıca kaydedin — Ağır satır içi işleme olmadan gelen olayı bir kuyruğa veya veri deposuna yazın.
  • Yavaş yanıtlardan ve 429’lardan kaçının — Tutarlı yavaş yanıt süreleri veya hız sınırı yanıtları, olayların birikmesine neden olur ve bu OneSignal’ın stream’i devre dışı bırakmasına yol açar.
  • Gönderim hacminize göre boyutlandırın — 100k mesaj gönderirseniz, seçilen her olay türü başına 100k olaya kadar bekleyin. Planınızın mesaj hacmini gözden geçirin ve buna göre hazırlık yapın.
Tekilleştirme — Teslim edilen her olay, benzersiz bir event.id içerir. Aynı olay yeniden denenirse veya tekrar oynatılırsa sisteminizin tekilleştirebilmesi için bunu bir başlığa veya JSON gövdesine ekleyin.

Başarı İçin İpuçları

  • Stream’leri önce kendi sunucularınıza yönlendirin. Doğrudan bir üçüncü taraf API’ye bağlanabilirsiniz, ancak alıcı ucu kontrol etmediğinizde hata ayıklama, hız sınırı yönetimi ve hacim yönetimi daha zordur.
  • Üçüncü taraflara iletmeden önce tampon uygulayın. OneSignal, kullanıcılar olayları tetiklediği kadar hızlı gönderir — büyük bir gönderim, harici hız limitlerini aşan veya maliyetleri artıran (özellikle SMS sağlayıcılarıyla) bir patlama üretebilir. Olayları kabul eden, kuyruğa alan ve kontrol ettiğiniz bir hızda harici API’lere ileten hafif bir hizmet oluşturun.
  • Üçüncü taraf API belgelerini kontrol edin. Birçok hizmet, event stream ile hedefleyebileceğiniz genel HTTP API’leri sunar. Stream’inizi yapılandırmadan önce kimlik doğrulama, kabul edilen payload biçimi ve hız sınırları hakkındaki belgelerini arayın.

Mesaj olay verisi sınırlamaları

Yolculuklarımız veya API aracılığıyla gönderilen mesajlara ait veriler OneSignal’da yalnızca 30 gün boyunca mevcuttur. Bu, Yolculuk veya API mesajı gönderildikten 30+ gün sonra gerçekleşen herhangi bir mesaj olayının (tıklamalar, açılmalar, abonelik iptalleri vb.) event stream’de mevcut olmayacağı anlamına gelir. Bu, analitiğinizde boş veya eksik veri olarak görünebilir. Bu sınırlamayı aşmak için, bu tıklanan/açılan/abonelikten çıkılan olayların message.id’sini aynı message.id’ye sahip orijinal sent olayıyla ilişkilendirebilirsiniz. Orijinal sent olayı ilgili mesaj verilerine (başlık, şablon vb.) sahip olmalıdır.

Test Etme

webhook.site kullanarak uçtan uca test kılavuzu. Your unique URL’yi POST yöntemiyle Event Stream’deki URL alanına yapıştırın.
webhook.site benzersiz URL'siyle eşleşen event stream URL alanı
İzlemek istediğiniz olayları ayarlayın. Bu örnekte push olaylarını kullanacağız, ancak herhangi biri işe yarar.
Test için push mesaj olayları işaretlenmiş olay seçimi
Bu örnekte, yukarıdaki Örnek gövde’yi kullanacağız. Olayı kaydedin ve canlı ayarlayın. Olayı tetiklemek için bir mesaj gönderin. webhook.site’de olayı aşağıdaki verilerle göreceğiz:
webhook.site'de gelen event stream istek gövdesi ve başlıklarını gösteren ekran
Bu aşağıdakileri gösterir:
  • Host: isteğin geldiği IP adresi. Olası IP’lerin bir listesi için REST API genel bakış’a bakın.
  • Request Content: event stream’in gövdesi içinde gönderilen veriler.