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.

Yaygın kullanım durumları

  1. Müşteri yolculuğu haritalama ve kişiselleştirme: kapsamlı müşteri profilleri oluşturmak ve kampanyaları çeşitli temas noktalarında uyarlamak için olayları bir CRM veya Müşteri Veri Platformuna (CDP) aktarın.
  2. Analiz ve raporlama: etkileşim modellerini veya kanallar arası uzun vadeli trendleri analiz etmek için mesaj olaylarını (örn. gönderimler, açılışlar, tıklamalar) bir veri ambarına gönderin.
  3. Uyum ve düzenleyici raporlama: denetim ve uyum amaçları için tüm mesaj gönderim verilerini bir veri ambarına aktarın.
  4. YZ ve tahmin modelleri: kapsamlı müşteri grupları oluşturmak ve potansiyel kayıp gösterebilecek e-posta abonelik iptalleri veya mesaj redleri gibi kayıp risklerini anlamak için mesaj olay verilerini kurum içi YZ veya tahmin modellerine gönderin.
  5. Pazarlama otomasyonu: kullanıcı yolculuğundaki bir sonraki adımları otomatik olarak tetiklemek veya müşteri profillerini ve son etkinlikleri güncellemek için etkileşim olaylarını (mesaj açılışları veya tıklamalar gibi) diğer araçlara gönderin.
  6. Veri parçalanması: değerli müşteri verileri genellikle ayrı araçlarda bulunur (müşteri etkileşim platformları, CRM’ler, analitik araçları ve veri ambarları gibi). Event streaming bu verileri merkezileştirmeye yardımcı olarak değerli birinci taraf verilerine görünürlüğü artırır ve daha hızlı gelir sonuçlarına olanak tanır.
  7. Sistemler arası yavaş iletişim: canlı etkileşim olaylarını diğer sistemlere göndererek, toplu güncellemeler için saatler veya günler beklemek yerine bir olay meydana geldikten hemen sonra eylemleri tetikleyebilirsiniz. Bu, manuel içe aktarmalara veya veri senkronizasyonlarına bağımlılığı ortadan kaldırır.
  8. Harcama şişmesi ve teknik borç: birden fazla ara aracı yönetmek yerine, OneSignal’ı doğrudan veri ambarınıza bağlayabilirsiniz. Bu, birden fazla entegrasyonu veya özel veri hattını yönetmenin maliyetli yükünü azaltır, teknik borcu azaltır ve değerli teknik kaynakları ürün ve pazarlama için korur.

Teknik ekibinizle nasıl ortaklık kurulur

Event Streams kurulumu, teknik ekibinizle işbirliği gerektirir. İşte konuşmayı kolaylaştırmak için bazı ipuçları:
  1. Faydaları açıklayın: bu verileri kullanma stratejinizi ve bunun pazarlama kampanyalarını nasıl geliştirebileceğini, kullanıcı deneyimlerini kişiselleştirebileceğini, verileri birleştirebileceğini ve teknik borcu azaltabileceğini paylaşın.
  2. Kapsamı tanımlayın: verilerin nereye gönderilmesini istediğinizi, hangi olayları izlemek istediğinizi ve tahmini veri hacmini belirleyin. Bu, uygun uç nokta kurulumunu yapılandırmaya yardımcı olacaktır.
  3. Teknik belgeleme sağlayın: OneSignal’ın teknik belgelerini ve kurulum talimatlarını paylaşın. Geliştirme ekibinizin alıcı uç noktalarını ve OneSignal’daki event stream’i yapılandırması ve verilerin doğru şekilde yönlendirilmesini sağlaması gerekecektir.
  4. Veri hacmi ve yönetimini tartışın: sistemlerinizin gerçek zamanlı veri akışlarını işleyebileceğini onaylayın. API işleyicisinin düşük yanıt sürelerini korumak için ek çevrimiçi işleme olmadan olayları kaydetmesi önerilir.
  5. Test edin ve sorun giderin: yayına geçmeden önce her şeyin sorunsuz çalıştığından emin olmak için testler yapın.
Teknik ekibinizle yakın çalışarak, büyüme stratejinizi geliştirmek için event streaming’in gücünü açığa çıkarabilirsiniz.

Kurulum

OneSignal uygulamanız için Data > Event Streams altında yeni bir event stream yapılandırabilirsiniz.

Gereksinimler

Aşağıdaki gereksinimler karşılanmadıkça olaylar gönderilemez:
  • Sunucunuzun HTTP(S) sunucusuna işaret eden 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

Bir event stream tetiklemek için seçtiğiniz olayları seçmek için “Olayları Seç”e tıklayın.

Webhook'u Tetikle

Bu olaylarla gönderilebilecek veriler, birden fazla kanal tarafından tetiklenen olayları aynı event stream üzerinden gönderebilecek kadar benzerdir. Başka bir yaklaşım, daha ayrıntılı kontrol için veya gönderilen veri ölçeğini azaltmak için her biri tek bir kanal veya olay için birden fazla event stream tanımlamak olacaktır.

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, uygulamanızdaki yalnızca belirli mesajlarla ilgili olayları almanızı sağlayabilirsiniz. Event stream filtrelemeyi etkinleştirmek için aşağıdaki talimatlara bakın.

Olayları şablona göre filtreleme

Mesaj ve şablon tanımlayıcıları, Mesajlar > Push, E-posta, SMS veya Şablonlar’a giderek, istenen mesajın veya şablonun işlem düğmesine tıklayarak ve işlem menüsünden Mesaj ID’sini Kopyala veya Şablon ID’sini Kopyala’yı seçerek kopyalanabilir.

Bir şablonun Şablon ID'sini kopyalama

Alternatif olarak, görüntülediğiniz şeyin mesaj/şablon tanımlayıcısını doğrudan URL’den kopyalayabilirsiniz:
  • Şablon – https://dashboard.onesignal.com/apps/{APP_ID}/templates/{TEMPLATE_ID}
  • Push – https://dashboard.onesignal.com/apps/{APP_ID}/notifications/{MESSAGE_ID}
  • E-posta – https://dashboard.onesignal.com/apps/{APP_ID}/email/{MESSAGE_ID}
  • SMS – https://dashboard.onesignal.com/apps/{APP_ID}/sms/{MESSAGE_ID}

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'u Yapılandır

İ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.

Event Stream Gövde Seçenekleri

Sağda, event stream kurulumu sırasında girilen bilgilerden oluşturulmuş örnek bir cURL isteği görebilirsiniz

Event Stream'in cURL Önizlemesi

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:
{
  "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 }}"
  },
  "Message Data": {
    "message.id": "{{ message.id }}",
    "message.name": "{{ message.name }}",
    "message.title": "{{ message.title.en }}",
    "message.contents": "{{ message.contents.en }}",
    "template_id": "{{ message.template_id }}",
    "message.template_id": "{{ message.template_id }}",
    "message.url": "{{ message.url }}",
    "message.app_url": "{{ message.app_url }}",
    "message.web_url": "{{ message.web_url }}"
  }
}

Özel Gövde

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.
Örnekler

Dizeler

✅ Doğru
// Dize değerlerini tırnak içine alın
{
  "user_id": "{{ user.onesignal_id }}"
}
❌ Yanlış
{
  "user_id": {{ user.onesignal_id }}
}

Sayılar ve Mantıksallar

✅ Doğru
// Sayıları veya mantıksalları tırnak içine almayın
{
  "user_score": {{ user.tags.score }}
}
❌ Yanlış
{
  "user_score": "{{ user.tags.score }}"
}

Nesneler

✅ Doğru
// Nesneleri tırnak içine almayın.
{
  "user_data": {{ user.tags }}
}
❌ Yanlış
{
  "user_data": "{{ user.tags }}"
}
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 bir süre boyunca nasıl performans gösterdiğini Rapor sekmesi altındaki event stream rapor sayfasında görebilirsiniz. Bu, tüm zamanların sayılarını, event stream’inizin mevcut durumunu ve hook’un ne tür yanıtlar aldığını gösteren zaman serisi verilerini içerecektir. 200 aralığındaki herhangi bir HTTP yanıtı, bir olayın başarıyla alındığını gösterirken, 400’ler ve 500’lerdeki yanıtlar hataları gösterir. Zaman aşımı, diğer taraftaki sunucunun makul bir süre içinde yanıt vermeyi başaramadığı anlamına gelir, bu nedenle OneSignal bağlantıyı kapattı ve başarısız olduğunu varsaydı. Daha fazla ayrıntı için Günlükler sekmesi altında son isteklerin bir örneklemesini görebilirsiniz. Bu, gerçek istekleri ve (varsa) diğer taraftan gelen yanıtları gösterecektir. Event stream’inizin sorunları varsa, burası ilk bakılacak harika bir yerdir. Event stream’inizi değiştirmeniz/güncellemeniz gerekiyorsa, doğru yapana kadar ihtiyacınız olan tüm ayrıntıları görmek için form sayfasında düzenleyebilir ve test istekleri gönderebilirsiniz.

Event Stream Günlükleri ve Metrikleri

Yeniden Denemeler / Devre Dışı Bırakma

Bir Event Stream isteği kurtarılabilir herhangi bir nedenle başarısız olduğunda (örneğin, durum kodu 429), OneSignal kısa bir gecikmeden sonra olayı tekrar göndermeyi deneyecektir. Bu, istekler arasında artan gecikmelerle birkaç kez gerçekleşecektir. Arka arkaya yeterince yeniden deneme başarısız olursa, hook ‘kalıcı olarak başarısız’ olarak işaretlenecek ve artık yeniden denenmeyecektir. Arka arkaya çok fazla ayrı istek başarısız olursa, bu muhtemelen alıcı tarafta bir sorun olduğu içindir; alıcı tarafta hatalar olabilir veya bir şeyi değiştirmiş/devre dışı bırakmış olabilir. OneSignal belirli bir noktaya kadar istek göndermeye devam edecektir, ancak istekler başarısız olmaya devam ederse, event stream OneSignal tarafından devre dışı bırakılabilir. Bu olursa, yeniden etkinleştirmeden önce event stream’i sorun giderme, düzeltme ve test etme için zaman ayırdığınızdan emin olun. Düşük performanslı bir API, event stream’in devre dışı bırakılmasına yol açabilir. Bir event stream’i alan API’nin, mesaj gönderimleri tarafından üretilen olay hacmini işleyebilmesi önemlidir. Uygulamanız tarafından üretilen mesaj gönderimlerinin hacmini gözden geçirmek, API’nizin gerektirdiği performansı yansıtacaktır. Event stream’i alan API’nin ek çevrimiçi işleme olmadan bir olayı kaydetmesini öneririz. Bu, yanıt sürelerini düşük tutacak ve gecikmeyle ilgili sorunları önleyecektir. API’nizden gelen yavaş yanıt süresi veya 429 durum kodu yanıtları, olayların birikmesine neden olabilir. Tutarlı bir olay birikimi, gerekli aktarım hızını işlemek için API’nizi güncelleyebilmeniz için OneSignal’ın event stream’i devre dışı bırakmasına yol açacaktır. OneSignal, bir event stream önemli hacimde başarısız olay yaşamaya başladığında (ancak henüz devre dışı bırakılmadığında) uygulama yöneticilerine ve kuruluş yöneticilerine e-postalar gönderecek ve çok fazla olay gönderilmediğinde event stream devre dışı bırakıldığında da bir e-posta gönderecektir. Ayrıca, event stream’ler dizin sayfasında bir OneSignal kullanıcısına event stream’lerinden biriyle ilgili sorunları bildiren bir banner olacaktır. Her Event Stream’in her olay için benzersiz bir event.id’si vardır. Bu, aynı olanların geldiğini görürseniz istekleri kontrol etmenin ve potansiyel olarak çoğaltmayı kaldırmanın bir yolu olarak bir başlık olarak veya mesajın gövdesinde kullanılabilir.

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

  • Genellikle event stream’lerin üçüncü taraf hizmetlere değil, kendi sunucularınıza bağlanmasını istersiniz.
    • Doğrudan üçüncü bir tarafa bağlanmakta yanlış bir şey olmasa da aşağıdakiler yönetilmesi daha zor olabilir: Yapılandırma/hata ayıklama daha zorlu olacaktır
  • İstek hacmi OneSignal’da yönetilmeyecektir.
    • Event stream olayları, kullanıcılar yolculuğunuzdaki adımlara ulaşır ulaşmaz gönderilecektir ve bu diğer hizmetleri bunaltabilir, hız limitlerini aşabilir veya beklenmedik şekilde faturanızı artırabilir. Bu, özellikle SMS gibi bir şey için başka bir mesajlaşma kanalı kullanmaya çalışırken yaygındır. Event stream’lerin esnekliği, OneSignal’ın onlarla ne yapmaya çalıştığınızı bilmediği anlamına gelir, bu nedenle event stream isteklerini kabul eden ve ardından üçüncü taraf bağlantı limitlerini, hız limitlerini ve kuyruğu doğru şekilde işleyen kendi basit hizmetinizi oluşturmak isteyebilirsiniz.
  • Birçok hizmetin genel HTTP API’leri vardır, bu da onlara bir event stream ile bağlanabileceğiniz anlamına gelir; doğru yerden başlamak için API belgelerini ve HTTP isteğinin nasıl yapılacağına dair örnekleri arayın.

Mesaj olay verisi sınırlamaları

Yolculuklarımız veya API aracılığıyla gönderilen mesajlara ait veriler sistemimizde 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 gönderilen olayla ilişkilendirebilirsiniz. Orijinal sent olayı ilgili mesaj verilerine (başlık, şablon vb.) sahip olmalıdır.

Test Etme

https://webhook.site/ gibi bir araç kullanın ve sağlanan Your unique URL’yi POST yöntemiyle Event Stream’deki URL parametresine ayarlayın.

URL, webhook.site'ten 'Your unique URL' ile eşleşiyor

İzlemek istediğiniz olayları ayarlayın. Bu örnekte push olaylarını kullanacağız, ancak herhangi biri işe yarar.

Push mesaj olayları seçildi, ancak test için herhangi biri kullanılabilir.

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 kullanarak örnek

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.