Ledger entryNo. 075738
Template Analytics
Also called: Template insights · Template performance metrics · template_analytics endpoint
- Templates
- Practitioner
- Marketers
- Developers
- Definition
- Per-template daily counts of messages sent, delivered and read, button clicks and cost, from WhatsApp Manager or the template_analytics API endpoint.
Templates
Mode · bar chart
Work it out
Which template is earning its keep?
- Delivered (% of sent)
- Read (% of delivered)
- Clicked (% of delivered)
Grouped · % (illustrative)
Highest bar: Delivered (% of sent) in order_shipped at 97 % (illustrative).
Hover, focus or tap a column for exact values; press it to pin.
| Category | Delivered (% of sent) | Read (% of delivered) | Clicked (% of delivered) |
|---|---|---|---|
| order_shipped | 97 | 82 | 31 |
| payment_due | 96 | 74 | 12 |
| festive_offer_v1 | 88 | 51 | 6 |
| festive_offer_v2 | 89 | 63 | 11 |
What is template analytics?
Template analytics are the performance numbers Meta keeps for each individual message template: how many messages using it were sent, delivered and read, how many times each button was clicked, and what the deliveries cost. They are reported per template and per day, which makes them the right tool for comparing two wordings of the same message or spotting a template that has quietly stopped performing.
There are two ways in. WhatsApp Manager shows template performance in its interface. Programmatically, GET /{WABA_ID}/template_analytics returns daily data points for up to 10 template_ids per request, with template_ids, start, end and granularity=DAILY required and metric_types (SENT, DELIVERED, READ, CLICKED, COST) optional. An optional product_type chooses between CLOUD_API, the default, and MARKETING_MESSAGES_LITE_API for sends made through the Marketing Messages API for WhatsApp (formerly MM Lite). Each data point carries sent, delivered and read counts, a clicked array broken down by button, and a cost array with the amount spent, cost per delivered message and cost per URL-button click. Cost is not returned for WABAs that share a Solution Partner's credit line, a common set-up when a provider bills you for Meta's charges.
Analytics must be confirmed once on the WhatsApp Business Account (POST /{WABA_ID}?is_enabled_for_insights=true) and cannot be switched off afterwards; confirming also turns on link tracking for website-button clicks, which can be disabled per template. Data goes back up to 90 days, read and click data is only available for 7 days after a message is sent, and button clicks are reported only for marketing and utility templates. WABAs owned by or shared with business accounts in the EU or Japan, or using those countries' phone numbers, are not supported.
Template analytics answer how one message performs wherever it is used. Campaign analytics answer a different question — how a send, a journey or a channel performed — and usually combine several templates with site and conversion data.
Key takeaways
- Template analytics are Meta's per-template, per-day counts of messages sent, delivered and read, button clicks and cost.
GET /{WABA_ID}/template_analyticstakes up to 10template_ids,start,endandgranularity=DAILY, with up to 90 days of look-back.- Read and click data is only available for 7 days after a send, so store the numbers daily in your own database.
- Analytics must be confirmed once on the WABA with
is_enabled_for_insights=true, and the choice cannot be undone. - Button clicks are reported for marketing and utility templates only; authentication completion must be measured in your app.
The figures
Template analytics: key facts and limits
- Endpoint
- GET /{WABA_ID}/template_analytics
- Granularity
- DAILY only
- Templates per request
- Up to 10 template_ids
- Metrics
- SENT, DELIVERED, READ, CLICKED, COST
- Look-back
- Up to 90 days
- Read and click data
- 7 days after a send, then reset to zero
- Button clicks
- Marketing and utility templates only
- Enable
- is_enabled_for_insights=true (cannot be undone)
How does template analytics work?
Confirm insights on the WABA
Enable template analytics once in WhatsApp Manager or with
is_enabled_for_insights=true. The choice is permanent, and link tracking for URL buttons starts with it.Collect the template IDs
List templates on the WABA's
message_templatesedge and note the numeric IDs. Analytics are requested by ID, up to 10 per call.Request daily data
Call
template_analyticswithstartandend(Unix time or YYYY-MM-DD),granularity=DAILYand the metrics you need. Setuse_waba_timezone=trueto bucket days in the account's timezone rather than UTC.Turn counts into rates
The API returns counts. Divide delivered by sent, read by delivered and clicks by delivered so templates with very different volumes can be compared fairly.
Act on the gaps
A low delivered share points to per-user marketing limits, invalid numbers or quality problems; low reads to timing or the opening line; low clicks to the button label or the offer itself.
In code
Template analytics in code
curl -G "https://graph.facebook.com/v26.0/{WABA_ID}/template_analytics" \-H "Authorization: Bearer {ACCESS_TOKEN}" \-d "start=2026-10-06" \-d "end=2026-10-13" \-d "granularity=DAILY" \-d "use_waba_timezone=true" \--data-urlencode 'metric_types=["SENT","DELIVERED","READ","CLICKED"]' \--data-urlencode 'template_ids=[1689556908129832,1689556908129835]'
Dates must be YYYY-MM-DD strings when use_waba_timezone is true.
Why does template analytics matter?
A template is a reusable asset, and like any asset it can underperform for months without anyone noticing. Per-template numbers show which wording gets read, which button gets tapped and what each delivery actually costs, so marketers can retire weak versions and developers can catch a delivery drop that signals a quality or limit problem. Because Meta charges per delivered message, cost per delivery and cost per click turn copywriting choices into budget decisions.
Costly mistakes
Common mistakes with template analytics
Comparing raw counts
A template sent 50,000 times will out-click one sent 5,000 times even if it is worse. Compare read and click rates per delivered message, not totals.
Reading the numbers too late
Read and click data is only available for 7 days after a message is sent, after which Meta resets those counts to zero, so a report pulled weeks later shows reads and clicks that never seem to have happened. Pull analytics daily and store them in your own database.
Treating template numbers as campaign results
A template used by several journeys mixes them all in one series. Attribute individual sends with campaign analytics and UTM-tagged links, and use template analytics to judge the message itself.
Missing Marketing Messages API sends
Without
product_type, the endpoint returns Cloud API sends only, so a campaign routed through the Marketing Messages API for WhatsApp looks empty. Queryproduct_type=MARKETING_MESSAGES_LITE_APIas well and add the two series together.Ignoring the timezone
Daily buckets default to UTC, which splits an Indian evening campaign across two days. Use
use_waba_timezone=truewhen comparing days.
Best practices for template analytics
- Version templates (
_v1,_v2) instead of editing them, so each version keeps a clean history. - Tag URL-button links with UTM parameters so template clicks can be joined to site conversions.
- Track cost per delivered message next to read rate to see what each read really costs.
- Alert when a template's delivered share drops sharply from its own weekly average.
Example: Choosing between two festive creatives
A Surat saree retailer runs two versions of its festive offer: festive_offer_v1 with an image header and festive_offer_v2 with a video. After a week both deliver to a similar share of recipients, but v2's read share is clearly higher and its “Shop the collection” button gets nearly twice the clicks per delivered message. The team moves the remaining Diwali sends to v2 and compares cost per URL-button click before planning the next campaign. Because reads and clicks are only available for 7 days after each send, a nightly job copies the numbers into the retailer's own reporting database.
Template Analytics FAQs
- Is template analytics available for every WhatsApp Business Account?
- No. It must first be confirmed on the WABA, and WABAs owned by or shared with business accounts in the EU or Japan, or using phone numbers from those countries, are not supported.
- How is template analytics different from campaign analytics?
- Template analytics report one template's sends, deliveries, reads, clicks and cost by day, wherever it was used. Campaign analytics follow a particular send or journey and usually combine several templates with site and conversion data.
- Does the cost in template analytics match my invoice?
- Not necessarily. It is Meta's view of that template's charges, and it is not returned at all for WABAs that share a Solution Partner's credit line. Your invoice can also include your provider's pricing and taxes, so reconcile billing against invoices rather than template analytics.
- Can I turn template analytics off again?
- No. Once confirmed on a WABA it cannot be disabled, although link tracking for website-button clicks can be switched off per template.
Put Template Analytics to work
InfiQ is an official Meta Business Partner. Start a 7-day free trial — no card needed — and see this running on your own number.