iBeaconとは:ビーコンの動作原理とBLE設定

著者: IT Sectr 公開日: 2026-07-17 読了時間: 10 分

iBeaconは、AppleのBluetooth Low Energyビーコン向けプロプライエタリプロトコルであり、iOSデバイスが屋内でセンチメートル単位の精度で位置を特定できるようにします。このプロトコルは、UUID、Major、Minor値を含む一意の識別子を持つBLEパケットのブロードキャストに基づいています。Apple iBeacon Design Guidelines(2025)によると、この技術はショッピングモール、博物館、空港、スタジアムでのナビゲーションに使用され、デバイスのアクティブペアリングなしでパッシブ検出をサポートします。

重要ポイント

  • iBeaconは、BLEビーコン向けAppleのプロプライエタリプロトコルであり、デバイスのアクティブペアリングなしで動作します。
  • iBeaconパケットには3つの識別子が含まれます:UUID(組織の一意識別子)、MajorおよびMinor(ゾーンとポイント)。
  • iOSはRSSIに基づいて3つの状態を定義します:Immediate(<0.5m)、Near(<3m)、Far(<30-50m)。
  • リージョンモニタリング(region monitoring)により、アプリはバックグラウンドモードでもビーコンゾーンへの出入りの通知を受信できます。
  • Androidは、クロスプラットフォーム互換性のためにRadius NetworksのAltBeaconなどのサードパーティライブラリを通じてiBeaconをサポートします。

iBeaconとは?

iBeaconは、Appleが開発しWWDC 2013で発表された屋内測位技術です。建物内で動作しないGPSとは異なり、iBeaconはBluetooth Low Energyビーコンを使用します。これは、固定識別パケットを送信する小型バッテリ駆動デバイスです。iOSおよびAndroidデバイスはこれらのパケットを受信し、信号レベル(RSSI)に基づいてビーコンまでのおおよその距離を計算します。

歴史と開発

iBeaconプロトコルは、Appleが2013年にiOS 7でリリースした最初の大規模BLEビーコン標準となりました。当初、この技術は小売業で使用されました。Apple Storeは、特定ゾーンに入った顧客に割引情報を提供するためにiBeaconを導入しました。2025年までに、iBeaconインフラストラクチャは世界中に数百万の設置ビーコンを数えていますが、GoogleのEddystoneやオープンソースのAltBeaconなどの代替プロトコルも登場しています。

適用分野

iBeaconは5つの主要シナリオで使用されます:屋内ナビゲーション(ショッピングモール、空港、博物館)、コンテキスト通知(店舗入店時の割引)、ワークフロー自動化(プレゼンスマーキング)、物流と倉庫管理、およびオブジェクトに近づくと自動的にコンテンツを再生する観光ガイド。ABI Research(2025)によると、BLEビーコン市場は32億台の稼働デバイスと推定されています。

iBeaconプロトコルの構造とパケットフォーマット

iBeaconパケットは、2402、2426、2480 MHzのBLEアドバタイジングチャネルで送信されるAdvertising PDU(プロトコルデータユニット)です。パケットフォーマットは固定されており、Apple iBeaconプレフィックス(0x4C000215)、16バイトのUUID、2バイトのMajor、2バイトのMinor、および距離較正用の1バイトのTX Powerの4つのフィールドで構成されます。総データサイズは30バイトで、1つのBLE Advertising PDUに収まります。

フィールドサイズ説明
Appleプレフィックス9バイトCompany ID(0x004C)+ iBeacon type(0x0215)
UUID16バイト組織またはアプリケーションの一意識別子
Major2バイトゾーン識別子(0-65535)、例:店舗番号
Minor2バイトポイント識別子(0-65535)、例:棚番号
TX Power1バイト1メートル距離での較正信号強度(dBm)

UUID、Major、Minorの階層

iBeacon識別子は3レベルの階層を形成します。UUIDは組織(例:店舗チェーン)に割り当てられ、Majorは特定の店舗またはフロアに、Minorはゾーン内の特定ポイント(レジエリア、商品部門)に割り当てられます。この階層により、アプリは異なるコンテキストレベルに柔軟に反応できます。店舗に入ると(UUID + Major)アプリはフロアマップを読み込み、特定の部門に近づくと(Minor)商品情報を表示できます。

TX Powerと較正

TX Powerフィールドは、ビーコンから1メートル距離での信号レベル(RSSI)の基準値です。パケットを受信すると、デバイスは実際のRSSIを記録し、次の式で距離を計算します:distance = 10^((TX_Power - RSSI) / (10 * n))。ここでnは媒体の減衰係数(通常2-4)です。測位精度にはTX Powerの正しい較正が重要で、1 dBmの誤差は5メートル距離で最大30%の誤差を生じます。

近接ゾーン:Immediate、Near、Far

iOSはビーコンまでの計算距離に基づいて3つの近接ゾーンを定義します:Immediate(0.5メートル未満)、Near(0.5〜3メートル)、Far(条件に応じて3〜30〜50メートル)。正確な距離は通知されず、カテゴリのみが提供されます。これは意図的なもので、RSSIは干渉、信号反射、人体の影響を受けやすいため、カテゴリはより安定した位置特定を提供します。

Immediate — 直接近接

Immediateは、デバイスがビーコンから数センチメートル以内にある直接接触ゾーンです。最大精度が必要なシナリオ(端末決済、デジタルロック解除、チェックポイント認証)で使用されます。Immediateゾーンでは、RSSIは通常-30〜-60 dBmです。

Near — 中間距離

NearゾーンはiBeaconの主要な動作範囲で、0.5〜3メートルの距離をカバーします。屋内ナビゲーションに使用されます。たとえば、商品の陳列棚に近づくとアプリが詳細情報を表示します。Nearゾーンでは、TX Power = -59 dBmの較正でRSSIは-60〜-80 dBmの範囲で変動します。

Far — 遠距離

Farはビーコン信号検出の最大ゾーンです。リージョンへの入場モニタリング(例:ショッピングモールへの入場)に使用されます。Far距離ではRSSIは通常-80 dBmより弱く、距離決定の精度は大幅に低下します。入場モニタリングには、正確なゾーン決定ではなく、システムAPIのregion monitoringが使用されます。

iOSでのリージョンモニタリング

iBeaconリージョンは、UUID(およびオプションでMajor + Minor)によって定義される仮想エリアです。iOSはCLLocationManagerを使用して最大20のリージョンを同時にモニタリングできます。リージョンに入ると、システムはバックグラウンドまたは終了状態でもアプリを起動し、delegate locationManager:didEnterRegionを介して通知を送信します。リージョンを出ると、locationManager:didExitRegionが呼び出されます。

swift
import CoreLocation

let locationManager = CLLocationManager()
let region = CLBeaconRegion(
    uuid: UUID(uuidString: "E2C56DB5-DFFB-48D2-B060-D0F5A71096E0")!,
    identifier: "myBeaconRegion"
)
locationManager.delegate = self
locationManager.requestAlwaysAuthorization()
locationManager.startMonitoring(for: region)

Ranging — 正確なゾーン決定

ゾーン(Immediate、Near、Far)を決定するには、ranging — リアルタイムのビー呼び出しスキャンを使用します。モニタリングとは異なり、rangingはアプリのアクティブモードでのみ機能し、位置情報へのアクセス許可が必要です。locationManager:didRangeBeacons:inRegionメソッドは、proximity(CLProximity.immediate、.near、.far、.unknown)、accuracy(メートル単位の較正距離)、rssiのフィールドを持つCLBeaconの配列を返します。

swift
func locationManager(
    _ manager: CLLocationManager,
    didRangeBeacons beacons: [CLBeacon],
    in region: CLBeaconRegion
) {
    for beacon in beacons {
        switch beacon.proximity {
        case .immediate:
            print("すぐ近く")
        case .near:
            print("近く")
        case .far:
            print("遠く")
        default:
            print("不明な近接状態")
        }
    }
}

AndroidでのiBeacon:AltBeaconとクロスプラットフォーム統合

AndroidにはiBeaconのネイティブサポートはありません。これはプロトコルがAppleのプロプライエタリソリューションだからです。ただし、Radius Networks(現在はOpen Beacon組織の一部)のAltBeaconなどのサードパーティライブラリを使用することで、開発者はAndroidアプリにiBeaconを統合できます。AltBeaconライブラリは、BLEパケットスキャン、iBeaconフォーマットのパース、iOS APIと同様のrangingとリージョンモニタリングのエミュレーションを実装しています。

kotlin
val beaconManager = BeaconManager.getInstanceForApplication(context)
beaconManager.beaconParsers.add(
    BeaconParser().setBeaconLayout(
        "m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"
    )
)
beaconManager.backgroundBetweenScanPeriod = 5000
beaconManager.foregroundScanPeriod = 1100
beaconManager.bind(this)

AndroidでのiBeaconパケットパース

AltBeaconライブラリでのiBeaconパースフォーマットは、layout文字列で定義されます:“m:2-3=0215” — iBeaconマーカーの2バイトチェック、“i:4-19” — 16バイトUUID、“i:20-21” — Major、“i:22-23” — Minor、“p:24-24” — TX Power。同じフォーマットがEddystoneや他のプロトコルでもサポートされており、AltBeaconはAndroidでBLEビーコンを扱うための汎用ライブラリとなっています。

Androidでの制限

AndroidでのiBeacon作業には3つの主要な制限があります:バックグラウンドスキャンはメーカーによって制限され(Xiaomi、Huawei、Samsungは頻繁にバックグラウンドプロセスを強制終了する)、BLEスタックの違いによりRSSI精度がiOSより低く、Android 6.0以降はACCESS_FINE_LOCATION、Android 12以降はBLUETOOTH_SCANの許可が必要です。

iBeacon vs Eddystone:ビーコンプロトコルの比較

Eddystoneは、2015年に発表されたGoogleのオープンBLEビーコンプロトコルです。iBeaconとは異なり、Eddystoneは4種類のパケットをサポートします:Eddystone-UID(固定識別子)、Eddystone-URL(Physical Web用URL送信)、Eddystone-TLM(ビーコンテレメトリ — バッテリ残量、温度)、Eddystone-EID(クローン対策用暗号化識別子)。Googleは2022年にPhysical Webの開発を中止しましたが、Eddystoneプロトコルは企業ソリューションで引き続き使用されています。

パラメータiBeaconEddystone
所有者AppleGoogle(オープン)
パケットタイプ1(UID)4(UID、URL、TLM、EID)
データUUID+Major+MinorID/URL + テレメトリ
ネイティブiOSサポートはい(CoreLocation)いいえ(CoreBluetooth経由)
Physical Webいいえはい(Eddystone-URL)
セキュリティ暗号化なしキーローテーション付きEID

プロジェクト用プロトコルの選択

iBeaconとEddystoneの選択は、ターゲットプラットフォームと使用シナリオに依存します。iBeaconは、CoreLocationとのネイティブ統合とバックグラウンドでのリージョンモニタリングにより、iOSアプリに適しています。Eddystoneは、Android向けプロジェクトや、ビーコンがアプリインストールなしでURLを送信するPhysical Webシナリオに適しています。クロスプラットフォームプロジェクトでは、両方のプロトコルをサポートするAltBeaconがよく使用されます。

一般的なiBeaconの問題と制限

iBeaconを実装する際、開発者はアーキテクチャ設計段階で考慮すべきいくつかの制限に直面します。これらの要因を誤って評価すると、ナビゲーションの不安定な動作、誤トリガー、ビーコンのバッテリが予想より早く消耗することにつながります。

RSSIへの環境の影響

信号レベルRSSIは、壁での反射、金属構造物、人の存在、2.4GHz帯の他のワイヤレスデバイスにより、大きな変動を受けます。屋内では、同じビーコンのRSSI変動が1分間に10〜15 dBmに達することがあり、フィルタ(移動平均、カルマンフィルタ)を使用しないと距離計算が不正確になります。

リージョンモニタリングの制限

iOSはアプリごとに最大20リージョンの同時モニタリングをサポートします。広いエリア(空港、スタジアム)のカバレッジが必要なプロジェクトでは、これでは不十分です。解決策は動的リージョンスイッチングを使用することです。あるリージョンに入ると、隣接リージョンがアクティブになり、遠隔リージョンは非アクティブになります。

モニタリング応答時間

リージョンに入ってから通知を受信するまでの遅延は、条件に応じて1〜30秒の範囲になります。iOSはバッテリ節約のため定期的にビーコンをスキャンするため、即時応答は期待できません。時間に敏感なシナリオ(ドアに近づくと開く)では、Immediate rangingの使用が推奨されますが、アプリのアクティブモードでのみ機能します。

よくある質問

iBeaconとは?

iBeaconは、AppleのBluetooth Low Energyビーコン向けプロトコルであり、iOSおよびAndroidデバイスが送信されたBLEパケットの信号レベル(RSSI)分析に基づいて、屋内でセンチメートル単位の精度で位置を特定できるようにします。

iBeaconとBluetoothの違いは?

Bluetoothは、デバイス間のデータ転送用の一般的なワイヤレス通信プロトコルであり、ペアリングが必要です。iBeaconは、BLE上の特殊なプロトコルで、接続を確立せずに識別子のブロードキャスト送信のみを目的としています。iBeaconビーコンはデータを送信せず、自身の存在のみを知らせます。

接続なしでiBeaconはどのように機能するのか?

iBeaconはAdvertisingモードで動作します。ビーコンはID情報を含むブロードキャストBLEパケットを継続的に送信します。デバイスはパケットを受信しますが、ビーコンに接続しません。これにより、ビーコンのバッテリを節約し(CR2032で最大2〜3年)、アクティブスキャンなしでパッシブにビーコンを検出できます。

iBeaconでiPhoneを見つけられますか?

いいえ、iBeaconはデバイス検出用に設計されていません。iBeaconビーコンは固定送信機であり、iPhoneは受信機として機能します。iPhoneはiBeacon信号を送信しません(Find My機能を除く。これはBLEベースの別のプロトコルを使用します)。電話を見つけるには、他の技術(Find Myネットワーク、UWB)が使用されます。

iBeaconの到達距離は?

iBeaconの範囲はビーコンの設定と環境条件に依存します。一般的な範囲:Immediate — 最大0.5m、Near — 最大3m、Far — 最大30〜50m。信号増幅器付きビーコンとオープンスペースでは、範囲は70mに達する可能性がありますが、その距離での距離決定精度は最小限です。

まとめ

  • iBeaconは、アクティブペアリングなしでブロードキャストパケットに基づいて動作するAppleのプロプライエタリBLEビーコンプロトコルです。
  • iBeaconパケットにはUUID(16バイト)、Major(2バイト)、Minor(2バイト)、および較正用TX Powerが含まれます。
  • iOSは3つの近接ゾーンを定義します:Immediate(<0.5m)、Near(<3m)、Far(<30-50m)。正確な距離ではなくカテゴリを使用します。
  • リージョンモニタリングにより、アプリはバックグラウンドでもビーコンゾーンへの出入りの通知を受信できます(最大20リージョン)。
  • AndroidはAltBeaconライブラリを介してiBeaconをサポートし、BeaconParserとlayout文字列でパケットをパースします。
  • GoogleのEddystoneは、URLと暗号化EID識別子をサポートする代替オープンプロトコルです。
  • iBeaconの主な制限:屋内でのRSSI不安定性、20リージョンの制限、最大30秒のモニタリング遅延。

ターンキー方式のモバイルアプリケーションを開発します

IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。

プロジェクトについて相談

こちらもお読みください