Appearance
Fresh 2026
Ad Pixel
Reading
A Facebook pixel is a small piece of JavaScript code that an advertiser places on every page of their website. This piece of code provides a set of lightweight functionalities for sending user-specific events and event-specific custom data to Facebook. Advertisers can use the Facebook pixel to capture intent information about how people are using their website. A single Facebook pixel is added to all pages of a website, and is then used to create website custom audiences
Example
HTTPPHP SDKJavaScript SDKAndroid SDKiOS SDK Graph API Explorer
GET /v25.0/{ads-pixel-id} HTTP/1.1
Host: graph.facebook.com/* PHP SDK v5.0.0 */
/* make the API call */
try {
// Returns a `Facebook\FacebookResponse` object
$response = $fb->get(
'/{ads-pixel-id}',
'{access-token}'
);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$graphNode = $response->getGraphNode();
/* handle the result *//* make the API call */
FB.api(
"/{ads-pixel-id}",
function (response) {
if (response && !response.error) {
/* handle the result */
}
}
);/* make the API call */
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/{ads-pixel-id}",
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
/* handle the result */
}
}
).executeAsync();/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]\
initWithGraphPath:@"/{ads-pixel-id}"\
parameters:params\
HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,\
id result,\
NSError *error) {\
// Handle the result\
}];If you want to learn how to use the Graph API, read our Using Graph API guide.
Parameters
This endpoint doesn't have any parameters.
Fields
| Field | Description |
|---|---|
id<br>numeric string | ID of the pixel<br>Default |
automatic_matching_fields<br>list<enum> | Advanced matching fields which are enabled for automatic advanced matching |
can_proxy<br>bool | can_proxy |
code<br>string | Pixel code to be placed on the website |
config<br>string | The configuration to use for uploads to this dataset. Format determined by the method of upload (eg. UI or SDK) |
creation_time<br>datetime | Time at which the pixel was created |
creator<br>User | The user who created this pixel |
data_use_setting<br>enum | Setting to capture how pixel data should be used |
description<br>string | SELF_EXPLANATORY |
duplicate_entries<br>integer | Number of duplicate entries for this dataset |
enable_auto_assign_to_accounts<br>bool | Whether the dataset is auto assigned and auto tracked for all accounts that the owner business owns |
enable_automatic_matching<br>bool | Represents whether automatic advanced matching is enabled for the pixel for identity matching purposes |
event_stats<br>string | Event stats of this dataset |
event_time_max<br>integer | Latest entry of this dataset |
event_time_min<br>integer | Earliest entry of this dataset |
first_party_cookie_status<br>enum | First party cookie status to indicate whether first party cookies can be set for this pixel |
has_1p_pixel_event<br>bool | whether pixel has sent us 1p signals |
is_consolidated_container<br>bool | A boolean value indicating whether this signal container has unified pixel and offline conversion data set |
is_created_by_business<br>bool | Flag stands for if a pixel is created by business |
is_crm<br>bool | True if a pixel contains lead gen data source config |
is_mta_use<br>bool | Whether the dataset is restricted to MTA only |
is_restricted_use<br>bool | Whether the dataset is restricted to Lift only |
is_unavailable<br>bool | Whether this pixel is unavailable |
last_fired_time<br>datetime | Time at which the pixel was last fired |
last_upload_app<br>string | The app that made the most recent upload |
last_upload_app_changed_time<br>integer | Time when the app that made the most recent upload last changed |
match_rate_approx<br>int32 | Approximate match rate percentage for the entries in this dataset |
matched_entries<br>integer | Number of matched entries of this dataset |
name<br>string | Name of the pixel |
owner_business<br>Business | ID of the business that owns this pixel or null if the pixel has not been claimed by any business yet. |
usage<br>OfflineConversionDataSetUsage | Usage info for the dataset |
valid_entries<br>integer | Number of valid entries of this dataset |
Edges
| Edge | Description |
|---|---|
assigned_users<br>Edge<AssignedUser> | assigned_users |
da_checks<br>Edge<DACheck> | A list of results after running Dynamic Ads checks on this pixel. |
offline_event_uploads<br>Edge<OfflineConversionDataSetUpload> | The offline uploads associated with this event set |
openbridge_configurations<br>Edge<OpenBridgeConfiguration> | Get all the openbridge configurations associated to this Pixel |
shared_agencies<br>Edge<Business> | Agencies or other businesses this pixel is shared with |
stats<br>Edge<AdsPixelStatsResult> | Stats data for this pixel |
Error Codes
| Error | Description |
|---|---|
| 200 | Permissions error |
| 100 | Invalid parameter |
| 80004 | There have been too many calls to this ad-account. Wait a bit and try again. For more info, please refer to https://developers.facebook.com/docs/graph-api/overview/rate-limiting#ads-management. |
| 368 | The action attempted has been deemed abusive or is otherwise disallowed |
| 190 | Invalid OAuth 2.0 Access Token |
| 2500 | Error parsing graph query |
Creating
You can make a POST request to adspixels edge from the following paths:
/act_{ad_account_id}/adspixels
When posting to this edge, an AdsPixel will be created.
Example
HTTPPHP SDKJavaScript SDKAndroid SDKiOS SDKcURL Graph API Explorer
POST /v25.0/act_<AD_ACCOUNT_ID>/adspixels HTTP/1.1
Host: graph.facebook.com
name=My+WCA+Pixel/* PHP SDK v5.0.0 */
/* make the API call */
try {
// Returns a `Facebook\FacebookResponse` object
$response = $fb->post(
'/act_<AD_ACCOUNT_ID>/adspixels',
array (
'name' => 'My WCA Pixel',
),
'{access-token}'
);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$graphNode = $response->getGraphNode();
/* handle the result *//* make the API call */
FB.api(
"/act_<AD_ACCOUNT_ID>/adspixels",
"POST",
{
"name": "My WCA Pixel"
},
function (response) {
if (response && !response.error) {
/* handle the result */
}
}
);Bundle params = new Bundle();
params.putString("name", "My WCA Pixel");
/* make the API call */
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/act_<AD_ACCOUNT_ID>/adspixels",
params,
HttpMethod.POST,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
/* handle the result */
}
}
).executeAsync();NSDictionary *params = @{
@"name": @"My WCA Pixel",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]\
initWithGraphPath:@"/act_<AD_ACCOUNT_ID>/adspixels"\
parameters:params\
HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,\
id result,\
NSError *error) {\
// Handle the result\
}];curl -X POST \
-F 'name="My WCA Pixel"' \
-F 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v25.0/act_<AD_ACCOUNT_ID>/adspixelsIf you want to learn how to use the Graph API, read our Using Graph API guide.
Parameters
| Parameter | Description |
|---|---|
name<br>string | Name of the pixel |
Return Type
This endpoint supports read-after-write and will read the node represented by id in the return type.
Struct {
id: numeric string,
}
Error Codes
| Error | Description |
|---|---|
| 6202 | More than one pixel exist for this account |
| 6200 | A pixel already exists for this account |
| 100 | Invalid parameter |
| 200 | Permissions error |
Updating
You can update an AdsPixel by making a POST request to /{ads_pixel_id}.
Parameters
| Parameter | Description |
|---|---|
automatic_matching_fields<br>array<enum {em, fn, ln, ph, ge, zp, ct, st, country, db, external_id}> | Advanced matching fields for which automatic advanced matching should be enabled |
data_use_setting<br>enum {EMPTY, ADVERTISING_AND_ANALYTICS, ANALYTICS_ONLY} | Setting to capture how pixel data should be used |
enable_automatic_matching<br>boolean | Enable automatic advanced matching for the pixel for identity matching purposes |
first_party_cookie_status<br>enum {EMPTY, FIRST_PARTY_COOKIE_ENABLED, FIRST_PARTY_COOKIE_DISABLED} | First party cookie status to indicate whether first party cookies can be set for this pixel |
name<br>string | Name of the pixel |
server_events_business_ids<br>array<numeric string> | server_events_business_ids |
Return Type
This endpoint supports read-after-write and will read the node to which you POSTed.
Struct {
success: bool,
}
Error Codes
| Error | Description |
|---|---|
| 190 | Invalid OAuth 2.0 Access Token |
| 100 | Invalid parameter |
Deleting
You can't perform this operation on this endpoint.