Measure Campaign Performance on Marketing Message API for Messenger
Updated: May 22, 2026
This document explains how to obtain insights for a marketing message campaign, including:
- Number of messages delivered
- Message read and click rate
- Cost per delivery and click
- Website conversion events attributed to Meta Pixel or Conversions API
- Website purchase value and return on ad spend
Insights on delivered messages
Send a
GET request to the <MESSAGE_CAMPAIGN_ID>/insights endpoint to get insights for marketing messages campaign with the fields parameter set to one or more of the following fields:marketing_messages_cost_per_deliveredmarketing_messages_cost_per_link_btn_clickmarketing_messages_deliveredmarketing_messages_link_btn_clickmarketing_messages_link_btn_click_ratemarketing_messages_read_ratemarketing_messages_spend
Sample request
Formatted for readability.
curl -i -X GET \
-H "Authorization: Bearer <SYSTEM_USER_ACCESS_TOKEN>" \
"https://graph.facebook.com/<API_VERSION>/<MESSAGE_CAMPAIGN_ID>/insights \
?fields=marketing_messages_delivered,marketing_messages_read_rate"
On success, your app receives a JSON object with the number of messages delivered, the read rate, and the start and stop date of the messaging campaign.
Example response
{ "data": [ { "marketing_messages_delivered": "2755", "marketing_messages_link_btn_click": "268", "marketing_messages_spend": "38.87", "marketing_messages_read_rate": "79.419238", "marketing_messages_link_btn_click_rate": "9.727768", "marketing_messages_cost_per_link_btn_click": "0.145037", "marketing_messages_delivery_rate": "0", "marketing_messages_cost_per_delivered": "0.014109", "date_start": "2024-05-01", "date_stop": "2025-07-29" } ], "paging": { "cursors": { "before": "MAZDZD", "after": "MAZDZD" } } }
Insights on offsite conversions
If the marketing messages campaign is configured for pixel attribution, you can query website conversion metrics attributed to the campaign. These metrics report website events tracked by Meta Pixel or Conversions API after a person clicks a link in your marketing message.
Query offsite conversions through the standard Ads Insights action fields:
actionsreturns conversion counts.action_valuesreturns attributed conversion values for value-bearing events, such as purchases.website_purchase_roasreturns return on ad spend from website purchase events.
Use
action_breakdowns=action_type and filter for the exact offsite conversion action types you want to return.Sample request
Formatted for readability.
curl -i -X GET \
-H "Authorization: Bearer <SYSTEM_USER_ACCESS_TOKEN>" \
"https://graph.facebook.com/<API_VERSION>/<MESSAGE_CAMPAIGN_ID>/insights \
?fields=actions,action_values,website_purchase_roas,marketing_messages_spend \
&time_range={'since':'<YYYY-MM-DD>','until':'<YYYY-MM-DD>'} \
&action_breakdowns=action_type \
&filtering=[{'field':'action_type','operator':'IN','value':['offsite_conversion.fb_pixel_purchase','offsite_conversion.fb_pixel_add_to_cart','offsite_conversion.fb_pixel_initiate_checkout','offsite_conversion.fb_pixel_lead','offsite_conversion.fb_pixel_view_content','offsite_conversion.fb_pixel_custom']}]"
On success, your app receives a JSON object with the requested action stats, spend metrics, and the start and stop date of the query.
Example response
{ "data": [ { "actions": [ { "action_type": "offsite_conversion.fb_pixel_purchase", "value": "3" }, { "action_type": "offsite_conversion.fb_pixel_add_to_cart", "value": "8" } ], "action_values": [ { "action_type": "offsite_conversion.fb_pixel_purchase", "value": "249.99" } ], "website_purchase_roas": [ { "action_type": "offsite_conversion.fb_pixel_purchase", "value": "6.43" } ], "marketing_messages_spend": "38.87", "date_start": "<YYYY-MM-DD>", "date_stop": "<YYYY-MM-DD>" } ], "paging": { "cursors": { "before": "MAZDZD", "after": "MAZDZD" } } }
If an offsite conversion action type has no attributed events in the selected date range, it may be omitted from the response.
Additionally, insights under an ad account can be obtained by the
act_<AD_ACCOUNT_ID>/insights endpoint.Querying on time ranges and date presets is also supported for campaigns created March 1st or later. Below are query parameter options you can use to query on specific dates:
| Parameter Name | Description |
|---|---|
time_range{‘since’:YYYY-MM-DD,’until’:YYYY-MM-DD} | A single time range object. UNIX timestamp not supported. |
date_presetenum{ today, yesterday, this_month, last_month, this_quarter, maximum, data_maximum, last_3d, last_7d, last_14d, last_28d, last_30d, last_90d, last_week_mon_sun, last_week_sun_sat, last_quarter, last_year, this_week_mon_today, this_week_sun_today, this_year} | Default value: last_30dRepresents a relative time range. This field is ignored if time_range is specified. |
Field reference
| Field or action type | Description |
|---|---|
marketing_messages_cost_per_delivered | The average cost per message delivered. |
marketing_messages_cost_per_link_btn_click | The average cost for each message link click. This metric doesn’t include messages sent to Europe, Argentina, Turkey, South Korea and Japan. |
marketing_messages_delivered | The number of messages a business sent to users that were delivered. Some messages may not be delivered, such as when a user’s device is out of service. This metric doesn’t include messages delivered to Europe and Japan. In some cases, this metric may be estimated and may differ from what’s shown on your invoice due to small variations in data processing. |
marketing_messages_link_btn_click | The number of clicks or taps within the marketing message that led to advertiser-specified destinations, on or off Meta technologies. This metric doesn’t include messages sent to Europe, Argentina, Turkey, South Korea and Japan. |
marketing_messages_link_btn_click_rate | The percentage of delivered messages that received a link click out of the total number of messages delivered. This metric doesn’t include messages sent to Europe, Argentina, Turkey, South Korea and Japan. |
marketing_messages_read_rate | The number of messages read divided by the number of messages delivered. Some message reads may not be captured, such as when a customer has turned off read receipts. This metric doesn’t include messages sent to Europe and Japan. |
marketing_messages_spend | The total amount of money you’ve spent on your campaign, set or message during its schedule. |
offsite_conversion.fb_pixel_purchase | Website Purchases. The number of purchase events tracked by the pixel or Conversions API on your website and attributed to your ads.This metric is estimated. |
offsite_conversion.fb_pixel_purchase | Website Purchases Conversion Value. The total value of website purchases.This metric is estimated. |
offsite_conversion.fb_pixel_initiate_checkout | Website Checkouts Initiated. The number of initiate checkout events tracked by the Meta Pixel or Conversions API on your website and attributed to your ads.This metric is estimated. |
offsite_conversion.fb_pixel_add_to_cart | Website Adds to Cart. The number of add to cart events tracked by the Meta Pixel or Conversions API on your website and attributed to your ads.This metric is estimated. |
offsite_conversion.fb_pixel_custom | Custom pixel event. The number of custom events tracked by the Facebook pixel on your website and attributed to your ads. Custom events are actions that occur on your website that you have set up to track, such as a user adding an item to their cart or completing a purchase.This metric is estimated. |
offsite_conversion.fb_pixel_complete_registration | Website Registrations Completed. The number of complete registration events tracked by the Meta Pixel or Conversions API on your website and attributed to your ads.This metric is estimated. |
offsite_conversion.fb_pixel_search | Website Searches. The number of search events tracked by the Meta Pixel or Conversions API on your website and attributed to your ads.This metric is estimated. |
offsite_conversion.fb_pixel_view_content | Website Content Views. The number of view content events tracked by the pixel or Conversions API on your website and attributed to your ads.This metric is estimated. |
offsite_conversion.fb_pixel_add_payment_info | Website Adds of Payment Info. The number of add payment info events tracked by the Meta Pixel or Conversions API on your website and attributed to your ads.This metric is estimated. |
offsite_conversion.fb_pixel_add_to_wishlist | Website Adds to Wishlist. The number of add to wishlist events tracked by the pixel or Conversions API on your website and attributed to your ads.This metric is estimated. |
offsite_conversion.fb_pixel_lead | Website Leads. The number of lead events tracked by the pixel or Conversions API on your website and attributed to your ads.This metric is estimated. |
website_purchase_roas | Website Purchase ROAS (Return on Ad Spend). The total return on ad spend (ROAS) from website purchases. This is based on the value of website purchase events recorded by the Meta Pixel or Conversions API on your website and attributed to your ads.This metric is estimated. |
Next steps
Now that you have learned how to get insights on your campaign, learn how to increase a business’ subscribers.