Ana içeriğe atla
OneSignal’in eski entegrasyonu ile Snowflake kullanıyorsanız, lütfen Snowflake Eski Entegrasyon kılavuzuna bakın.

OneSignal Snowflake entegrasyon genel bakışı


Genel Bakış

OneSignal + Snowflake entegrasyonu iki güçlü veri işlem hattını destekler:
  • Dışa Aktarma: Analiz ve raporlama için OneSignal’den Snowflake’e mesajlaşma etkinliği verilerini (push, e-posta, SMS, uygulama içi) otomatik olarak gönderin.
  • İçe Aktarma: Otomatik Journey’leri ve kişiselleştirilmiş mesajlaşmayı tetiklemek için Snowflake veri kümelerinizden OneSignal’e özel kullanıcı etkinliklerini senkronize edin.
Bu entegrasyonlar birlikte, kullanıcı etkileşim verileri üzerinde tam kontrol sağlar—gelişmiş analitik ve gerçek zamanlı davranış odaklı mesajlaşmayı güçlendirir.

OneSignal etkinliklerini Snowflake’e aktarma

Aşağıdakiler için mesajlaşma performansı ve etkileşim etkinliklerini (örneğin, gönderimler, açılmalar, tıklamalar) Snowflake’e gönderin:
  • Özel panolar ve raporlar oluşturma
  • Kanallar arasında teslimat ve etkileşim eğilimlerini takip etme
  • Analiz için OneSignal verilerini diğer iş verileriyle birleştirme
Gereksinimler
  • OneSignal Professional Planı (ücretsiz uygulamalarda mevcut değildir)
  • Snowflake hesabı
  • Snowflake’te SECURITYADMIN veya ACCOUNTADMIN rolü (kurulum için)
Kurulum Adımları

1. Snowflake hesap bilgilerinizi toplayın

Entegrasyonu yapılandırmadan önce, Snowflake hesabınızdan aşağıdaki bilgileri toplayın:
  • Snowflake Host: <account_identifier>.snowflakecomputing.com formatındaki hesap URL’niz
  • Veritabanı adı: OneSignal’in etkinlik verilerini yazacağı veritabanı
  • Şema adı: OneSignal tabloları için veritabanı içindeki şema (bu OneSignal tarafından otomatik olarak oluşturulacaktır)
  • Warehouse adı: Veri yükleme işlemleri için kullanılacak warehouse

Snowflake hesap tanımlayıcı konumu

2. Snowflake’te kurulum betiğini çalıştırın

OneSignal için gerekli rolü, kullanıcıyı, warehouse’u ve veritabanını oluşturmak için Snowflake warehouse’unuzda aşağıdaki SQL betiğini çalıştırın:
begin;

   -- create variables for user / role / warehouse / database (needs to be uppercase for objects)
   set role_name = 'ONESIGNAL_ROLE';
   set user_name = 'ONESIGNAL_USER';
   set warehouse_name = 'ONESIGNAL_WAREHOUSE';
   set database_name = 'ONESIGNAL';

   -- change role to securityadmin for user / role steps
   use role securityadmin;

   -- create role for onesignal
   create role if not exists identifier($role_name);
   grant role identifier($role_name) to role SYSADMIN;

   -- create a user for onesignal
   create user if not exists identifier($user_name)
   default_role = $role_name
   default_warehouse = $warehouse_name;

   grant role identifier($role_name) to user identifier($user_name);

   -- set binary_input_format to BASE64
   ALTER USER identifier($user_name) SET BINARY_INPUT_FORMAT = 'BASE64';

   -- set timestamp_input_format to AUTO for the user
   ALTER USER identifier($user_name) SET TIMESTAMP_INPUT_FORMAT = 'AUTO';

   -- change role to sysadmin for warehouse / database steps
   use role sysadmin;

   -- create a warehouse for onesignal
   create warehouse if not exists identifier($warehouse_name)
   warehouse_size = xsmall
   warehouse_type = standard
   auto_suspend = 60
   auto_resume = true
   initially_suspended = true;

   -- create database for onesignal
   create database if not exists identifier($database_name);

   -- grant onesignal role access to warehouse
   grant USAGE
   on warehouse identifier($warehouse_name)
   to role identifier($role_name);

   -- grant onesignal access to database
   grant CREATE SCHEMA, MONITOR, USAGE
   on database identifier($database_name)
   to role identifier($role_name);

 commit;
Adlandırma kurallarınıza uyacak şekilde betiğin üstündeki değişken değerlerini özelleştirebilirsiniz. Mevcut bir warehouse veya veritabanı kullanıyorsanız, betiği buna göre değiştirin.

3. Kimlik doğrulama için anahtar çifti oluşturun

OneSignal, Snowflake hesabınıza güvenli erişim için anahtar çifti kimlik doğrulaması gerektirir. Anahtarları oluşturmak ve yapılandırmak için şu adımları izleyin:
1

Özel anahtar oluşturun

Özel anahtar oluşturmak için aşağıdaki komutlardan birini çalıştırın:Şifrelenmemiş özel anahtar (daha basit ancak daha az güvenli):
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -out rsa_key.p8 -nocrypt
Şifrelenmiş özel anahtar (üretim için önerilir):
openssl genrsa 2048 | openssl pkcs8 -topk8 -v2 aes256 -inform PEM -out rsa_key.p8
Şifrelenmiş anahtar kullanıyorsanız, bir parola oluşturmanız istenecektir. Bu parolayı güvenli bir şekilde saklayın—OneSignal’i yapılandırırken ihtiyacınız olacak.
2

Genel anahtarı oluşturun

Özel anahtarınızdan genel anahtarı oluşturun:
openssl rsa -in rsa_key.p8 -pubout -out rsa_key.pub
3

Genel anahtarı Snowflake kullanıcınıza atayın

Genel anahtar dosyasının içeriğini kopyalayın (başlık ve alt bilgi satırlarını hariç tutarak), ardından Snowflake’te şu SQL komutunu çalıştırın:
ALTER USER ONESIGNAL_USER SET RSA_PUBLIC_KEY='<YOUR_PUBLIC_KEY_CONTENT>';
<YOUR_PUBLIC_KEY_CONTENT> yerine anahtar içeriğini yazın (-----BEGIN PUBLIC KEY----- ve -----END PUBLIC KEY----- satırları olmadan).
Özel anahtar dosyanızı güvenli bir şekilde saklayın. Bir sonraki adımda OneSignal’e sağlamanız gerekecek. Özel anahtarınızı asla herkese açık olarak paylaşmayın veya sürüm kontrolüne göndermyin.

4. OneSignal’i bağlayın

1

Entegrasyonu etkinleştirin

OneSignal’de Data > Integrations > Snowflake bölümüne gidin.
2

Detayları girin

  • Host: <your_account>.snowflakecomputing.com
  • Database: örneğin, ONESIGNAL
  • Schema
  • Table: örneğin, message_events
  • User: ONESIGNAL_USER (veya oluşturduğunuz kullanıcı adı)
  • Private Key: Özel anahtar dosyanızın içeriğini yapıştırın (rsa_key.p8)
  • Private Key Passphrase (isteğe bağlı, yalnızca özel anahtarınız şifrelenmiş ise)
3

Entegrasyonu yapılandırın

  • Sync Frequency: her 15 dakikada bir kadar sık
  • Schema/Table Names: onesignal_events_<app-id> ve message_events olarak önceden ayarlanmış (düzenlenebilir)
  • Event Types: hangi etkinlikleri senkronize edeceğinizi seçin—tümünü veya yalnızca ihtiyacınız olanları seçin
4

Etkinlikleri seçin

Snowflake warehouse’unuzda almak istediğiniz etkinlikleri seçin.
5

Kurulumu tamamlayın

Save düğmesine tıklayın ve başarı onayını bekleyin
İlk veri senkronizasyonunun Snowflake’te görünmesi 15-30 dakika sürebilir.Beklerken, seçilen etkinlikleri tetiklemek için push, e-posta, uygulama içi veya SMS yoluyla mesajlar gönderin.

5. Snowflake’te verileri görüntüleyin

İlk senkronizasyon tamamlandıktan sonra, OneSignal etkinlik verilerinizi sorgulayın:
-- View recent message events
SELECT *
FROM <your-database>.<your-schema>.message_events
ORDER BY _CREATED DESC
LIMIT 100;
Eksik şemalar, izin hataları veya hatalı biçimlendirilmiş etkinlikler gibi sorunlarla karşılaşırsanız, [email protected] ile iletişime geçin.

Mesaj etkinlikleri ve özellikleri

Mesaj etkinlik türleri

Özellik: event_kind Tür: String Mesaj ve etkinlik türü (örneğin message.push.received, message.push.sent).
Mesaj Etkinliği (OneSignal)event_kindAçıklama
Push Gönderildimessage.push.sentPush bildirimi başarıyla gönderildi.
Push Alındımessage.push.receivedTeslim edilmiş push (bkz. Onaylanmış Teslimat).
Push Tıklandımessage.push.clickedKullanıcı push’u tıkladı.
Push Başarısızmessage.push.failedTeslimat hatası. Mesaj raporlarına bakın.
Push Abonelik İptal Edildimessage.push.unsubscribedKullanıcı push aboneliğini iptal etti.
Uygulama İçi Gösterimmessage.iam.displayedUygulama içi mesaj gösterildi.
Uygulama İçi Tıklandımessage.iam.clickedUygulama içi mesaj tıklandı.
Uygulama İçi Sayfa Görüntülendimessage.iam.pagedisplayedUygulama içi sayfa gösterildi.
E-posta Gönderildimessage.email.sentE-posta teslim edildi.
E-posta Alındımessage.email.receivedE-posta alıcının posta sunucusu tarafından kabul edildi.
E-posta Açıldımessage.email.openedE-posta açıldı. Bkz. E-posta Raporları.
E-posta Bağlantısı Tıklandımessage.email.clickedE-postadaki bağlantı tıklandı.
E-posta Abonelik İptal Edildimessage.email.unsubscribedAlıcı aboneliğini iptal etti.
E-posta Spam Olarak İşaretlendimessage.email.resporedasspamSpam olarak işaretlendi. Bkz. E-posta Teslim Edilebilirliği.
E-posta Geri Döndümessage.email.hardbouncedKalıcı teslimat hatası nedeniyle geri döndü.
E-posta Başarısızmessage.email.failedTeslimat başarısız oldu.
E-posta Bastırıldımessage.email.supressedBastırma listesi nedeniyle bastırıldı.
SMS Gönderildimessage.sms.sentSMS gönderildi.
SMS Teslim Edildimessage.sms.deliveredSMS başarıyla teslim edildi.
SMS Başarısızmessage.sms.failedSMS teslim edilemedi.
SMS Teslim Edilemedimessage.sms.undeliveredSMS reddedildi veya ulaşılamıyor.

Etkinlik veri şeması

Bir kullanıcı tarafından oluşturulan her mesaj etkinliği için, aşağıdaki meta veriler kayda eklenecektir.
Sütun AdıTürAçıklama
event_idUUIDEtkinlik için benzersiz tanımlayıcı
event_timestampTimestampEtkinlik gerçekleşme zamanı
event_kindStringEtkinlik Türü
subscription_device_typeStringCihaz türü (örneğin, iOS, Android, Web, E-posta, SMS)
languageStringAbonelik dil kodu
versionStringEntegrasyon sürümü
device_osStringCihaz işletim sistemi sürümü
device_typeNumberSayısal cihaz türü
tokenStringPush token, telefon numarası veya e-posta
subscription_idUUIDAbonelik ID’si
subscribedBooleanAbonelik durumu
onesignal_idUUIDOneSignal kullanıcı ID’si
last_activeStringSon aktif zaman damgası
sdkStringOneSignal SDK sürümü
external_idStringEntegrasyon kullanıcı ID’si ile eşleşmesi gereken harici kullanıcı ID’si
app_idUUIDOneSignal’dan uygulama ID’si
template_idUUIDŞablon ID’si (varsa)
message_idUUIDMesaj grubu/istek ID’si
message_nameStringMesajın adı
message_titleStringMesaj başlığı (yalnızca İngilizce)
message_contentsStringKısaltılmış mesaj gövdesi (yalnızca İngilizce)
_created, _id, _index, _fivetran_syncedDahili kullanımFivetran senkronizasyon meta verileri

Notlar

  • Kaydetme/etkinleştirme sonrası senkronizasyonlar tamamlanması için ek 15-30 dakika alabilir.
  • Devre dışı bırakma, devre dışı bırakıldıktan sonra hala bir son senkronizasyonla sonuçlanabilir.
  • Verimli veri senkronizasyonunu sağlamak için sistemimiz otomatik olarak hazırlama veri kümelerini oluşturur ve yönetir. fivetran_{iki rastgele kelime}_staging gibi bir desenle adlandırılan bu veri kümeleri, ana şemanıza entegre edilmeden önce işleme sırasında geçici olarak veri depolar. Bu hazırlama veri kümeleri akıcı bir iş akışını sürdürmek için gereklidir ve otomatik olarak yeniden oluşturulacakları için silinmemelidir.

Snowflake’ten etkinlikleri içe aktarma

Aşağıdakiler için Snowflake’ten OneSignal’e davranışsal etkinlik verileri gönderin:
  • Kullanıcı etkinliğine dayalı Journey’leri tetikleme
  • Davranışsal verilere dayalı mesajlaşmayı kişiselleştirme
Gereksinimler
  • Giden mesaj etkinlikleri için Event Streams’e erişim (Plan kısıtlamaları ve aşımlar geçerlidir)
  • Gelen etkinlik senkronizasyonu için Custom Events’e erişim (Plan kısıtlamaları ve aşımlar geçerlidir)
  • Güncellenmiş Hesap Planı (ücretsiz uygulamalarda mevcut değildir)
  • Warehouse erişimi olan Snowflake hesabı
  • Snowflake tablolarında veya görünümlerinde depolanan Etkinlik verileri
  • OneSignal’den Snowflake örneğinize Ağ bağlantısı
  • Uygun izinlere sahip Kullanıcı kimlik bilgileri
Kurulum Adımları
1

OneSignal için özel rol oluşturun

Snowflake en iyi uygulamalarını izleyerek bir rol hiyerarşisi oluşturun:
-- Create a role for the census user
CREATE ROLE CENSUS_ROLE;

-- Ensure the sysadmin role inherits any privileges the census role is granted
GRANT ROLE CENSUS_ROLE TO ROLE SYSADMIN;
2

Özel warehouse oluşturun

OneSignal işlemleri için maliyet optimize edilmiş bir warehouse oluşturun:
-- Create a warehouse for the census role, optimizing for cost over performance
CREATE WAREHOUSE CENSUS_WAREHOUSE WITH
    WAREHOUSE_SIZE = XSMALL
    AUTO_SUSPEND = 60
    AUTO_RESUME = TRUE
    INITIALLY_SUSPENDED = FALSE;

GRANT USAGE ON WAREHOUSE CENSUS_WAREHOUSE TO ROLE CENSUS_ROLE;
GRANT OPERATE ON WAREHOUSE CENSUS_WAREHOUSE TO ROLE CENSUS_ROLE;
GRANT MONITOR ON WAREHOUSE CENSUS_WAREHOUSE TO ROLE CENSUS_ROLE;
3

Kullanıcı oluşturun ve izinleri verin

OneSignal kullanıcısını oluşturun ve etkinlik verilerinize erişim verin:
-- Create the census user
CREATE USER CENSUS WITH
    DEFAULT_ROLE = CENSUS_ROLE
    DEFAULT_WAREHOUSE = CENSUS_WAREHOUSE
    PASSWORD = '<strong-unique-password>';

GRANT ROLE CENSUS_ROLE TO USER CENSUS;

-- Grant access to your event data (replace with your actual database/schema)
GRANT USAGE ON DATABASE "<your-database>" TO ROLE CENSUS_ROLE;
GRANT USAGE ON SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
GRANT SELECT ON ALL TABLES IN SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
GRANT SELECT ON FUTURE TABLES IN SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
GRANT SELECT ON ALL VIEWS IN SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
GRANT SELECT ON FUTURE VIEWS IN SCHEMA "<your-database>"."<your-schema>" TO ROLE CENSUS_ROLE;
4

Defter tutma veritabanı oluşturun (Advanced Sync Engine)

OneSignal’in senkronizasyon durumu yönetimi için özel bir veritabanı oluşturun:
-- Create a private bookkeeping database
CREATE DATABASE "CENSUS";
GRANT ALL PRIVILEGES ON DATABASE "CENSUS" TO ROLE CENSUS_ROLE;

CREATE SCHEMA "CENSUS"."CENSUS";
GRANT ALL PRIVILEGES ON SCHEMA "CENSUS"."CENSUS" TO ROLE CENSUS_ROLE;
GRANT CREATE STAGE ON SCHEMA "CENSUS"."CENSUS" TO ROLE CENSUS_ROLE;
Basic Sync Engine veya salt okunur modu kullanıyorsanız bu adımı atlayın.
5

Kimlik doğrulamayı yapılandırın

Gelişmiş güvenlik için anahtar çifti kimlik doğrulaması (önerilir) kurun:
  1. Snowflake’in belgelerini takip ederek genel/özel anahtar çifti oluşturun
  2. Snowflake kullanıcınızda genel anahtarı yapılandırın
  3. OneSignal’in bağlantı ayarlarında özel anahtarı kullanın
Alternatif olarak, parola kimlik doğrulaması kullanabilirsiniz (kullanımdan kaldırıldı - Kasım 2025’te engellenecek).
6

OneSignal'e bağlanın

OneSignal’da, Veri > Entegrasyonlar’a gidin ve Entegrasyon Ekle’ye tıklayın.Snowflake’i seçin ve aşağıdaki bağlantı detaylarını sağlayın:
  • Account Name: Snowflake hesap tanımlayıcınız (örneğin, abc123.us-east-1)
  • Warehouse: CENSUS_WAREHOUSE
  • User: CENSUS
  • Database: Etkinlik verisi veritabanı adınız
  • Schema: Etkinlik verisi şema adınız
  • Authentication: Key-pair (özel anahtar ve isteğe bağlı parola sağlayın)

Etkinlik veri eşleştirme

verilerinizi OneSignal’ın özel etkinlik formatına eşleştirin:
OneSignal AlanıAçıklamaGerekli
nameevent_nameEtkinlik tanımlayıcıEvet
external_iduser_idKullanıcı tanımlayıcıEvet
timestampevent_timestampEtkinliğin gerçekleştiği zamanHayır
propertiesevent_dataHayır

Örnek Etkinlik Tablosu Şeması

-- Example Snowflake event table
CREATE TABLE analytics.user_events (
    event_id STRING,
    event_name STRING NOT NULL,
    user_id STRING NOT NULL,
    event_timestamp TIMESTAMP_TZ DEFAULT CURRENT_TIMESTAMP(),
    event_properties VARIANT,
    session_id STRING,
    device_type STRING
);

SQL Sorgu Modu

Etkinlik verilerinizi dönüştürmek için özel SQL sorguları yazın:
-- Example: Recent high-value events
SELECT
    event_name,
    user_id,
    event_timestamp,
    event_properties
FROM analytics.user_events
WHERE event_timestamp >= DATEADD(day, -7, CURRENT_TIMESTAMP())
    AND event_properties:value::NUMBER > 100
ORDER BY event_timestamp DESC;

Gelişmiş yapılandırma

Warehouse Maliyetlerini Yönetme

  • Maliyet optimizasyonu için X-Small warehouse boyutu kullanın
  • Otomatik askıya alma (60 saniye) ve otomatik devam ettirmeyi yapılandırın
  • Yoğun olmayan saatlerde senkronizasyonları planlayın
  • Warehouse’u diğer toplu işleme sistemleriyle paylaşmayı düşünün

Canlı Senkronizasyon Desteği

Gerçek zamanlı etkinlik işleme için etkinlik tablolarınızda değişiklik takibini etkinleştirin:
ALTER TABLE "analytics"."user_events" SET CHANGE_TRACKING = TRUE;

Ağ Güvenliği

Snowflake’in İzin Verilen IP’ler ağ politikasını kullanıyorsanız, OneSignal’in IP adreslerini izin verilenler listesine ekleyin. Mevcut IP aralıkları için OneSignal desteğiyle iletişime geçin.

Sınırlamalar

  • Karmaşık analitik sorgular warehouse performansını ve maliyetlerini etkileyebilir
  • Kullanıcı/Parola kimlik doğrulaması Kasım 2025’te kullanımdan kaldırılacak
  • CENSUS veritabanı yalnızca OneSignal işlemleri için ayrılmıştır

SSS

Hangi kimlik doğrulama yöntemini kullanmalıyım?

Anahtar çifti kimlik doğrulaması kullanın (önerilir). Kullanıcı/Parola kimlik doğrulaması Kasım 2025’ten itibaren Snowflake tarafından engellenecektir.

Mevcut bir warehouse kullanabilir miyim?

Evet, maliyetleri optimize etmek için dbt veya Fivetran gibi diğer toplu işleme sistemleriyle bir warehouse paylaşabilirsiniz. Warehouse’un etkinlik işleme ihtiyaçlarınız için yeterli kapasiteye sahip olduğundan emin olun.

Maliyetleri nasıl optimize edebilirim?

  • X-Small warehouse boyutu kullanın
  • Agresif otomatik askıya alma (60 saniye) yapılandırın
  • Yoğun olmayan saatlerde senkronizasyonları planlayın
  • Sürekli senkronizasyon yerine saatlik/günlük senkronizasyonlar kullanın