BLE'de Advertising: nedir, paket formatları ve reklam mekanizmaları

Yazar: IT Sectr Yayınlanma: 2026-07-15 Okuma süresi: 11 dk

Advertising (reklam), Bluetooth Low Energy'de bir Peripheral cihazının üç özel kanalda (37, 38, 39) kısa veri paketleri ileterek varlığını duyurduğu bir mekanizmadır. Bluetooth Core Specification 5.4 (2023) iki tür reklam tanımlar: connectable — cihaz bağlantıya hazırdır ve non-connectable — çift yönlü iletişim kurmadan yalnızca veri ileten işaretçiler (Beacon) tarafından kullanılır. Reklam parametreleri — 20 ms ila 10,24 s arası aralık, -20 ila +10 dBm arası verici gücü ve paket türü — cihazın keşfedilme hızını ve güç tüketimini doğrudan etkiler; bu, pille çalışan IoT cihazlarının geliştirilmesinde kritik öneme sahiptir.

Önemli Noktalar

  • Advertising, üç özel kanal 37, 38 ve 39'da çalışan birincil BLE cihaz keşif mekanizmasıdır.
  • Standart reklam paketi 31 bayt veriyle sınırlıdır; genişletilmiş reklam (BLE 5.0) sınırı 251 bayta çıkarır.
  • Connectable reklam, Central'in cihaza bağlanmasına izin verir; non-connectable yalnızca tek yönlü iletimdir (işaretçiler).
  • Reklam aralığı güç tüketimini etkiler: 1000 ms aralıkta ortalama akım, 100 ms'ye göre 10 kat daha düşüktür.
  • Scan response, Central talebine yanıt olarak ek 31 bayt veri iletilmesine olanak tanır.

BLE'de Advertising Nedir?

Advertising (reklam), bir BLE cihazının kısa veri paketlerini periyodik olarak ileterek varlığını ve kullanılabilirliğini duyurduğu süreçtir. Cihaz keşfinin saniyeler sürdüğü klasik Bluetooth'un aksine, BLE reklamı, minimum güç tüketirken bir cihazın milisaniyeler içinde keşfedilmesini sağlar.

BLE mimarisi cihazları iki role ayırır: Peripheral (reklam yapar) ve Central (tarar). Peripheral reklam paketleri gönderirken, Central havayı tarar ve bağlanıp bağlanmayacağına karar verir. Bu asimetrik model BLE'nin önemli bir avantajıdır: reklam veren cihaz, sürekli havayı dinlemek yerine yalnızca kısa paketler göndermek için enerji harcar.

Reklam süreci üç aşamadan oluşur: advertising event (paketin üç kanalda da gönderilmesi), scan request/response (Central ile isteğe bağlı değişim) ve connection request (Central tarafından bağlantı başlatma). Her aşama Link Layer seviyesinde Bluetooth Controller tarafından yönetilir.

Reklam Kanalları ve Görevleri

BLE, 2,4 GHz bandında 40 kanal kullanır; bunlardan 37 (2402 MHz), 38 (2426 MHz) ve 39 (2480 MHz) yalnızca reklam için ayrılmıştır. Üç kanal, keşif güvenilirliği ve verim arasında bir uzlaşmadır: bir kanal Wi-Fi veya diğer parazitler tarafından meşgul olabilir, ancak cihaz diğer ikisinde keşfedilecektir.

Kanal 37, Wi-Fi kanal 1'in yanında, kanal 39, Wi-Fi kanal 6'nın yanında ve kanal 38, minimum parazit bölgesinde ikisinin arasında yer alır. Üç kanalın seçimi, cihazın yoğun radyo ortamlarında bile keşfedilmesini sağlar — örneğin, düzinelerce Wi-Fi erişim noktası olan bir alışveriş merkezinde.

Peripheral, reklam paketini sırayla üç kanalda da gönderir — buna advertising event denir. Merkezi cihaz, Bluetooth Controller'da uygulanan bir algoritmaya göre aralarında geçiş yaparak her seferinde bir kanalı tarar. Çarpışma olmadığında tek bir advertising event içinde keşif olasılığı %100'e yakındır.

Reklam Paketi Türleri

Bluetooth Core Specification, her biri kendi amacına sahip birkaç tür reklam PDU'su (Protocol Data Unit) tanımlar. Ana türler şunlardır: ADV_IND (connectable undirected advertising) — bağlantı yeteneği olan standart reklam, ADV_NONCONN_IND (non-connectable undirected advertising) — bağlantısız yalnızca reklam, ADV_SCAN_IND (scannable undirected advertising) — tarama isteğini destekler, ADV_DIRECT_IND (directed advertising) — belirli bir Central için reklam.

ADV_IND, çoğu BLE cihazında kullanılan en yaygın türdür. ADV_IND alındığında, Central bir bağlantı isteği gönderebilir ve bağlantı kurabilir. ADV_NONCONN_IND işaretçilerde (Beacon) kullanılır: cihaz reklam yapar ancak bağlantı isteklerini kabul etmez — yalnızca tek yönlü veri iletimi.

PDU TürüAçıklamaBağlantıScan response
ADV_INDStandart reklamEvetEvet
ADV_DIRECT_INDBelirli bir Central'a reklamEvetHayır
ADV_NONCONN_INDBağlantısız (işaretçiler)HayırHayır
ADV_SCAN_INDTarama desteğiyleEvetEvet
ADV_EXT_INDGenişletilmiş reklam (BLE 5.0)EvetEvet

ADV_DIRECT_IND, hedef Central'in adresini içerir ve tarama beklenmeden hızlı bağlantı kurulmasını sağlar. Cihazların birbirini “tanıdığı” durumlarda kullanılır — örneğin, önceden eşleştirilmiş bir akıllı telefona yeniden bağlanırken. Bu tür, tüm kanallarda reklam gerektirmediği için güç tüketimini azaltır.

Reklam Aralığı ve Güç Tüketimi

Reklam aralığı (Advertising interval), ardışık advertising event'ler arasındaki süredir. Spesifikasyon, 0,625 ms adımlarla 20 ms ila 10,24 s arasında bir aralığa izin verir. Gerçek aralık, sabit bir değer ve rastgele bir gecikmenin (0–10 ms) toplamı olarak hesaplanır ve bu, birden çok reklam veren cihaz arasında çarpışma olasılığını azaltır.

Aralık seçimi, keşif hızı ve güç tüketimi arasında bir dengedir. 20 ms aralıkta cihaz 20–30 ms içinde keşfedilir, ancak ortalama akım yaklaşık 1–2 mA olur. 1000 ms aralıkta keşif 1 saniyeye kadar sürebilir, ancak ortalama akım 50–100 µA'ya düşer. Çoğu IoT cihazı için önerilen aralık 200–1000 ms'dir.

Texas Instruments Application Report SWRA478 (2024)'e göre, reklam aralığını 100 ms'den 1000 ms'ye çıkarmak güç tüketimini %90 azaltır. Cihaz anında keşif gerektirmiyorsa (örneğin, dakikada bir veri ileten sıcaklık sensörü), optimum aralık 1000–2000 ms'dir.

Ek bir parametre advertising timeout — cihazın reklam yaptığı maksimum süredir. iOS'ta Peripheral, arka planda 180 saniye sonra reklamı otomatik olarak durdurur. Android'de böyle bir sınırlama yoktur, ancak üreticiler kendi sınırlarını ekleyebilir.

Scan Response: Ek Veriler

Scan Response, Peripheral'in Central'den gelen tarama isteğine yanıt olarak gönderdiği ek bir veri paketidir (31 bayta kadar). Tarama isteği, Central tarafından reklam paketi alındıktan sonra bağlantı öncesinde daha fazla bilgi gerekiyorsa gönderilir. Scan Response ek reklam gerektirmez — yalnızca talep üzerine gönderilir ve yayın süresinden tasarruf sağlar.

Tipik veri dağılımı: reklam PDU'su (31 bayt) bayraklar (3 bayt), hizmet UUID'leri (2–16 bayt) ve üretici verilerini (kalan baytlar) içerir. Scan response, tam cihaz adını (28 bayta kadar) ve ek UUID'leri veya TX Power Level'ı taşır. Bu ayrım, Central'in scan response'u okumadan UUID'ye göre cihazları hızla filtrelemesini sağlar.

Reklam paketini tasarlarken dikkat edin: reklam PDU'sunda 31 baytın tamamı doluysa, Central cihazın scan response'u destekleyip desteklemediğini belirleyemez. Scan response yeteneğini belirtmek için reklam PDU'sunda en az 3–5 bayt boş bırakılması önerilir.

BLE 5.0'da Genişletilmiş Reklam

Genişletilmiş Reklam (Extended Advertising BLE 5.0), reklam paketi boyutunu 31 bayttan 251 bayta çıkaran ve yeni paket türleri ekleyen reklam mekanizmasının bir uzantısıdır. Extended Advertising ayrıca açık alanlarda iletişim menzilini 1 km'ye kadar genişletmek için coded PHY'yi ve birden çok Central'i senkronize etmek için periyodik reklamı (Periodic Advertising) destekler.

Başlıca yenilikler: ADV_EXT_IND — tek bir pakette 251 bayta kadar veri iletebilen genişletilmiş reklam PDU'su. Extended Advertising, birincil kanalları (37, 38, 39) yalnızca tam verilerin hangi ikincil kanalda (0–36) iletildiğini belirtmek için kullanır. Bu, reklam kanallarındaki yükü azaltır ve sistemin genel verimini artırır.

Periyodik Reklam (Periodic Advertising), Peripheral'in sabit aralıklarla ikincil kanallarda veri gönderdiği ve Central'in bu diziyle senkronize olabildiği ek bir mekanizmadır. Düzenli veri güncellemesi gerektiren hizmetler için kullanılır — örneğin, ses akışı veya gerçek zamanlı sensör okumaları.

ParametreStandart BLEGenişletilmiş BLE 5.0
Maks. paket boyutu31 bayt251 bayt
KanallarYalnızca 37, 38, 39+ ikincil 0–36
Menzil100 m'ye kadar1000 m'ye kadar (coded PHY)
Hız1 Mbps125 kbps – 2 Mbps
PeriyodikHayırEvet

iOS ve Android'de Reklam Yapılandırması

iOS (Core Bluetooth), reklam yönetimi için CBPeripheralManager sağlar. Reklam parametreleri, advertisementData sözlüğünde CBAdvertisementDataLocalNameKey (cihaz adı), CBAdvertisementDataServiceUUIDsKey (hizmet UUID'leri), CBAdvertisementDataTxPowerLevelKey (güç seviyesi) anahtarlarıyla ayarlanır. iOS, reklam aralığını otomatik olarak yönetir ve manuel olarak ayarlanmasına izin vermez.

swift
import CoreBluetooth

class AdvertiserManager: NSObject, CBPeripheralManagerDelegate {

    private var peripheralManager: CBPeripheralManager!

    func startBLEAdvertising() {
        let data: [String: Any] = [
            CBAdvertisementDataLocalNameKey: "BLE Beacon",
            CBAdvertisementDataServiceUUIDsKey: [
                CBUUID("180F")
            ],
            CBAdvertisementDataIsConnectable: true
        ]
        peripheralManager.startAdvertising(data)
    }
}

Android (BluetoothLeAdvertiser) daha ayrıntılı kontrol sağlar. Mevcut: AdvertiseSettings — mod yapılandırması (LOW_POWER, BALANCED, LOW_LATENCY), verici gücü ve aralık; AdvertiseData — paket verileri. Android, uyumlu cihazlarda genişletilmiş reklamı (BLE 5.0) destekler, ancak bu tür cihazların pazardaki payı yaklaşık %30–40'tır.

java
BluetoothLeAdvertiser advertiser =
    BluetoothAdapter.getDefaultAdapter()
    .getBluetoothLeAdvertiser();

AdvertiseSettings settings = new AdvertiseSettings.Builder()
    .setAdvertiseMode(
        AdvertiseSettings.ADVERTISE_MODE_LOW_POWER
    )
    .setTxPowerLevel(
        AdvertiseSettings.ADVERTISE_TX_POWER_MEDIUM
    )
    .build();

AdvertiseData data = new AdvertiseData.Builder()
    .setIncludeDeviceName(true)
    .addServiceUuid(new ParcelUuid(
        UUID.fromString(
            "0000180F-0000-1000-8000-00805F9B34FB"
        )
    ))
    .build();

advertiser.startAdvertising(
    settings, data, advertiseCallback
);

Platformlar arası bir BLE uygulaması geliştirirken farklılıkları göz önünde bulundurun: iOS, reklam aralığını doğrudan kontrol etmeye izin vermez ancak tüm cihazlarda kararlı çalışma sağlar; Android tam kontrol sağlar, ancak sürüm ve üretici parçalanması uyumsuzluğa yol açabilir. Her iki platformun gerçek cihazlarında reklamı test etmeniz önerilir.

Sıkça Sorulan Sorular

Connectable ve non-connectable reklam arasındaki fark nedir?

Connectable reklam (ADV_IND), Central'in cihazla çift yönlü bağlantı kurmasını sağlar. Non-connectable (ADV_NONCONN_IND) yalnızca tek yönlü veri iletimidir ve bağlantı imkanı olmadan bir tanımlayıcı yayınlamak için işaretçiler (Beacon) tarafından kullanılır.

Bir reklam paketinde kaç bayt iletilebilir?

Standart reklam paketi 31 bayt, scan response ek 31 bayttır. Genişletilmiş Reklam (BLE 5.0+), veri iletimi için ikincil kanalları kullanarak sınırı 251 bayta çıkarır.

Bir IoT cihazı için hangi reklam aralığı seçilmelidir?

Çoğu IoT cihazı için 500–1000 ms önerilir. Hızlı keşif gerekiyorsa (örneğin, kulaklık bağlamak için) 20–50 ms kullanın. Seyrek veri ileten sensörler için güç tasarrufu amacıyla 1000–2000 ms kullanın.

BLE neden üç reklam kanalı kullanır?

Üç kanal (37, 38, 39), keşif güvenilirliği ve verim arasında bir uzlaşmadır. Bir kanal Wi-Fi tarafından meşgul olabilir, ancak cihaz diğer ikisinde keşfedilecektir. Kanal 38, Wi-Fi kanalları arasında minimum parazit bölgesinde bulunur.

Reklam pil ömrünü nasıl etkiler?

Reklam, BLE'deki ana güç tüketicisidir. 1000 ms aralıkta ortalama akım 50–100 µA'dır ve bu, cihazın bir CR2032 pille bir yıl çalışmasını sağlar. 20 ms aralıkta akım 1–2 mA'ya yükselir ve çalışma süresini birkaç haftaya düşürür.

Özet

  • Advertising, üç kanalda (37, 38, 39) 31 bayta kadar paket boyutuyla çalışan bir BLE cihaz keşif mekanizmasıdır.
  • Beş tür reklam PDU'su vardır: ADV_IND, ADV_DIRECT_IND, ADV_NONCONN_IND, ADV_SCAN_IND ve BLE 5.0 için ADV_EXT_IND.
  • Reklam aralığı 20 ms ila 10,24 s arasında değişir ve keşif hızını ve cihazın güç tüketimini doğrudan etkiler.
  • Scan Response, Central talebi üzerine Peripheral'in güç tüketimini artırmadan ek 31 bayt veri sağlar.
  • Genişletilmiş Reklam (BLE 5.0) paketi 251 bayta çıkarır ve coded PHY aracılığıyla 1 km'ye kadar menzil destekler.
  • iOS'ta reklam CBPeripheralManager aracılığıyla yönetilir; Android'de ayrıntılı ayarlarla BluetoothLeAdvertiser aracılığıyla yönetilir.
  • Reklam aralığı ve paket türünün doğru seçimi, bir BLE cihazının enerji verimliliğini ve pil ömrünü belirler.

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun