Template Analytics

What you can learn: how to enable analytics, how to interpret them, and how to query them via API for your business templates on the Meta WhatsApp Business platform.

Why Template Analytics Matter

Template analytics help you understand how your message templates are performing. You can use them to answer questions like:

  • How many times was a template sent, delivered, or read?

  • If your template includes URL buttons or Quick Reply buttons, how many times were they clicked?

For businesses using the Marketing Messages Lite API, you can also track off-site conversion metrics (e.g., app activations, checkouts, purchases) tied to templates.

These insights let you evaluate template effectiveness (open-rate, click-rate), compare templates, optimize your content, calls to action, and more accurately tie WhatsApp template usage to business outcomes.

If you want to deeply understand your conversion rates and the ROI/ROAS of your marketing campaigns, consult 360Pilot.

Data is reported with daily granularity in UTC time by default, or in the configured timezone of your WhatsApp Business Account (WABA). The underlying metrics are based only on business-initiated template messages (sent via Cloud API or Marketing Messages Lite).

Limitations

  • Button click analytics are only available for templates categorized as MARKETING or UTILITY.

  • WABAs owned by or shared with Meta Business Accounts in the European Union, United Kingdom, or Japan, or that have a business phone number with a country calling code from any of those countries or regions, are not supported.

  • Offsite conversion metrics are available exclusively for businesses onboarded to MM Lite.

Enable template analytics

You must confirm template analytics on your WhatsApp Business Account before you can get template analytics. You can confirm template analytics using the WhatsApp Manager or the API.

Via API

POSThttps://waba-v2.360dialog.io/marketing/template_analytics?enable=true

Request example:

curl --location \
    --request POST 'https://waba-v2.360dialog.io/marketing/template_analytics?enable=true' \
    --header 'D360-API-KEY: <API_KEY_HERE>'
Name
Type
Description

D360-API-KEY*

string

The phone number API Key. How to generate it here.

Expected outcomes:

Upon success, the API will respond with your WhatsApp Business Account ID. For example:

{                          
  "id": 102290129340398
}

Get Template Analytics via API

Once analytics are enabled, you can retrieve daily metrics for your templates via the API.

Endpoint:

GEThttps://waba-v2.360dialog.io/marketing/template_analytics?start=1759749646&end=1759933601&granularity=DAILY&template_ids=1156697826259690&template_ids=1309207764213383&template_ids=1491614292113607&template_ids=666344773154602

Request example:

curl --location 'https://waba-v2.360dialog.io/marketing/template_analytics?start=1759749646&end=1759933601&granularity=DAILY&template_ids=1156697826259690&template_ids=1309207764213383&template_ids=1491614292113607&template_ids=666344773154602' \
--header 'D360-API-KEY: '

Template Analytics Parameters

Here’s how to use the parameters:

Name
Description
Example Value

start

The start time for the date range you are retrieving analytics for. Can be represented as either a unix timestamp integer or a date string in the format YYYY-MM-DD. As template analytics are being provided with a daily granularity in the UTC timezone, a start unix timestamp that does not correspond to 0:00 UTC will be adjusted back to the current day’s 00:00 UTC.

1543536000

end

The end time for the date range you are retrieving analytics for. Can be represented as either a unix timestamp integer or a date string in the format YYYY-MM-DD. As template analytics are being provided with a daily granularity in the UTC timezone, an end unix timestamp that does not correspond to 0:00 UTC will be adjusted back to the current day’s 00:00 UTC.

1543708800

granularity

The granularity by which you would like to retrieve the analytics. Value must be DAILY.

DAILY

template_ids

An array of template IDs for which you would like to retrieve analytics for.

Maximum 10.

[1924084211297547,954638012257287,969725530748535]

Response example
{
    "data": [
        {
            "granularity": "DAILY",
            "product_type": "cloud_api",
            "data_points": [
                {
                    "template_id": "666344773154602",
                    "start": 1759708800,
                    "end": 1759795200,
                    "sent": 0,
                    "delivered": 0,
                    "read": 0,
                    "replied": 0,
                    "cost": [
                        {
                            "type": "amount_spent"
                        },
                        {
                            "type": "cost_per_delivered"
                        },
                        {
                            "type": "cost_per_url_button_click"
                        }
                    ]
                },
                {
                    "template_id": "666344773154602",
                    "start": 1759795200,
                    "end": 1759881600,
                    "sent": 0,
                    "delivered": 0,
                    "read": 0,
                    "replied": 0,
                    "cost": [
                        {
                            "type": "amount_spent"
                        },
                        {
                            "type": "cost_per_delivered"
                        },
                        {
                            "type": "cost_per_url_button_click"
                        }
                    ]
                },
                {
                    "template_id": "666344773154602",
                    "start": 1759881600,
                    "end": 1759968000,
                    "sent": 0,
                    "delivered": 0,
                    "read": 0,
                    "replied": 0,
                    "cost": [
                        {
                            "type": "amount_spent"
                        },
                        {
                            "type": "cost_per_delivered"
                        },
                        {
                            "type": "cost_per_url_button_click"
                        }
                    ]
                },
                {
                    "template_id": "1156697826259690",
                    "start": 1759708800,
                    "end": 1759795200,
                    "sent": 0,
                    "delivered": 0,
                    "read": 0,
                    "replied": 0,
                    "clicked": [
                        {
                            "type": "url_button",
                            "button_content": "Buy Now",
                            "count": 0
                        },
                        {
                            "type": "unique_url_button",
                            "button_content": "Buy Now",
                            "count": 0
                        }
                    ],
                    "cost": [
                        {
                            "type": "amount_spent"
                        },
                        {
                            "type": "cost_per_delivered"
                        },
                        {
                            "type": "cost_per_url_button_click"
                        }
                    ]
                },
                {
                    "template_id": "1156697826259690",
                    "start": 1759795200,
                    "end": 1759881600,
                    "sent": 0,
                    "delivered": 0,
                    "read": 0,
                    "replied": 0,
                    "clicked": [
                        {
                            "type": "url_button",
                            "button_content": "Buy Now",
                            "count": 0
                        },
                        {
                            "type": "unique_url_button",
                            "button_content": "Buy Now",
                            "count": 0
                        }
                    ],
                    "cost": [
                        {
                            "type": "amount_spent"
                        },
                        {
                            "type": "cost_per_delivered"
                        },
                        {
                            "type": "cost_per_url_button_click"
                        }
                    ]
                },
                {
                    "template_id": "1156697826259690",
                    "start": 1759881600,
                    "end": 1759968000,
                    "sent": 3,
                    "delivered": 3,
                    "read": 3,
                    "replied": 0,
                    "clicked": [
                        {
                            "type": "url_button",
                            "button_content": "Buy Now",
                            "count": 3
                        },
                        {
                            "type": "unique_url_button",
                            "button_content": "Buy Now",
                            "count": 3
                        }
                    ],
                    "cost": [
                        {
                            "type": "amount_spent",
                            "value": 0.26
                        },
                        {
                            "type": "cost_per_delivered",
                            "value": 0.09
                        },
                        {
                            "type": "cost_per_url_button_click",
                            "value": 0.09
                        }
                    ]
                },
                {
                    "template_id": "1309207764213383",
                    "start": 1759708800,
                    "end": 1759795200,
                    "sent": 0,
                    "delivered": 0,
                    "read": 0,
                    "replied": 0,
                    "cost": [
                        {
                            "type": "amount_spent"
                        },
                        {
                            "type": "cost_per_delivered"
                        },
                        {
                            "type": "cost_per_url_button_click"
                        }
                    ]
                },
                {
                    "template_id": "1309207764213383",
                    "start": 1759795200,
                    "end": 1759881600,
                    "sent": 0,
                    "delivered": 0,
                    "read": 0,
                    "replied": 0,
                    "cost": [
                        {
                            "type": "amount_spent"
                        },
                        {
                            "type": "cost_per_delivered"
                        },
                        {
                            "type": "cost_per_url_button_click"
                        }
                    ]
                },
                {
                    "template_id": "1309207764213383",
                    "start": 1759881600,
                    "end": 1759968000,
                    "sent": 0,
                    "delivered": 0,
                    "read": 0,
                    "replied": 0,
                    "cost": [
                        {
                            "type": "amount_spent"
                        },
                        {
                            "type": "cost_per_delivered"
                        },
                        {
                            "type": "cost_per_url_button_click"
                        }
                    ]
                },
                {
                    "template_id": "1491614292113607",
                    "start": 1759708800,
                    "end": 1759795200,
                    "sent": 0,
                    "delivered": 0,
                    "read": 0,
                    "replied": 0,
                    "clicked": [
                        {
                            "type": "url_button",
                            "button_content": "Track your order",
                            "count": 0
                        },
                        {
                            "type": "unique_url_button",
                            "button_content": "Track your order",
                            "count": 0
                        }
                    ],
                    "cost": [
                        {
                            "type": "amount_spent"
                        },
                        {
                            "type": "cost_per_delivered"
                        },
                        {
                            "type": "cost_per_url_button_click"
                        }
                    ]
                },
                {
                    "template_id": "1491614292113607",
                    "start": 1759795200,
                    "end": 1759881600,
                    "sent": 0,
                    "delivered": 0,
                    "read": 0,
                    "replied": 0,
                    "clicked": [
                        {
                            "type": "url_button",
                            "button_content": "Track your order",
                            "count": 0
                        },
                        {
                            "type": "unique_url_button",
                            "button_content": "Track your order",
                            "count": 0
                        }
                    ],
                    "cost": [
                        {
                            "type": "amount_spent"
                        },
                        {
                            "type": "cost_per_delivered"
                        },
                        {
                            "type": "cost_per_url_button_click"
                        }
                    ]
                },
                {
                    "template_id": "1491614292113607",
                    "start": 1759881600,
                    "end": 1759968000,
                    "sent": 2,
                    "delivered": 2,
                    "read": 2,
                    "replied": 0,
                    "clicked": [
                        {
                            "type": "url_button",
                            "button_content": "Track your order",
                            "count": 2
                        },
                        {
                            "type": "unique_url_button",
                            "button_content": "Track your order",
                            "count": 2
                        }
                    ],
                    "cost": [
                        {
                            "type": "amount_spent",
                            "value": 0.02
                        },
                        {
                            "type": "cost_per_delivered",
                            "value": 0.01
                        },
                        {
                            "type": "cost_per_url_button_click",
                            "value": 0.01
                        }
                    ]
                }
            ]
        }
    ],
    "paging": {
        "cursors": {
            "before": "MAZDZD",
            "after": "MjQZD"
        }
    }
}

Interpretation:

  • Sent: Number of times the template was sent on that day in the given date range.

  • Delivered: Number of times the template sent was successfully delivered

  • Read: Number of times the template message was read.

  • Clicked: Array of button‐click metrics (only available for templates in category MARKETING or UTILITY), including total and unique clicks.

  • Cost: Cost metrics, e.g., total amount spent, cost per delivered, cost per URL button click (for campaigns/tracked templates).

How to use WABA Timezone

Display data in the WABA’s configured timezone by passing in the use_waba_timezone param with a value of true.

Example
{
 "data": [
   {
     "waba_timezone": "America/Los_Angeles",
     "granularity": "DAILY",
     "product_type": "cloud_api",
     "data_points": [
         ...
     ]
   }
}

FAQ

Can I get hourly granularity?

No — only daily granularity is available.

What is the maximum number of template IDs I can query at once?

Up to 10 template IDs per request.

Can I measure ROI/ROAS of my campaigns?

Yes, but you will need to use 360pilot to properly attribute costs and revenues per campaign, ad, source, etc.

How can I improve my delivery rate?

If you are sending marketing messages, ensure you use MMLite to increase the delivery rate. You can combine it with Conversions API to provide conversion feedback to Meta. This will maximize the performance of your sendouts.

Last updated

Was this helpful?