Webhook Yapılandırma Kılavuzu

Webhook Nedir?

Webhook, izlenen içerik sizin belirlediğiniz eşik değerlerine ulaştığında SNSTracker’ın sunucunuza veya uygulamanıza otomatik bildirim göndermesini sağlar. Örneğin, bir videonun görüntülenme sayısı belirgin şekilde arttığında veya bir kanal yeni takipçiler kazandığında, SNSTracker webhook URL’nize (genellikle 1 dakika içinde) bildirim gönderir.

Adım Adım Yapılandırma Kılavuzu

Adım 1: Webhook Endpoint’inizi Hazırlayın

SNSTracker’da yapılandırmadan önce, hazır bir webhook endpoint’iniz olmalıdır. Bu, HTTP POST isteklerini alabilen bir URL’dir.

Webhook endpoint’iniz için seçenekler:

  1. Kendi sunucunuz: https://api.yourcompany.com/webhook
  2. Bulut fonksiyonları: AWS Lambda, Google Cloud Functions, Azure Functions vb.
  3. Otomasyon platformları: Zapier, Make.com, n8n vb.
  4. Test servisleri: webhook.site (yalnızca test için)

Gereksinimler:

  • HTTPS kullanmalı (URL https:// ile başlamalı)
  • POST isteklerini kabul etmeli
  • Başarı için HTTP 200-299 durum kodu döndürmeli

Adım 2: SNSTracker’da Webhook Hedefi Ekleyin

  1. Collections sayfasına gidin

    • SNSTracker’a giriş yapın
    • Sol kenar çubuğunda (Track bölümünün altında) Collections’a tıklayın
    • Ya da doğrudan şuraya gidin: /dashboard/collections
  2. Manage Notify Targets’ı açın

    • Collections sayfasında "Manage Notify Targets" düğmesini bulun ve tıklayın
    • Bu, bildirim hedefleri yönetim penceresini açar
  3. Yeni bir hedef ekleyin

    • "Add Target" düğmesine tıklayın
    • Yeni bir bildirim hedefi oluşturmak için bir pencere açılır
  4. Webhook türünü seçin

    • Pencerede "Type" açılır listesini bulun
    • Seçeneklerden "Webhook"’u seçin
  5. Webhook URL’sini girin

    • "Webhook URL" alanına webhook endpoint URL’nizi girin
    • Örnek: https://api.yourcompany.com/webhook
    • Önemli: URL https:// ile başlamalıdır
  6. Yorum ekleyin (isteğe bağlı)

    • "Comment" alanında bu webhook’un ne için olduğunu hatırlamak üzere not ekleyebilirsiniz
    • Örnek: "TikTok izleme için production webhook"
    • En fazla 50 karakter
  7. İmza anahtarını yapılandırın (isteğe bağlı, production için önerilir)

    • "Extra" alanına imza anahtarı içeren bir JSON nesnesi ekleyebilirsiniz:
    {
      "signature_key": "your-secret-key-here"
    }
    • Bu anahtar, isteklerin doğruluğunu doğrulamak için kullanılacaktır
    • Sağlanmazsa, SNSTracker imza anahtarı olarak API anahtarınızı veya webhook URL’nizi kullanır
  8. Webhook hedefini kaydedin

    • "Save" düğmesine tıklayın
    • Webhook hedefiniz artık oluşturuldu ve kullanıma hazır

Adım 3: Collection İçinde Bildirim Kurallarını Yapılandırın

  1. Collection ayarlarını açın

    • Collections sayfasına geri dönün
    • Bildirimleri yapılandırmak istediğiniz collection’ı bulun
    • Edit düğmesine tıklayın (veya ayarları açmak için collection adına tıklayın)
  2. Feed Notify’i etkinleştirin (videolar/gönderiler için)

    • Collection ayarlarında "Feed Notify" bölümünü bulun
    • "Enable Notifications" anahtarını AÇIK konuma getirin
    • "Notify Targets" açılır listesinden webhook hedefinizi seçin
    • İzlemek istediğiniz "Metrics"’i seçin:
      • Görüntülenmeler
      • Etkileşim (beğeniler + yorumlar + paylaşımlar)
    • "Threshold" değerini ayarlayın:
      • Metrik bu kadar arttığında bildirim almak için bir sayı girin (örn. 1000)
      • Her başarılı yenilemeden sonra bildirim almak için 0’a ayarlayın
    • "Save" veya "Update"’e tıklayın
  3. Channel Notify’i etkinleştirin (hesaplar için)

    • Aynı collection ayarlarında "Channel Notify" bölümünü bulun
    • "Enable Notifications" anahtarını AÇIK konuma getirin
    • "Notify Targets" açılır listesinden webhook hedefinizi seçin
    • İzlemek istediğiniz "Metrics"’i seçin:
      • Takipçiler
      • Takip edilenler
      • Beğeniler
    • "Threshold" değerini ayarlayın:
      • Metrik bu kadar arttığında bildirim almak için bir sayı girin (örn. 500)
      • Her başarılı yenilemeden sonra bildirim almak için 0’a ayarlayın
    • "Save" veya "Update"’e tıklayın
  4. Yapılandırmayı doğrulayın

    • Hem webhook hedefinin hem de bildirim kurallarının kaydedildiğinden emin olun
    • Artık webhook’unuz, yapılandırılan eşik değerleri karşılandığında bildirim alacaktır

Adım 4: Webhook’unuzu Test Edin

  1. Test servisi kullanın (ilk kurulum için önerilir)

    • webhook.site adresini ziyaret edin
    • Sağlanan benzersiz URL’yi kopyalayın (örn. https://webhook.site/unique-id)
    • Bu URL’yi Adım 2’de webhook URL’niz olarak kullanın
    • Eşiği 0 olan bir bildirim yapılandırın (her değişimde tetiklenmesi için)
    • SNSTracker’ın içeriğinizi kontrol etmesini bekleyin
    • Bildirimi alıp almadığınızı webhook.site üzerinden kontrol edin
  2. Endpoint günlüklerinizi kontrol edin

    • Kendi sunucunuzu kullanıyorsanız, sunucu loglarını kontrol edin
    • SNSTracker’dan gelen POST isteklerini arayın
    • İstek gövdesinin beklenen verileri içerdiğini doğrulayın
  3. Bildirim formatını doğrulayın

    • Bildirim, şu alanları içeren bir JSON nesnesi olmalıdır:
      • title: Bildirimin açıklaması
      • type: "feed" veya "channel"
      • timestamp: Bildirimin gönderildiği zaman
      • data: Bildirimi tetikleyen öğelerin dizisi

Webhook Bildirimleri Nasıl Gönderilir?

SNSTracker, webhook teslimatını optimize etmek için toplu (batch) mekanizma kullanır:

  • Anında Tespit: İzlenen bir kaynak (feed veya channel) başarıyla yenilendiğinde ve bildirim eşiğini karşıladığında, hemen bildirim için işaretlenir.

  • 1 Dakikalık Batch Penceresi: SNSTracker, bildirimleri tek tek hemen göndermek yerine 1 dakikalık bir zaman penceresinde uygun olan tüm bildirimleri biriktirir.

  • Birleştirilmiş Teslimat: Her 1 dakikalık periyodun sonunda, o pencereye ait tüm bildirimler tek bir webhook isteği içinde birleştirilip birlikte gönderilir.

Örnek Senaryo:

  • 10:00:15’te Feed A eşiği karşılar → işaretlenir
  • 10:00:45’te Feed B eşiği karşılar → işaretlenir
  • 10:01:00’da Feed A ve Feed B tek bir webhook isteğiyle gönderilir

Faydaları:

  • Endpoint’inize giden HTTP istek sayısını azaltır
  • Verimliliği artırır ve sunucu yükünü azaltır
  • Hızlı veri değişimlerinde bildirim spam’ini önler
  • Batch süresi içindeki tüm bildirimler data dizisine dahil edilir

Not: Bir kaynağın eşiğe ulaşması ile webhook’un gönderilmesi arasındaki maksimum gecikme 1 dakikadır. Bu, sistem verimliliğini korurken neredeyse gerçek zamanlı bildirim sağlar.

Hangi Verileri Alacaksınız?

Bir bildirim tetiklendiğinde, aşağıdaki gibi JSON verisi içeren bir POST isteği alırsınız:

{
  "title": "SNSTracker Notification: Feed Views Increased",
  "type": "feed",
  "timestamp": "2024-01-15T10:30:00Z",
  "data": [
    {
      "feed_id": "feed-123",
      "url": "https://www.tiktok.com/@user/video/123",
      "platform_name": "TikTok",
      "view_count": 10000,
      "like_count": 2000,
      "changed_views": 1000,
      "changed_engagement": 50
    }
  ]
}

Feed Bildirimi Veri Alanları

  • feed_id: Benzersiz tanımlayıcı
  • url: Videoya/gönderiye doğrudan bağlantı
  • platform_name: Platform (TikTok, Instagram vb.)
  • title: İçerik başlığı
  • description: İçerik açıklaması
  • author_username: Üreticinin kullanıcı adı
  • author_nickname: Üreticinin görünen adı
  • view_count: Toplam görüntülenme
  • like_count: Toplam beğeni
  • comment_count: Toplam yorum
  • share_count: Toplam paylaşım
  • changed_views: Son kontrolden bu yana artan görüntülenmeler
  • changed_engagement: Artan etkileşim (beğeniler + yorumlar + paylaşımlar)

Channel Bildirimi Veri Alanları

  • id: Kanal benzersiz tanımlayıcısı
  • channel_url: Kanal/profil doğrudan bağlantısı
  • platform_name: Platform adı
  • nickname: Görünen ad
  • username: Kullanıcı adı/handle
  • followers: Toplam takipçi
  • followings: Takip edilen toplam hesap sayısı
  • likes: Toplam beğeni
  • changed_followers: Son kontrolden bu yana artan takipçiler
  • changed_followings: Son kontrolden bu yana artan takip edilenler
  • changed_likes: Son kontrolden bu yana artan beğeniler

Güvenlik: İmza Doğrulama

SNSTracker, isteğin doğruluğunu doğrulamak için X-Signature başlığında bir imza içerir. İmza anahtarı şu şekilde belirlenir:

  1. Extra alanındaki signature_key (sağlandıysa)
  2. İlk aktif API anahtarınız (signature_key ayarlı değilse)
  3. Webhook URL’niz (yedek seçenek)

Production kullanım için, isteklerin gerçek olduğunu doğrulamak amacıyla imzayı doğrulamanız önerilir.

Sorun Giderme

Webhook bildirim almıyor

  1. Webhook URL’sini kontrol edin

    • URL’nin doğru ve erişilebilir olduğunu doğrulayın
    • https:// ile başladığından emin olun
    • URL’yi bir POST isteğiyle manuel olarak test edin
  2. Bildirim ayarlarını kontrol edin

    • Collection’ınızda bildirimlerin etkin olduğundan emin olun
    • Webhook hedefinin seçili olduğunu kontrol edin
    • Eşik değerlerinin doğru ayarlandığından emin olun
  3. Endpoint durumunu kontrol edin

    • Endpoint’inizin çalışır ve erişilebilir olduğundan emin olun
    • Sunucu loglarını gelen istekler için kontrol edin
    • Endpoint’inizin başarı durumu (200-299) döndürdüğünü doğrulayın

Yaygın Sorunlar

Sorun: "Webhook URL already exists"
Çözüm: Her webhook URL’si takım başına yalnızca bir kez kullanılabilir. Farklı bir URL kullanın veya mevcut hedefi düzenleyin.

Sorun: Bildirimler tetiklenmiyor
Çözüm:

  • Test için eşiği 0’a ayarlayın (her değişimde bildirim)
  • SNSTracker’ın içeriğinizi kontrol etmesini bekleyin (kontroller periyodik olarak yapılır)
  • İçeriğinizin eşik miktarında gerçekten değiştiğini doğrulayın

Sorun: Zaman aşımı hataları
Çözüm: Endpoint’iniz 30 saniye içinde yanıt vermelidir. Endpoint yanıt sürenizi optimize edin.

Yardıma mı İhtiyacınız Var?

Sorun yaşarsanız:

  1. Webhook URL’nizin erişilebilir olduğunu doğrulayın
  2. Bildirim ayarlarının etkin olduğundan emin olun
  3. Eşik değerlerinin doğru yapılandırıldığından emin olun
  4. Sorun devam ederse destek ekibiyle iletişime geçin

İyi takipler! 🚀