Limited Data Use is a data processing option that gives you more control over how your data is used in Meta’s systems and better supports your compliance efforts with various US state privacy regulations. To utilize this feature, you must proactively enable Limited Data Use. When Meta receives data with Limited Data Use enabled from people in the states where Limited Data Use applies, we will process that data in accordance with our role as a service provider or processor, as applicable, and limit the use of that data as specified in our State-Specific Terms.
The following Meta products offer Limited Data Use. Availability varies by state. See the table below for details:
Meta Business Tools (Meta Pixel, App Events via Facebook SDK, App Events API, Conversions API, Offline Conversions API) | Audience Network SDK | Customer List Custom Audiences | |
---|---|---|---|
California | Effective June 1, 2023 | ||
Colorado | Effective June 1, 2023 | Effective June 1, 2023 | |
Connecticut | Effective June 1, 2023 | Effective June 1, 2023 | |
Delaware | Effective December 18, 2024 | Effective December 18, 2024 | |
Florida | Effective June 24, 2024 | Effective June 24, 2024 | |
Montana | Effective September 23, 2024 | Effective September 23, 2024 | |
Nebraska | Effective December 18, 2024 | Effective December 18, 2024 | |
New Hampshire | Effective December 18, 2024 | Effective December 18, 2024 | |
New Jersey | Effective December 18, 2024 | Effective December 18, 2024 | |
Oregon | Effective June 24, 2024 | Effective June 24, 2024 | |
Texas | Effective June 24, 2024 | Effective June 24, 2024 |
Limited Data Use is sent through a parameter called Data Processing Options, and it can optionally be sent alongside a user’s country and state. If an advertiser is not sure of the country or state, they can opt for Meta to determine if the event or record is from an applicable state.
For Business Tools and Audience Network, Limited Data Use is available only for people in California, Colorado, Connecticut, Delaware, Florida, Montana, Nebraska, New Hampshrire, New Jersey, Oregon, or Texas. If a business enables Limited Data Use but does not set the location parameters to US and California, Colorado, Connecticut, Delaware, Florida, Montana, Nebraska, New Hampshrire, New Jersey, Oregon, or Texas we will determine if the event is from one of those states. If Limited Data Use is enabled for an event in California, Colorado, Connecticut, Delaware, Florida, Montana, Nebraska, New Hampshrire, New Jersey, Oregon, or Texas we will process data in accordance with our role as a service provider or processor and limit the use of that data in accordance with our State-Specific Terms.
Businesses may notice an impact to campaign performance and effectiveness, and retargeting and measurement capabilities will be limited when Limited Data Use is enabled.
For Customer List Custom Audiences, Limited Data Use is available only for people in California. If Limited Data Use is enabled for a record in a customer list from California, we will process data in accordance with our role as a service provider and limit the use of that data in accordance with our State-Specific Terms. If a business enables Limited Data Use but does not set the location parameters to US and California, we will determine if the record is from California.
Businesses may notice an impact to audience size when Limited Data Use is enabled.
Supported APIs are listed below.
Learn more about Data Processing Options:
Field | Description |
---|---|
Data Processing Options array | Processing options you would like to enable for a specific event or record. Current accepted value is The name of this field can be presented differently, depending on the API and implementation you are using. For example, this is An empty array can be sent to explicitly specify that this event or record shouldn't be processed with the Limited Data Use restrictions. |
Data Processing Options Country integer | Optional for most APIs. See note below for details. A country that you want to associate with this data processing option. Current accepted values are |
Data Processing Options State integer | Optional for most APIs. See note below for details. A state that you want to associate to this data processing option. Current accepted values are Note:
|
Implementation | Adding Data Processing Options |
---|---|
Browser Pixel | Update Pixel initialization code to specify the To explicitly not enable Limited Data Use (LDU): fbq('dataProcessingOptions', []); fbq('init', '{pixel_id}'); fbq('track', 'PageView'); To enable LDU and have Meta perform geolocation: fbq('dataProcessingOptions', ['LDU'], 0, 0); To enable LDU and specify the location, e.g., for California: fbq('dataProcessingOptions', ['LDU'], 1, 1000); |
Image tag | Add the following to the Pixel image tag:
See Reference for accepted values. To explicitly not enable LDU, pass an empty value for the <img src="https://www.facebook.com/tr?id={pixel_id}&ev=Purchase&dpo=" /> To enable LDU and have Meta perform geolocation: <img src="https://www.facebook.com/tr?id={pixel_id}&ev=Purchase&vdpo=LDU&dpoco=0&dpost=0" /> To enable LDU and manually specify the location, e.g., for California: <img src="https://www.facebook.com/tr?id={pixel_id}&ev=Purchase&dpo=LDU&dpoco=1&dpost=1000" /> |
For these two APIs, implement data processing options by adding data_processing_options
, data_processing_options_country
, and data_processing_options_state
inside each event within the data parameter of your events.
Note: The App Events and Offline Conversions APIs are no longer recommended for new integrations. Instead, it is recommended that you use the Conversions API as it now supports web, app, and offline events. See Conversions API for App Events and Conversions API for Offline Events for more information.
To explicitly not enable Limited Data Use (LDU), specify an empty array for each event or simply remove the field in the payload:
{ "data": [ { "event_name": "Purchase", "event_time": <EVENT_TIME>, "user_data": { "em": "<EMAIL>" }, "custom_data": { "currency": "<CURRENCY>", "value": "<VALUE>" }, "data_processing_options": [] } ] }
To enable LDU and have Meta perform geolocation:
{ "data": [ { "event_name": "Purchase", "event_time": <EVENT_TIME>, "user_data": { "em": "<EMAIL>", "client_ip_address": "256.256.256.256" }, "custom_data": { "currency": "<CURRENCY>", "value": "<VALUE>" }, "data_processing_options": ["LDU"], "data_processing_options_country": 0, "data_processing_options_state": 0 } ] }
To enable LDU and manually specify the location, e.g., for California:
{ "data": [ { "event_name": "Purchase", "event_time": <EVENT_TIME>, "user_data": { "em": "<EMAIL>" }, "custom_data": { "currency": "<CURRENCY>", "value": "<VALUE>" }, "data_processing_options": ["LDU"], "data_processing_options_country": 1, "data_processing_options_state": 1000 } ] }
The Offline Conversions API offers the option to manually upload your events from a .csv
file. In this case, add Data Processing Options, Data Processing Country, and Data Processing State as columns inside your file. More information about this can be found in the upload user interface.
To implement Data Processing Options using the Graph API, add data_processing_options
, data_processing_options_country
, and data_processing_options_state
to your API call.
To explicitly not enable LDU, send an empty data_processing_options
array:
{ "event": "CUSTOM_APP_EVENTS", "application_tracking_enabled": "1", "advertiser_tracking_enabled": "1", "custom_events": ["fb_mobile_purchase"], "data_processing_options": [] }
To enable LDU and have Meta perform geolocation, you can send an event with the following code:
{ "event": "CUSTOM_APP_EVENTS", "application_tracking_enabled": "1", "advertiser_tracking_enabled": "1", "custom_events": ["fb_mobile_purchase"], "data_processing_options": ["LDU"], "data_processing_options_country": 0, "data_processing_options_state": 0 }
To enable LDU and manually specify the location, e.g., for California, you can send an event with the following code:
{ "event": "CUSTOM_APP_EVENTS", "application_tracking_enabled": "1", "advertiser_tracking_enabled": "1", "custom_events": ["fb_mobile_purchase"], "data_processing_options": ["LDU"], "data_processing_options_country": 1, "data_processing_options_state": 1000 }
We recommend using our latest versions to ensure the functionality of Data Processing Options. The below implementation instructions are accurate for the following SDK versions:
Please update if you are using any versions below the ones listed above.
As of July 1, 2023, we are ending the Transition Period for older versions of App Events via the Facebook SDK, whereby we applied Limited Data Use to all personal information shared about people in California. The ability to enable default Limited Data Use will no longer be available for any versions below iOS Facebook SDK v7.1.1, Android Facebook SDK v7.1.0 and Unity SDK v7.21.0. If you choose to use Limited Data Use for a person in California, Colorado, Connecticut, Florida, Texas, or Oregon on or after July 1, 2023, you must update your SDK and implement Data Processing Options as set forth in this document.
Implementation | Adding Data Processing Options |
---|---|
Facebook SDK for iOS v7.1.1+ (Objective-C) | With Objective-C, use To explicitly not enable Limited Data Use (LDU), use: [FBSDKSettings setDataProcessingOptions:@[]]; To enable LDU and have Meta perform geolocation, use: [FBSDKSettings setDataProcessingOptions:@[@"LDU"] country:0 state:0]; To enable LDU and manually specify the location, e.g., for California, use: [FBSDKSettings setDataProcessingOptions:@[@"LDU"] country:1 state:1000]; |
Facebook SDK for iOS v7.1.1+ (Swift) | With Swift, use To explicitly not enable LDU, use: Settings.setDataProcessingOptions(modes: []) To enable LDU and have Meta perform geolocation, use: Settings.setDataProcessingOptions(modes: ["LDU"], country: 0, state: 0) To enable LDU and manually specify the location, e.g., for California, use: Settings.setDataProcessingOptions(modes: ["LDU"], country: 1, state: 1000) |
Facebook SDK for Android v7.1.0+ | Use the To explicitly not enable LDU, use: FacebookSdk.setDataProcessingOptions(new String[] {}); To enable LDU and have Meta perform geolocation, use: FacebookSdk.setDataProcessingOptions(new String[] {"LDU"}, 0, 0); To enable LDU and manually specify the location, e.g., for California, use: FacebookSdk.setDataProcessingOptions(new String[] {"LDU"}, 1, 1000); |
Unity SDK v7.21.1+ | To explicitly not enable LDU, send an event with: FB.Mobile.SetDataProcessingOptions(new string[] {}); To enable LDU and have Meta perform geolocation, send an event with: FB.Mobile.SetDataProcessingOptions(new string[] {"LDU"}, 0, 0); To enable LDU and manually specify the location, e.g., for California, send an event with: FB.Mobile.SetDataProcessingOptions(new string[] {"LDU"}, 1, 1000); |
We recommend using our latest Audience Network SDK versions to ensure the functionality of Data Processing Options. The below implementation instructions are accurate for Audience Network SDK versions 5.10 and above.
As of July 1, 2023, we are ending the Transition Period for older versions of Audience Network SDK, whereby we limited the data for all personal information that businesses share about people in California and the ability to enable default Limited Data Use will not be available for Audience Network SDK versions below 5.10. If you choose to use Limited Data Use to indicate a person in California, Colorado, Connecticut, Florida, Texas, or Oregon or on or after July 1, 2023, you must update your SDK and implement Data Processing Options as set forth in this document.
Implementation | Adding Data Processing Options |
---|---|
Facebook SDK for iOS, v5.10+ | Use To explicitly not enable Limited Data Use (LDU), use: [FBAdSettings setDataProcessingOptions:@[]]; To enable LDU and have Meta perform geolocation, use:
[FBAdSettings setDataProcessingOptions:@[@"LDU"] country:0 state:0]; To enable LDU and manually specify the location, use:
[FBAdSettings setDataProcessingOptions:@[@"LDU"] country:1 state:1000]; |
Facebook SDK for Android, v5.10+ | Use the To explicitly not enable Limited Data Use (LDU), use: AdSettings.setDataProcessingOptions(new String[] {}) To enable LDU and have Meta perform geolocation, use:
AdSettings.setDataProcessingOptions(new String[] {"LDU"}, 0, 0); To enable LDU and manually specify the location, use:
AdSettings.setDataProcessingOptions(new String[] {"LDU"}, 1, 1000); |
Unity SDK, v5.10+ (not using the Audience Network-supplied Unity wrapper) | If you are not using the Audience Network-supplied Unity wrapper, enter the following code. using UnityEngine; using System.Runtime.InteropServices; namespace AudienceNetwork { public static class AdSettings { public static void SetDataProcessingOptions(string[] dataProcessingOptions) { #if UNITY_ANDROID AndroidJavaClass adSettings = new AndroidJavaClass("com.facebook.ads.AdSettings"); adSettings.CallStatic("setDataProcessingOptions", (object)dataProcessingOptions); #endif #if UNITY_IOS FBAdSettingsBridgeSetDataProcessingOptions(dataProcessingOptions, dataProcessingOptions.Length); #endif } public static void SetDataProcessingOptions(string[] dataProcessingOptions, int country, int state) { #if UNITY_ANDROID AndroidJavaClass adSettings = new AndroidJavaClass("com.facebook.ads.AdSettings"); adSettings.CallStatic("setDataProcessingOptions", (object)dataProcessingOptions, country, state); #endif #if UNITY_IOS FBAdSettingsBridgeSetDetailedDataProcessingOptions(dataProcessingOptions, dataProcessingOptions.Length, country, state); #endif } #if UNITY_IOS [DllImport("__Internal")] private static extern void FBAdSettingsBridgeSetDataProcessingOptions(string[] dataProcessingOptions, int length); [DllImport("__Internal")] private static extern void FBAdSettingsBridgeSetDetailedDataProcessingOptions(string[] dataProcessingOptions, int length, int country, int state); #endif } } After entering this code, you can follow the Unity SDK instructions in the row below as if you are using the Unity wrapper. |
Unity SDK, v5.10+ (using the Audience Network-supplied Unity wrapper) | If you are using the Audience Network-supplied Unity wrapper, use the following To explicitly not enable LDU, use: AdSettings.SetDataProcessingOptions(new string[]{}) To enable LDU and have Meta perform geolocation, use:
AdSettings.SetDataProcessingOptions(new string[] {"LDU"}, 0, 0); To enable LDU and manually specify the location, use:
AdSettings.SetDataProcessingOptions(new string[] {"LDU"}, 1, 1000); |
Publishers using a Mediation Partner must set the Data Processing Options (Limited Data Use) on the Meta Audience Network SDK before initializing the Mediation SDK so that it is received by us in the bidding request.
Implementation | Adding Data Processing Options |
---|---|
Android | To explicitly not enable LDU for the event, use: AdSettings.setDataProcessingOptions(new String[] {}) To enable LDU and have Meta perform geolocation, use:
AdSettings.setDataProcessingOptions(new String[] {"LDU"}, 0, 0); To enable LDU and manually specify the location, use:
AdSettings.setDataProcessingOptions(new String[] {"LDU"}, 1, 1000); After setting LDU, initialize the Mediation Partner SDK as per usual. |
iOS | To explicitly not enable Limited Data Use (LDU), use: FBAdSettings setDataProcessingOptions:@[]]; To enable LDU and have Meta perform geolocation, use:
[FBAdSettings setDataProcessingOptions:@[@"LDU"] country:0 state:0]; To enable LDU and manually specify the location, use:
[FBAdSettings setDataProcessingOptions:@[@"LDU"] country:1 state:1000]; After setting the LDU for the event, initialize the Mediation Partner SDK as per usual. |
For publishers that are working with us through Bidding Kit and other Server-side Bidding, please follow the implementation methods below.
Implementation | Adding Data Processing Options |
---|---|
Android/Bidding Kit 2.0 | To explicitly not enable LDU, use: AdSettings.setDataProcessingOptions(new String[] {}) To enable LDU and have Meta perform geolocation, use:
AdSettings.setDataProcessingOptions(new String[] {"LDU"}, 0, 0); To enable LDU and manually specify the location, use:
AdSettings.setDataProcessingOptions(new String[] {"LDU"}, 1, 1000); After setting the LDU for the event, generate the bidder token: String token = BidderTokenProvider.getBidderToken(Context); |
iOS/Bidding Kit 2.0 | To explicitly not enable Limited Data Use (LDU), use: [FBAdSettings setDataProcessingOptions:@[]]; To enable LDU and have Meta perform geolocation, use:
[FBAdSettings setDataProcessingOptions:@[@"LDU"] country:0 state:0]; To enable LDU and manually specify the location, use:
[FBAdSettings setDataProcessingOptions:@[@"LDU"] country:1 state:1000]; After setting the LDU for the event, generate the bidder token: NSString *token = [FBAdSettings bidderToken]; |
Other Server-Side Bidding | For each platform follow the instructions below to specify LDU for the event and retrieve the bidder token before making the server-side bid request. For Android client: To explicitly not enable LDU, use: AdSettings.setDataProcessingOptions(new String[] {}) To enable LDU and have Meta perform geolocation, use:
AdSettings.setDataProcessingOptions(new String[] {"LDU"}, 0, 0); To enable LDU and manually specify the location, use:
AdSettings.setDataProcessingOptions(new String[] {"LDU"}, 1, 1000); After setting the LDU for the event, generate the bidder token: String token = BidderTokenProvider.getBidderToken(Context); For iOS client: To explicitly not enable Limited Data Use (LDU), use: [FBAdSettings setDataProcessingOptions:@[]]; To enable LDU and have Meta perform geolocation, use:
[FBAdSettings setDataProcessingOptions:@[@"LDU"] country:0 state:0]; To enable LDU and manually specify the location, use:
[FBAdSettings setDataProcessingOptions:@[@"LDU"] country:1 state:1000]; After setting the LDU for the event, generate the bidder token: NSString *token = [FBAdSettings bidderToken]; |
If you want to enable Limited Data Use for people in California via customer list custom audiences on or after June 1, 2023, you must upload new audiences or update your existing audiences with the Limited Data Use flag. Regularly update and maintain your audiences and people’s Limited Data Use statuses as needed.
Please note that a Limited Data Use flag applied to a user in one audience will not automatically carry over to different audiences. In the same way advertisers must manage each of their existing customer list custom audiences separately by the criteria they select, the Limited Data Use flag must be applied separately to each audience they leverage for their advertising.
To explicitly NOT enable LDU
for the record, you can either send an empty data_processing_options
array or remove the field in the payload. Example of an empty array:
{ "payload": { "schema": [ "EMAIL", "DATA_PROCESSING_OPTIONS" ], "data": [ [ "<HASHED_DATA> ", [] ] ] } }
To explicitly enable LDU
, and have Meta perform geolocation (by not including state and country of the given record), specify an array containing LDU
for each record:
{ "payload": { "schema": [ "EMAIL", "DATA_PROCESSING_OPTIONS" ], "data": [ [ "<HASHED_DATA> ", ["LDU"] ] ] } }
To enable LDU and manually specify the location:
{ "customer_consent": true, "payload": { "schema": [ "EMAIL", "DATA_PROCESSING_OPTIONS", "DATA_PROCESSING_OPTIONS_COUNTRY", "DATA_PROCESSING_OPTIONS_STATE" ], "data": [ [ "<HASHED_DATA>", ["LDU"], 1, 1000 ] ] } }