We offer two options to get feedback about the quality and performance of your different Advantage+ catalog ads assets:
To identify issues with your pixel or app installation, you can check aggregate statistics about matched and unmatched events received from different pixels, apps and devices.
Query Event API to get statistics about events originating from event sources linked to your catalog. See Events API, Reference for details.
You can get this information at the catalog level:
curl -X GET \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v21.0/<PRODUCT_CATALOG_ID>/event_stats
This returns an array of elements, one per event type, source and date within the last month:
{ "data": [ { "date_start": "2017-03-16", "date_stop": "2017-03-16", "event": "AddToCart", "event_source": { "id": "<PIXEL_ID>", "source_type": "PIXEL" }, "total_matched_content_ids": 1086, "total_content_ids_matched_other_catalogs": 10024, "total_unmatched_content_ids": 13024, "unique_matched_content_ids": 285, "unique_content_ids_matched_other_catalogs": 102, "unique_unmatched_content_ids": 2132 }, { "date_start": "2017-03-16", "date_stop": "2017-03-16", "event": "ViewContent", "event_source": { "id": "<APP_ID>", "source_type": "APP" }, "total_matched_content_ids": 1007, "total_content_ids_matched_other_catalogs": 504, "total_unmatched_content_ids": 20206, "unique_matched_content_ids": 507, "unique_content_ids_matched_other_catalogs": 402, "unique_unmatched_content_ids": 8037 }, ... ] }
The fields returned for each event type, source and date are:
Count | Description |
---|---|
| The total number of content ids from received events that matched to an item in the catalog. This count is not de-duplicated across content ids. |
| Total number of content IDs from received events that matched to an item in another catalog associated to the given pixel or app. This count is not de-duplicated across content IDs. |
| Total number of content IDs from received events received that didn't match an item in the catalog. This count is not de-duplicated across content IDs. |
| Number of unique content IDs from received events that matched to an item in the catalog. |
| Number of unique content IDs from received events that matched to an item in another catalog associated to the given pixel or app that fired the event. |
| Number of unique content ids from received events that didn't match an item in the catalog. |
Break down results by passing device_type
:
use FacebookAds\Api;
use FacebookAds\Http\RequestInterface;
$data = Api::instance()->call(
'/' . <CATALOG_ID> . '/event_stats',
RequestInterface::METHOD_GET,
array(
'breakdowns' => array('device_type'),
))->getContent();
curl -G \
-d 'breakdowns=["device_type"]' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<CATALOG_ID>/event_stats
This returns results grouped by device they occurred on. For example desktop
, mobile_iphone
, mobile_android_phone
and so on:
{ "data": [ { "date_start": "2017-03-10", "date_stop": "2017-03-10", "event": "AddToCart", "event_source": { "id": "<PIXEL_ID>", "source_type": "PIXEL" }, "device_type": "desktop", "total_matched_content_ids": 282, "total_content_ids_matched_other_catalogs": 524, "total_unmatched_content_ids": 4965, "unique_matched_content_ids": 102, "unique_content_ids_matched_other_catalogs": 402, "unique_unmatched_content_ids": 1427 }, ... ] }
Example—Use checks to allow you to verify if there are any issues with the events sent by your pixel.
use FacebookAds\Api;
use FacebookAds\Http\RequestInterface;
$data = Api::instance()->call(
'/' . <PIXEL_ID> . '/da_checks',
RequestInterface::METHOD_GET)->getContent();
curl -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<PIXEL_ID>/da_checks
Example—Response
{ "data": [ { "description": "Pixel hasn't sent some or any events for Advantage+ catalog ads (ex: ViewContent, AddToCart, Purchase) at least once in the last 24 hours.", "key": "pixel_missing_dpa_event", "result": "failed", "title": "Pixel is not sending DPA events" }, { "description": "Pixel events might be missing parameters some or all of the time.", "key": "pixel_missing_param_in_events", "result": "passed", "title": "Pixel missing parameter in DPA events" }, { "action_uri": "https://www.facebook.com/ads/manage/pixels/?pixel_id=<PIXEL_ID>&m2w=1", "description": "The number of pixel events has dropped to less than half of the weekly average.", "key": "pixel_decline", "result": "passed", "title": "Decline in number of pixel events" } ] }
You can use the following checks:
Check | Description |
---|---|
| Checks if there are missing events for this pixel, as defined in Advantage+ Catalog Ads. |
| Checks if there are events with missing mandatory parameters, as defined in Dynamic Ads. |
| Checks if there's a decline in the number of events received for that pixel in the last 24 hours. |
For details, see Pixel Dynamic Ads Checks, Reference.
Possible values for the result
field:
Status | Description |
---|---|
passed | Your pixel passed this check. |
failed | Your pixel didn't pass this check. |
unavailable | This check is not available for this pixel right now. Please try again later. |
We return all checks by default, but you can specify checks you'd like to run, as follow:
use FacebookAds\Api;
use FacebookAds\Http\RequestInterface;
$data = Api::instance()->call(
'/' . <PIXEL_ID> . '/da_checks',
RequestInterface::METHOD_GET,
array(
'checks' => array(
'pixel_decline',
'pixel_missing_dpa_event',
'pixel_missing_param_in_events',
),
))->getContent();
curl -G \
--data-urlencode 'checks=[
"pixel_decline",
"pixel_missing_dpa_event",
"pixel_missing_param_in_events"
]' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<PIXEL_ID>/da_checks
You can verify if there are any issues with the events sent by your app:
use FacebookAds\Api;
use FacebookAds\Http\RequestInterface;
$data = Api::instance()->call(
'/' . <APP_ID> . '/da_checks',
RequestInterface::METHOD_GET)->getContent();
curl -G \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<APP_ID>/da_checks
Example response:
{ "data": [ { "description": "App hasn't sent some or any events for dynamic ads (ex: ViewContent, AddToCart, Purchase)...", "key": "app_missing_dpa_event", "result": "failed", "title": "App is not sending DPA events" }, { "description": "App events might be missing parameters some or all of the time.", "key": "app_missing_param_in_events", "result": "passed", "title": "App missing parameter in DPA events" } ] }
Check | Description |
---|---|
| Checks if there are missing events for the app, as defined in Dynamic Ads. |
| Checks if there are events with missing mandatory parameters, as defined in Dynamic Ads. |
For more details, see App DA Checks, Reference.
Possible values returned for result
:
Status | Description |
---|---|
passed | Your app passed this check. |
failed | Your app didn't pass this check. |
unavailable | This check is not available for this app right now. Please try again later. |
You can request values for specific checks. We return all by default, but you can specify which checks you'd like to run by passing them in the request:
use FacebookAds\Api;
use FacebookAds\Http\RequestInterface;
$data = Api::instance()->call(
'/' . <APP_ID> . '/da_checks',
RequestInterface::METHOD_GET,
array(
'checks' => array('app_missing_dpa_event', 'app_missing_param_in_events'),
))->getContent();
curl -G \
-d 'checks=["app_missing_dpa_event","app_missing_param_in_events"]' \
-d 'access_token=<ACCESS_TOKEN>' \
https://graph.facebook.com/v2.11/<APP_ID>/da_checks