Skip to content

Ledger entryNo. 075738

Template Analytics

Also called: Template insights · Template performance metrics · template_analytics endpoint

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.

Which template is earning its keep? (% (illustrative))
CategoryDelivered (% of sent)Read (% of delivered)Clicked (% of delivered)
order_shipped978231
payment_due967412
festive_offer_v188516
festive_offer_v2896311
Illustrative rates for four templates, worked out from template analytics counts. Tap a template to compare its delivered, read and click shares side by side.

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_analytics takes up to 10 template_ids, start, end and granularity=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?

  1. 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.

  2. Collect the template IDs

    List templates on the WABA's message_templates edge and note the numeric IDs. Analytics are requested by ID, up to 10 per call.

  3. Request daily data

    Call template_analytics with start and end (Unix time or YYYY-MM-DD), granularity=DAILY and the metrics you need. Set use_waba_timezone=true to bucket days in the account's timezone rather than UTC.

  4. 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.

  5. 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. Query product_type=MARKETING_MESSAGES_LITE_API as 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=true when 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.