Click-to-WhatsApp Reklamları

Her WhatsApp Sohbetini Hangi Reklamın Başlattığını Bilin

Biri Click-to-WhatsApp reklamınıza veya öne çıkarılan gönderinize dokunduğunda, ilk mesajı reklam bilgisini taşır. StartMessaging bunu yeni kişiye kaydeder, CRM'de gösterir ve webhook ile sistemlerinize gönderir; böylece reklamdan gelen hiçbir lead anonim kalmaz.

✦ 14 günlük ücretsiz deneme · Kendi WhatsApp Business numaranız · Mesajları Meta doğrudan faturalandırır

Reklam Bilgisi İlk Mesajla Birlikte Gelir

Reklamları Meta Reklam Yöneticisi'nde oluşturur ve ödersiniz. Bir müşteri reklama dokunup ilk mesajını gönderdiğinde WhatsApp bir yönlendirme bilgisi ekler: kaynak türü, reklam veya gönderi kimliği, bağlantısı, başlık, reklam metni ve bir tıklama kimliği (ctwaClid). StartMessaging bunu mesaj ortak gelen kutunuza düştüğü anda okur.

  • Click-to-WhatsApp reklamları ve öne çıkarılan gönderilerle çalışır
  • Başlık, reklam metni, reklam veya gönderi kimliği ve bağlantısı kaydedilir
  • Dönüşüm raporlamanız için tıklama kimliği (ctwaClid) saklanır
  • Meta’nın 72 saatlik ücretsiz penceresi açıkken “Ücretsiz reklam penceresi bitiyor…” etiketi
İlişkilendirme tarifini okuyun →
Click-to-WhatsApp reklam lead ilişkilendirmesi

Her Reklam Lead'i CRM'inize Reklamıyla Birlikte Gelir

Reklam tıklamasıyla oluşan bir kişi "Click-to-WhatsApp reklamı" kaynağını ve reklamı özel alanlar olarak alır: ctwa_source_type, ctwa_source_id, ctwa_source_url, ctwa_headline, ctwa_body ve ctwa_clid. Kişiyi açtığınızda "Click-to-WhatsApp reklamından" kartı dokunduğu reklamı gösterir. Alanlar yalnızca bir kez, o ilk mesajla doldurulur. Zaten kayıtlı olan bir kişi özgün kaynağını ve alanlarını korur; yönlendirme bilgisi yine de message.received webhook'u ile gelir.

  • Lead kaynağı "Click-to-WhatsApp reklamı" olarak izlenir
  • Reklam ayrıntıları bir kez doldurulan özel alanlar olarak kaydedilir
  • Kişi sayfasında etiketler ve notların yanında görünür
CRM'de Click-to-WhatsApp reklamından oluşan kişi
Nasıl Çalışır

Reklam Dokunuşundan Nitelikli Lead'e

01

1. Reklamı Meta Reklam Yöneticisi'nde yayınlayın

StartMessaging'e bağladığınız numarayla sohbet açan bir Click-to-WhatsApp reklamı oluşturun ya da WhatsApp düğmeli bir gönderiyi öne çıkarın.

02

2. Müşteri dokunur ve yazar

İlk mesajı, reklamın yönlendirme bilgisiyle birlikte ekibinizin ortak gelen kutusuna düşer.

03

3. Kişi reklamla birlikte oluşturulur

Yeni kişi ctwa_ad kaynağını ve ctwa_* özel alanlarını alır. Sistemleriniz yönlendirmeyi message.received ile, kaynağı contact.created ile alır.

04

4. Lead'i yönlendirin

İlk mesaj tetikleyicili bir chatbot akışı, reklam tıklamaları dahil her yeni sohbeti karşılar: nitelendirme soruları sorun, etiket ekleyin, kişiyi bir satış hattı aşamasına taşıyın ve bir temsilci atayın.

05

5. Dönüşümü kendiniz bildirin

Lead satın aldığında, saklanan ctwaClid’i kendi sisteminiz Meta’nın Dönüşümler API’sine gönderir; StartMessaging dönüşümleri sizin yerinize Meta’ya göndermez. Satışı bir StartMessaging kampanyasına yazmak için Business paketinde POST /api/v1/conversions ile bildirin.

Reklam Verisi Nerede Durur

Tek Yönlendirme, Kullanılacak Üç Yer

Meta göndermediğinde herhangi bir yönlendirme alanı boş olabilir.

Reklam verisi Kişide (CRM) message.received webhook'u REST API
Kaynak türü, reklam veya gönderi kimliği, bağlantı ctwa_source_type, ctwa_source_id, ctwa_source_url referral.sourceType, sourceId, sourceUrl GET /api/v1/contacts üzerinde kişi öznitelikleri
Başlık ve reklam metni ctwa_headline, ctwa_body (500 karakterde kesilir) referral.headline, referral.body Kişi öznitelikleri
Tıklama kimliği ctwa_clid referral.ctwaClid Kişi öznitelikleri
Lead kaynağı "Click-to-WhatsApp reklamı" contact.created üzerinde source "ctwa_ad" source: "ctwa_ad"
Mevcut bir kişi reklama tıklar Kaynağını ve alanlarını korur ✓ Yönlendirme yine gelir Değişmez
Ücretsiz giriş noktası penceresi (72 saat) Sohbette “Ücretsiz reklam penceresi bitiyor…” etiketi Konuşmada freeEntryPointExpiresAt
Webhook'lar

Reklamı ilk mesajdan okuyun

X-SM-Signature başlığını doğrulayın, ardından referral.ctwaClid değerini lead ile saklayın.

{
  "id": "evt_01JCA4M8ZP",
  "type": "message.received",
  "createdAt": "2026-10-07T09:15:04.000Z",
  "workspaceId": "ws_9f2c",
  "data": {
    "message": {
      "id": "msg_51c0",
      "conversationId": "conv_8e21",
      "contactId": "ct_4a7d",
      "from": "+919812345678",
      "type": "text",
      "text": "Hi, is the festive offer still on?",
      "media": null,
      "reply": null,
      "context": null,
      "form": null,
      "referral": {
        "sourceType": "ad",
        "sourceId": "120210000000000000",
        "sourceUrl": "https://fb.me/abc123",
        "headline": "Festive sale on silk sarees",
        "body": "Tap to chat with us on WhatsApp",
        "ctwaClid": "ARAkLkA8rmlFeiCktEJQ-QTwRiyYHAFDLMNDBH0CD3qpjd0HR4irJ6LEkR7JwFF4XvnO2E4Nx0-eM-GABDLOPaOdRMv-_zfUQ2a"
      },
      "timestamp": "2026-10-07T09:15:02.000Z"
    },
    "contact": {
      "id": "ct_4a7d",
      "phone": "+919812345678",
      "name": "Asha"
    }
  }
}
import express from 'express';
import { createHmac, timingSafeEqual } from 'node:crypto';

const app = express();
const SECRET = process.env.SM_WEBHOOK_SECRET; // the whole whsec_… string

function verify(rawBody, headers) {
  const ts = headers['x-sm-timestamp'];
  const sigs = headers['x-sm-signature'];
  if (!/^\d+$/.test(ts ?? '') || typeof sigs !== 'string') return false;
  if (Math.abs(Date.now() / 1000 - Number(ts)) > 300) return false;
  const expected = createHmac('sha256', SECRET).update(`${ts}.`).update(rawBody).digest();
  return sigs.split(',').some((part) => {
    const m = /^v1=([0-9a-f]{64})$/.exec(part.trim());
    return m !== null && timingSafeEqual(Buffer.from(m[1], 'hex'), expected);
  });
}

app.post('/webhooks/startmessaging', express.raw({ type: 'application/json' }), async (req, res) => {
  if (!verify(req.body, req.headers)) return res.sendStatus(401);
  res.sendStatus(200); // answer within 5 seconds, then do the work

  const event = JSON.parse(req.body);
  if (event.type !== 'message.received') return;

  const { referral, from } = event.data.message;
  if (!referral) return; // not the first message from an ad

  // Any referral field can be null when Meta leaves it out.
  await saveAdLead({
    eventId: event.id, // delivered at least once: deduplicate on this
    phone: from,
    adId: referral.sourceId,
    headline: referral.headline,
    ctwaClid: referral.ctwaClid, // keep it for Meta's Conversions API
  });
  // When this lead converts, your own server sends ctwaClid to Meta's
  // Conversions API. StartMessaging does not send conversions to Meta.
});
import hmac, hashlib, json, os, time
from flask import Flask, request

app = Flask(__name__)
SECRET = os.environ['SM_WEBHOOK_SECRET'].encode()  # the whole whsec_… string

def verify(raw_body, ts, sigs):
    if not ts or not ts.isdigit() or not sigs:
        return False
    if abs(time.time() - int(ts)) > 300:
        return False
    expected = hmac.new(SECRET, f'{ts}.'.encode() + raw_body, hashlib.sha256).hexdigest()
    return any(
        hmac.compare_digest(part.strip()[3:], expected)
        for part in sigs.split(',') if part.strip().startswith('v1=')
    )

@app.post('/webhooks/startmessaging')
def startmessaging_webhook():
    raw = request.get_data()
    if not verify(raw, request.headers.get('X-SM-Timestamp'), request.headers.get('X-SM-Signature')):
        return '', 401
    event = json.loads(raw)
    if event['type'] == 'message.received':
        message = event['data']['message']
        referral = message.get('referral')
        if referral:  # first message from a Click-to-WhatsApp ad
            save_ad_lead(
                event_id=event['id'],  # deduplicate on this
                phone=message['from'],
                ad_id=referral.get('sourceId'),
                headline=referral.get('headline'),
                ctwa_clid=referral.get('ctwaClid'),  # for Meta's Conversions API
            )
    return '', 200
SSS

Click-to-WhatsApp Reklamları — SSS

Reklamları StartMessaging'de mi oluşturuyorum?

Hayır. Click-to-WhatsApp reklamlarını Meta Reklam Yöneticisi'nde oluşturur, hedefler ve ödersiniz ya da Facebook Sayfanızdan veya Instagram hesabınızdan bir gönderiyi öne çıkarırsınız. Reklamı StartMessaging'e bağladığınız WhatsApp numarasına yönlendirin; StartMessaging başlattığı her yeni sohbetten reklam bilgisini okur.

StartMessaging reklamdan neleri alır?

Meta'nın ilk mesajdaki yönlendirmede gönderdiği her şey: kaynak türü, reklam veya gönderi kimliği, bağlantısı, başlık, reklam metni ve tıklama kimliği (ctwaClid). Meta göndermediğinde herhangi biri boş olabilir. Yeni bir kişi bunları ctwa_source_type, ctwa_source_id, ctwa_source_url, ctwa_headline, ctwa_body (500 karakterde kesilir) ve ctwa_clid özel alanlarında saklar.

Mevcut bir kişi reklama tıklarsa ne olur?

Kişi özgün kaynağını ve özel alanlarını korur; bunlar yalnızca bir kez, kişiyi oluşturan mesajla doldurulur. Yönlendirme yine de message.received webhook'u ile gelir, böylece kendi sisteminiz yeni reklam tıklamasını kaydedebilir.

StartMessaging dönüşümleri Meta'nın Dönüşümler API'sine gönderir mi?

Hayır. StartMessaging tıklama kimliğini (ctwaClid) kişide ve webhook'ta saklar. Bir lead dönüştüğünde ctwaClid'i Meta'nın Dönüşümler API'sine kendi sunucunuz ya da kontrol ettiğiniz bir otomasyon aracı gönderir. Bir satışı StartMessaging kampanyasına yazmak için Business paketi POST /api/v1/conversions sunar: satışı müşterinin telefonuyla bildirin; dönüşüm pencereniz içinde ona teslim edilen son kampanya payı alır.

Meta, reklamdan gelen bir sohbetteki mesajlar için ücret alır mı?

Ücretsiz giriş noktası penceresi içinde almaz. Bir müşteri Click-to-WhatsApp reklamından yazdığında ve siz zamanında yanıt verdiğinizde Meta, o sohbetteki mesajlar için şablonlar dahil hiçbir ücret almadığı 72 saatlik bir ücretsiz giriş noktası penceresi açar. Gelen kutusu o zamana kadar “Ücretsiz reklam penceresi bitiyor…” etiketini gösterir ve API bitiş zamanını konuşmada freeEntryPointExpiresAt olarak döndürür. Pencere 24 saat kuralının yerini almaz: müşterinin 24 saati geçtikten sonra yine onaylı bir şablon gerekir. Pencere bittikten sonra Meta’nın normal ücretleri geçerlidir.

Reklam lead'lerine otomatik yanıt verebilir miyim?

Evet. İlk mesaj tetikleyicili bir chatbot akışı, kişinin sohbetteki ilk mesajıyla başlar; böylece reklam tıklamaları dahil her yeni sohbeti karşılar. Sorular sorabilir, etiket ekleyebilir, kişiyi bir satış hattı aşamasına taşıyabilir ve sohbeti bir temsilciye devredebilir. Anahtar kelimeli otomatik yanıtlar da çalışır. Müşteri önce yazdığı için 24 saatlik pencere açıktır ve serbest mesajlarla yanıt verebilirsiniz. Chatbot akışları Business planında ve 14 günlük ücretsiz denemededir; anahtar kelimeli otomatik yanıtlar Team ve Business planlarındadır.

Reklam lead'lerini kendi CRM'ime veya tabloma gönderebilir miyim?

Evet. message.received (yönlendirmeyi taşır) ve contact.created (source "ctwa_ad" taşır) olaylarına abone olun ya da her kişinin kaynağını ve ctwa_* özniteliklerini döndüren GET /api/v1/contacts ve updatedSince ile senkronize edin. Zapier, Make ve Pabbly Connect genel webhook ve HTTP modülleriyle çalışır; bu pazar yerlerinde henüz resmi StartMessaging uygulaması yoktur.

WhatsApp API

Reklam Tıklamalarını İzlenen Lead'lere Dönüştürün

14 günlük ücretsiz deneme. Kendi WhatsApp Business numaranızı bağlayın ve her yeni sohbetin arkasındaki reklamı görün.