Hızlı başlangıç
Kayıt, app oluşturma, kanal kurulumu, SDK kurulumu ve ilk bildirim — 15 dakikada test push.
Bu rehber sıfırdan ilk bildirime kadar olan adımları izler. Dashboard'daki Başlangıç sihirbazı (/<org>/getting-started) aynı adımları app → kanal (ya da simülasyon) → SDK snippet → canlı cihaz algılama → test push sırasıyla yürütür ve cihaz kaydını canlı gösterir.
1. Kayıt ve organizasyon
https://<dashboard>/registeradresinden e-posta ve parolayla kayıt olun (Google/GitHub ile giriş de etkinleştirilmiş olabilir). Gelen doğrulama e-postasındaki bağlantıya tıklayın; yerel geliştirmede e-postalar Mailpit'te (http://localhost:8025) görünür.- Onboarding adımında organizasyon adınızı verin. Her yeni organizasyon 14 günlük
starterdenemesiyle başlar; sonrasındafreeplan (10k abone, 100k mesaj/ay) devam eder. Planlar ve kotalar: Faturalama. - İsteğe bağlı: Hesap → MFA ile iki aşamalı doğrulamayı açın (organizasyon düzeyinde zorunlu kılınabilir).
2. App oluşturma
Dashboard → App'ler → Yeni app (ya da Başlangıç sihirbazı). App oluşturulunca app_… kimliğini App ayarları'nda görürsünüz; istemci SDK'ları bu kimlikle çalışır.
API ile (org geneli admin anahtarıyla):
curl -X POST https://api.example.com/v1/apps \
-H "Authorization: Bearer hs_live_…" -H "Content-Type: application/json" \
-d '{"name":"Mağaza"}'3. Kanal kurulumu
App ayarları → Kanallar'da en az bir kanalı etkinleştirin. Gerçek kimlik bilgisi yoksa her kanal simülasyon (mock) sağlayıcısıyla da çalışır; teslimat hattı uçtan uca işler, bildirim cihaza gitmez.
| Kanal | Gerekenler | Doğrulama |
|---|---|---|
| Web Push | Yalnızca etkinleştirme (VAPID çifti otomatik üretilir), gönderici subject (mailto: ya da https://) | Anında active |
| iOS Push | APNs .p8 anahtarı, Key ID, Team ID, Bundle ID, ortam (sandbox / production) | APNs bağlantı testi |
| Android Push | Firebase servis hesabı JSON'u | FCM bağlantı testi |
| E-posta | SMTP / SES / Resend bilgileri, gönderici adresi (SPF/DKIM/DMARC önerilir) | Sağlayıcı testi |
| SMS | Twilio ya da Netgsm bilgileri | Sağlayıcı testi |
Gizli alanlar (p8, servis hesabı, parola, API anahtarı) şifreli saklanır ve hiçbir yanıtta geri dönmez. API: PUT /v1/apps/{app_id}/channels/{channel} + POST …/validate (admin).
4. SDK kurulumu
Geliştirici → SDK Kurulumu sayfası App ID ve API adresi yerleştirilmiş snippet'leri verir. En hızlı yol web:
<script src="https://api.example.com/sdk-web/PushizoSDK.js" async></script>
<script>
window.PushizoDeferred = window.PushizoDeferred || [];
PushizoDeferred.push(async (Pushizo) => {
await Pushizo.init({ appId: 'app_…', apiUrl: 'https://api.example.com' });
});
</script>Site kökünde PushizoSDKWorker.js:
const apiUrl = new URL(self.location.href).searchParams.get('apiUrl') || 'https://api.example.com';
importScripts(`${apiUrl}/sdk-web/PushizoSDKWorker.js`);Bir düğmeye Pushizo.Notifications.requestPermission() bağlayın; izin verilince abonelik oluşur ve Dashboard → Abonelikler'de web_push kaydı görünür. Mobil ve sunucu SDK'ları için SDK rehberleri: iOS (Pushizo.initialize), Android (Pushizo.initialize(context, appId, options)), Flutter (Pushizo.initialize), Node (new Pushizo({ apiKey })), PHP (new Client([...])).
Kullanıcı kimliğini bildiğiniz anda Pushizo.login('user_42') çağırın; böylece aynı kullanıcının tüm cihazları birleşir ve sunucudan external_id ile hedefleyebilirsiniz.
5. İlk bildirim
Dashboard'dan
Abonelikler → kaydı Test cihazı yapın → Mesajlar → Test push gönder. Bildirim cihaza gelir; tıklayınca sayfa/uygulama açılır ve Mesaj İzleme'de queued → sent → received → opened zaman çizelgesi görünür. Başlangıç sihirbazı bu adımı ≤ 15 dakika hedefiyle ölçer.
API'den
Organizasyon → API anahtarları'ndan notifications:write kapsamlı bir anahtar oluşturun (ham anahtar yalnızca bir kez gösterilir).
curl -X POST https://api.example.com/v1/notifications \
-H "Authorization: Bearer hs_live_…" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: ilk-bildirim-1" \
-d '{
"app_id": "app_…",
"target": { "test_devices_only": true },
"headings": { "tr": "Merhaba", "en": "Hello" },
"contents": { "tr": "Pushizo çalışıyor", "en": "Pushizo is working" },
"url": "https://example.com"
}'
# 202 → { "id": "msg_…", "status": "queued", "recipients_estimate": 1, "external_id_missing": [] }target.test_devices_only: true yalnızca test cihazlarına gönderir; gerçek hedefleme için include_external_ids, include_aliases, included_segments ya da all: true. Durum: GET /v1/notifications/{message_id} (counts.sent, delivered, opened…), teslimatlar: GET /v1/notifications/{message_id}/deliveries.
Node ile aynı istek:
import { Pushizo } from '@pushizo/node';
const hs = new Pushizo({ apiKey: process.env.HS_API_KEY!, appId: 'app_…', baseUrl: 'https://api.example.com' });
const result = await hs.notifications.create({
idempotency_key: 'ilk-bildirim-1',
target: { test_devices_only: true },
headings: { tr: 'Merhaba' },
contents: { tr: 'Pushizo çalışıyor' },
});
console.log(result.id, result.status);6. Sonraki adımlar
- Olay ve dönüşüm:
Pushizo.Session.sendEvent('purchase', { sku: 'A1' }, 49.9)ya daPOST /v1/apps/{app_id}/events; olay tanımındais_conversionişaretleyin. - Segment ve kampanya: Dashboard → Kitle → Segmentler; Kampanyalar ile zamanlama, A/B testi (A/B testi).
- Webhook: teslimat ve abonelik olaylarını sunucunuza alın (Webhook'lar).
- Journey: olay/segment tetikli otomasyon (Journey'ler).
- E-posta, SMS, in-app, bildirim kutusu: Mesajlaşma.
- OneSignal'den geliyorsanız: göç rehberi.