IDFAはAppleがiOSデバイスに割り当てる広告用の識別子です。iOS 14.5以降はATT(アプリのトラッキングの透明性)で許可を得ていないアプリには全ゼロの値しか返りません。そのため「IDFAは個人情報なのか」「どの状態なら取得できるのか」「取れない端末はどう計測するのか」を押さえないと、同意設計も計測設計も組めません。この記事ではApple公式ドキュメントと日本の条文・ガイドラインを根拠に整理します。
まとめ:IDFAの要点
- IDFAは端末ごとに固有のUUIDで、iOS 6.0から提供されている広告専用の識別子です。
- ATTの認可状態が
authorizedのときだけ固有のUUIDが返り、それ以外は00000000-0000-0000-0000-000000000000になります。 - IDFA単体で個人情報になるかは、他の情報と容易に照合して特定の個人を識別できるかで決まります。個人情報保護委員会のガイドラインは、端末識別子を通じて集めた閲覧履歴を「個人関連情報」の事例に挙げています。
- 第三者へ渡す構成では、ATTの許可とは別に個人情報保護法31条の確認義務を検討します。令和8年改正では「連絡可能個人関連情報」が新設されます(公布から2年以内に政令で定める日に施行)。
- 許可が取れない端末の計測は、ユーザーを識別しないSKAdNetworkとAdAttributionKitで行います。ATTの許可は不要です。
- 同じベンダーのアプリで端末単位の分析を行う用途には、ATTの許可なしでIDFVを使えます。ただし、IDFVはユーザーやアカウントを識別するIDではありません。
IDFA(Identifier for Advertisers)の定義と用途
IDFAの正式名称はIdentifier for Advertisersです。Appleの公式ドキュメントはadvertisingIdentifierを「The UUID that is specific to a device.」と定義しています。値はハイフンで区切られた32桁の16進数で、同じ端末の別アプリからも同じ値が読めるため、アプリをまたいだ効果測定に使われてきました。
同じドキュメントが挙げる用途は、フリークエンシーキャップ、アトリビューション、コンバージョンイベント、ユニークユーザー数の推定、広告詐欺の検出、デバッグの6つです。Appleは「As a best practice, don't store the advertising identifier value」とも述べ、値を保存せず必要なときに読み直すよう求めています。ユーザーは設定でいつでも許可を取り消せるため、キャッシュした値は取り消しに追随できません。
IDFAとIDFVの違い
| 識別子 | 単位 | 取得API | ATTの許可 |
|---|---|---|---|
| IDFA | 端末に1つ | ASIdentifierManager.advertisingIdentifier |
必要 |
| IDFV | ベンダー×端末 | UIDevice.identifierForVendor |
不要 |
IDFVは同じベンダーの複数アプリでは同じ値、別ベンダーでは別の値になる識別子です。Appleは値が変わる条件を「The value changes when the user deletes all of that vendor's apps from the device and subsequently reinstalls one or more of them.」と明記しており、Xcodeのテストビルドやアドホック配布のインストールでも変わる場合があります。端末の再起動直後でロック解除前はnilが返るため、時間を置いて取り直す実装にします。
IDFAとCookieの違い
Cookieはブラウザがドメインごとに保存する値で、Webサイトの側が発行します。IDFAはOSが発行し、端末内のアプリ全体で共通です。IDFAとCookieは別の識別子で、自動的に対応付けられるものではありません。別途取得した共通のログイン情報などで行動を関連付ける場合は、ATTの適用条件と法令上の要件を確認します。
| 項目 | IDFA | サードパーティCookie |
|---|---|---|
| 発行元 | iOS | Webサイトや広告サーバー |
| 使える範囲 | 端末内のアプリ | 同じブラウザ |
| Appleの制限 | ATTの許可制(iOS 14.5〜) | Safariが既定で遮断 |
| 利用者の操作 | アプリごとの許可オン・オフ | ブラウザの設定・削除 |
Safariのサードパーティ Cookie 遮断は、WebKitが2020年3月24日のFull Third-Party Cookie Blocking and Moreで発表した仕様です。Web側の制限の詳細はITPとは?Safariの制限仕様と広告計測への影響・対策【2026年最新】、Cookie全体の仕組みはサードパーティCookieとは?仕組み・規制とブラウザ別の扱いをわかりやすく解説【2026年】で扱っています。Android側の広告IDとの比較はAAIDとは?Android広告ID(ADID・GAID)の確認・削除とAD_ID権限を参照してください。
IDFAの個人情報該当性と法的な取扱い
IDFAの識別可能性と個人関連情報の判断基準
個人情報保護法2条7項は「この法律において「個人関連情報」とは、生存する個人に関する情報であって、個人情報、仮名加工情報及び匿名加工情報のいずれにも該当しないものをいう。」と定めています。個人情報保護委員会のガイドライン(通則編)2-8は、個人関連情報の事例1として「Cookie等の端末識別子を通じて収集された、ある個人のウェブサイトの閲覧履歴」を挙げています。
この事例が示しているのは識別子そのものではなく、識別子を通じて集めた履歴です。IDFA自体の扱いは、単体で、または他の情報と容易に照合することで特定の個人を識別できるかで決まります。氏名と紐づけて保有していれば個人情報で、ガイドラインも「個人情報に該当する場合は、個人関連情報に該当しないことになる」と注記しています。IDFAを単独のキーとして管理しているつもりでも、社内の会員データベースと容易に照合できる状態なら個人情報として扱います。
個人関連情報の第三者提供と31条の確認義務
問題になるのは提供です。31条1項は、第三者が個人関連情報を「個人データとして取得することが想定されるとき」は、本人の同意が得られていることを確認しないで提供してはならないと定めています。広告ネットワークやDMPがIDFAと行動履歴を受け取り、自社の会員データと突合して個人データとして扱う構成は、この「想定されるとき」に当たり得ます。外国にある第三者への提供では、同項2号が適用される場合、当該国の制度などの情報が本人に提供されていることも確認します。指定国や基準適合体制を備えた提供先などの扱いは別途確認します。
混同しやすいのは、ATTの許可と31条の同意が別物だという点です。ATTはAppleがプラットフォームのルールとして課す許可で、ATTの許可だけで日本法の同意要件を満たすとは限らず、31条の確認は別に行います。同意設計は両方を並べて組みます。
令和8年改正で新設される連絡可能個人関連情報
2026年7月17日に公布された令和8年法律第56号は、個人関連情報の規律を広げます。改正法の附則1条は、原則として「公布の日から起算して二年を超えない範囲内において政令で定める日から施行する」と定めています。e-Govの改正履歴は、その期限にあたる2028年7月16日施行の版に次の規定を収録しています。
- 2条8項:「連絡可能個人関連情報」を新設。住所、電話番号、電子メールアドレスに加え、4号で「電気通信設備を利用する者又は電気通信設備を識別することができるように付された符号」を挙げ、「特定の個人に対する電気通信…を利用した情報の伝達に利用することができるものに限る」と限定しています。
- 31条の2:連絡可能個人関連情報を、違法または不当な行為を助長・誘発するおそれがある方法で利用すること、不正の手段で取得することを禁止。
- 31条の3:第三者が取り扱う目的の全部が統計作成等目的で、双方が名称や統計の内容を公表し、書面で合意している場合は、31条1項1号の同意の確認をせずに提供できる特例。
IDFAが4号の符号に当たるかは、「特定の個人への情報の伝達に利用できる」という限定にどう当てはめるかで決まり、条文だけでは結論が出ません。委員会規則とガイドラインが出るまで、該当する前提で利用目的と取得経路を説明できる状態にしておくのが安全です。31条の3は、計測SDKの集計のように用途が統計に閉じた提供で使える可能性がある一方、目的の一部でも広告配信が混ざれば対象外です。
広告IDの外部送信規律と対象サービス
もう1つの規律が電気通信事業法27条の12です。総務省の外部送信規律FAQ問1-15は、対象となる情報について「具体的には、Cookieや広告ID等の識別符号、利用者の氏名等、利用者以外の者の連絡先情報等、幅広い情報が含まれます」と答えています。対応方法は問1-1のとおり、通知、公表、同意取得、オプトアウト措置の提供のいずれかです。
ただし義務の名宛人は、電気通信事業者と、省令で定める役務を提供する第三号事業を営む者に限られます。メッセージ媒介、SNS、検索、ニュース配信などが対象で、アプリを出していれば自動的に対象になるわけではありません。自社の役務がどれに当たるかを先に確定してから通知文を設計します。
ATTのオプトインとIDFAの取得条件
Appleのサポート記事は「iOS 14.5、iPadOS 14.5、tvOS 14.5以降では、アプリが他社のアプリやWebサイトを横断してお客様の行動を追跡(トラッキング)する場合、事前にお客様ご本人の許可を得ることが義務付けられています」と説明しています。IDFAの取得はオプトイン(事前の許可)方式になり、許可を取っていないアプリはIDFAを読めません。同意の取り方の一般論はオプトインとは?意味とオプトイン方式の仕組み、特定電子メール法の同意要件で扱っています。
ATTの認可状態とIDFAの戻り値
| 状態 | IDFAの戻り値 |
|---|---|
許可済み(authorized) |
端末固有のUUID |
拒否(denied) |
全ゼロ |
未要求(notDetermined) |
全ゼロ |
システムが制限(restricted) |
全ゼロ |
| シミュレータ・macOS・visionOS上のiPhone/iPadアプリ | 全ゼロ |
シミュレータでは設定に関係なく全ゼロになるため、挙動は実機でしか確認できません。許可後に設定の「アプリからのトラッキング要求を許可」をオフにしても、個別アプリの許可がオンのまま残っていれば固有のUUIDが返り続けることも、同じドキュメントに記載されています。
ATTによるメールアドレス等の代替識別子の制限
同じサポート記事は「「アプリにトラッキングしないように要求」を選択した場合、アプリのデベロッパはシステムの広告ID(IDFA)にアクセスできません。…また、個人やそのデバイスを特定するその他の情報(メールアドレスなど)を使って、アクティビティを追跡することも、アプリには認められません」と述べています。IDFAが取れないからメールアドレスのハッシュ値で代替する設計は、Appleのルール上認められません。拒否された端末は個人単位の追跡を前提から外し、後述の集計型の計測に切り替えます。
ATTの実装手順とInfo.plistの設定
許可要求にはNSUserTrackingUsageDescriptionキーが必須です。Appleは「To use this method, add the NSUserTrackingUsageDescription key to your app's target properties in Xcode.」と明記しており、このキーを設定せずにATTのフレームワークを使うとアプリがクラッシュします。
<key>NSUserTrackingUsageDescription</key>
<string>広告の効果測定のために、他社のアプリやサイトでの行動と関連付けます。</string>
要求はアプリがアクティブで、別の許可要求が保留されていないタイミングで出します。
import AppTrackingTransparency
import AdSupport
if ATTrackingManager.trackingAuthorizationStatus == .authorized {
let idfa = ASIdentifierManager.shared().advertisingIdentifier
// idfa を計測SDKへ渡す
} else if ATTrackingManager.trackingAuthorizationStatus == .notDetermined {
ATTrackingManager.requestTrackingAuthorization { status in
guard status == .authorized else { return }
let idfa = ASIdentifierManager.shared().advertisingIdentifier
// idfa を計測SDKへ渡す
}
}
認可状態はATTrackingManager.AuthorizationStatusの4値です。restrictedはプロンプトを提示したかどうかに関係なく返るため、状態を見てnotDeterminedのときだけ要求します。iOSアプリでATTの要求タイミングや計測SDKの組み込みから設計する場合は、iOSアプリ開発の支援内容も参考にしてください。
ATTのプロンプトが表示されない5つの条件
プロンプトが出ないときは、Appleが公式に列挙している非表示条件を先に確認します。
- 端末でトラッキングが制限されている(
trackingAuthorizationStatusがrestricted) - 設定の「アプリからのトラッキング要求を許可」がオフになっている
- 別の許可要求が保留中である
- App Extensionからこのメソッドを呼んでいる
- アプリの状態が
UIApplicationStateActive以外である
いずれの場合もシステムはプロンプトを出さず、completion handlerを即座に実行します。「一瞬で結果が返ってきた」ように見えるため、SDKの不具合として調べ始めてしまいがちです。まずtrackingAuthorizationStatusの値と設定画面のトグルを見てください。
EU向けATTの表示形式と再要求条件
iOS 14.0からある標準の要求API(requestTrackingAuthorization(completionHandler:))のドキュメントには、地域差が書かれています。フランス、ドイツ、イタリア、ポーランド、ルーマニアではアラートではなくフルページシートが表示され、EUでは設定項目の名称が「Allow Apps to Request to Link Your Activity Across Companies」になります。
再表示の扱いも独自です。「In the European Union, if a person answers the prompt, the system notes the date and doesn't allow the prompt to display again until a year passes.」とあり、EUでは回答した日から1年間は再要求できません。許可・拒否のどちらでも1年後には再要求できますが、設定でトラッキングを無効にしている場合は対象外です。「拒否されたので数週間後にもう一度聞く」という設計はEUでは成立しません。
2026年11月4日時点のApple公式ドキュメントには、iOS 27.2で追加された拡張版のrequestTrackingAuthorization(preferExpandedInterface:additionalInformationAction:completionHandler:)が掲載されています。挙動は次のとおりです。
| 地域 | 表示 |
|---|---|
| 仏・独・伊・ポーランド・ルーマニア | 引数に関係なくフルページシート |
| その他のEU | preferExpandedInterfaceがtrueならフルページシート |
| EU以外 | 従来のアラート(標準APIと同じ) |
シートにはNSUserTrackingMarkdownUsageDescriptionに書いた太字・斜体・箇条書き付きの文を出せ、任意で「Additional Information」ボタンを付けられます。ボタンが押されると回答は記録されずnotDeterminedが返るので、自前の説明画面を出したあとにもう一度このメソッドを呼びます。
IDFAの確認方法(利用者の設定と開発者のAPI)
利用者が確認できるのは許可の状態です。「設定」>「プライバシーとセキュリティ」>「トラッキング」を開くと、トラッキングの許可を求めたアプリの一覧が表示され、アプリごとにオン・オフできます。すべてのアプリからの要求を止めるには、画面上部の「アプリからのトラッキング要求を許可」をオフにします。
この画面にIDFAの値そのものは表示されず、iOSに値を確認する設定項目はありません。値を見るにはアプリ側でASIdentifierManager.shared().advertisingIdentifierを読んで表示します。App Storeには自端末のIDFAを表示・コピーするアプリもありますが、そのアプリにもトラッキングを許可しなければ全ゼロしか表示されません。広告SDKの検証で実機のIDFAを広告管理画面に登録するときは、許可を出したうえで値を写し、検証後に許可を戻す手順にします。
IDFAのリセット手順とAndroid側の広告IDの削除は広告識別子(広告ID)とは?ADID・IDFA・AAIDの違いと確認・リセット・削除にまとめています。
IDFAなしで広告効果を測るSKAdNetworkとAdAttributionKit
ATT下では、IDFAで計測できるのは許可した端末だけです。Appleが用意している代わりの手段がSKAdNetwork(iOS 11.3〜)と、後継のAdAttributionKit(iOS 17.4〜)です。どちらもインストールごとに端末からAppleが署名したポストバックを広告ネットワークへ送りますが、ユーザーや端末を識別する情報は含まれません。APIはATTの許可を求める前に呼べ、許可状態に関係なく使えます。
SKAN 4の3回のポストバックとfine値・coarse値
SKAdNetwork 4(iOS 16.1〜)では、初回起動から数える3つのウィンドウに対応して、最大3回のポストバックが届きます。複数回の受信には、広告がバージョン4以降で署名され、各ウィンドウ内でアプリが変換値を更新する必要があります。
| 回 | ウィンドウ | 送信遅延 | 届く値 |
|---|---|---|---|
| 1回目 | 0〜2日 | 24〜48時間 | fine値またはcoarse値 |
| 2回目 | 3〜7日 | 24〜144時間 | coarse値のみ |
| 3回目 | 8〜35日 | 24〜144時間 | coarse値のみ |
fine値は0〜63の整数、coarse値はlow・medium・highの3段階で、意味はアプリ側か広告ネットワークが決めます。0〜63の値が届くのは1回目だけで、3日目以降の行動はcoarse値でしか表せません。更新にはupdatePostbackConversionValue(_:coarseValue:lockWindow:completionHandler:)を使い、fine値と一緒に必ずcoarse値も渡します。Tier 1では1回目もcoarse値だけが返り、Tier 0ではfine値もcoarse値も返らないためです。
クラウド匿名性の階層と階層型ソースID
どこまで詳しい値が届くかは、Appleが決める「クラウド匿名性」の階層(Tier 0〜3)で変わります。表示元アプリ、広告されたアプリ、国などの利用者の規模を見て決まり、規模が小さいほど情報が減ります。Tier 0では1回目のポストバックしか届かず、値も入りません。
キャンペーンの区別には4桁の階層型ソースIDを使います。階層が低いとポストバックに残るのは下2桁だけで、AppleのWWDC22の例では5739が39・739・5739として届きます。最も重要な区分(キャンペーン)は下2桁に、地域や掲載面などの細かい区分は3桁目と4桁目に置きます。逆に置くと、小さいキャンペーンの成果が読めなくなります。
AdAttributionKitの対応範囲とSafariのプライバシー保護広告の測定
SKAdNetworkのドキュメントは冒頭で「Use AdAttributionKit for app ad campaigns on the App Store and alternative marketplaces.」と案内していますが、2026年11月時点でSKAdNetworkクラスに非推奨の表示はありません。AdAttributionKitは代替アプリマーケットプレイスの広告にも対応し、広告ネットワークIDは両方で共通に使えます。インストール済みアプリへの再訪を測る再エンゲージメント(iOS 18〜)はAdAttributionKitにしかありません。iOS 17.4未満の端末ではAdAttributionKitが動かないため、既存アプリはSKAdNetworkの更新呼び出しを残したまま、両方に対応したSDKを入れる構成にします。
Safari上の広告では、同じ考え方の仕組みが設定の「プライバシー保護広告の測定」です。AppleのSafariとプライバシーのページでは「“設定”>“アプリ”>“Safari”>“詳細”」にあり、計測の報告はランダムに24〜48時間遅らせて送られます。macOS 13のSafari 16.1ガイドでは「広告の有効性のプライバシー保護測定を許可」と表記されていた項目です。
実務では、IDFAの許可率を上げる工夫に投資するより、許可が取れない端末を標準ケースとして計測を組み直すほうが確実です。EUのように再要求が1年に1回しかできない地域もあり、全利用者をIDFAで測る前提のKPIは拒否した利用者の成果を取りこぼします。変換値の設計とファーストパーティデータの整備を先に済ませ、IDFAは取れたら精度が上がる補助の入力として扱います。広告の増分効果を確かめたい場合はインクリメンタリティとは?広告の増分効果を測る手法とCPA評価の限界・運用判断を解説の手法を組み合わせます。
よくある質問
IDFAは個人情報ですか?
IDFAが単体で、または他の情報との容易な照合で特定の個人を識別できなければ、個人情報には当たりません。ただし個人情報保護委員会のガイドライン(通則編)は、端末識別子を通じて収集した閲覧履歴を「個人関連情報」の事例に挙げており、第三者がそれを個人データとして取得することが想定される提供は31条の確認義務の対象になり得ます。
IDFAが00000000-0000-0000-0000-000000000000になるのはなぜですか?
ATTの未要求、拒否、システムによる制限が原因です。許可状態とは別に、シミュレータ、macOS、visionOS上で動くiPhone/iPad互換アプリでも常に全ゼロが返ります。実機での許可状態はtrackingAuthorizationStatusで確認してください。
iPhoneのIDFAを確認する方法は?
設定画面では確認できません。「設定」>「プライバシーとセキュリティ」>「トラッキング」で見られるのはアプリごとの許可状態だけです。値を見るにはASIdentifierManagerで読むアプリが必要で、App StoreのIDFA表示アプリを使う場合も、そのアプリにトラッキングを許可しないと全ゼロになります。
SKAdNetworkを使うのにATTの許可は必要ですか?
不要です。AppleはSKAdNetworkのAPIをATTの前に呼ぶ必要はないとしており、ポストバックにはユーザーや端末を識別するデータが入りません。許可しなかった端末のインストールも、集計された値として広告ネットワークに届きます。
IDFAとIDFVはどう使い分けますか?
同じベンダーの複数アプリで端末単位の分析を行う用途には、ATTの許可なしでIDFVを使えます。セッションやアカウントの識別には、それぞれ別のIDを使います。他社のアプリやサイトをまたいだ効果測定が必要な場合にだけIDFAを使い、ATTの許可を要求してください。