All insightsENVAXON / SFMC

Gmail Deal Annotations Not Showing? Fixes, Tracking and Revenue

Gmail deal annotations may be missing because the delivered HTML lost its markup, the selected feature lacks required fields, the offer dates are wrong or the test inbox is unsuitable. Gmail also decides which eligible annotations to display. Start with the received message, then verify the route from the annotation to the website and the order.

01 / SFMC

What is the difference between a Gmail deal badge and a Deal Card?

A Gmail deal badge highlights an offer beside the subject line. A Deal Card can include a button leading to the promotion. An image preview uses a different object. Checking which feature you actually built is the first useful diagnostic step.

For a Deal Card, provide a description and a destination: offerPageUrl for the specific offer, or merchantHomepageUrl as the fallback. Google controls whether the card appears. Adding a URL establishes eligibility; it does not force the interface to show it.

Gmail annotation features and the fields to check
FeatureMarkupWhat to verify
Deal badgeDiscountOfferAt least a description, discountCode or availabilityEnds for the badge.
Deal CardDiscountOfferdescription plus offerPageUrl, or merchantHomepageUrl when no offer page exists.
Image preview / product carouselPromotionCardimage and url. The image preview is separate from the deal badge.
Reference:Google's feature requirementsImage preview field reference
02 / SFMC

Why are Gmail annotations not showing even when the preview works?

A preview validates one version of your markup. An inbox test also depends on what the platform sent and Gmail's display decisions. Keep a record of the email asset, test recipient, send time and intended feature so you can compare the same evidence.

In Gmail on desktop, open a separate diagnostic test, select the three-dot menu beside Reply and choose Show original. Inspect the decoded HTML for DiscountOffer, PromotionCard and the expected values. Download and decode the HTML MIME part if transfer encoding makes it difficult to read. Capture the mobile inbox appearance before opening its own test message.

Match the symptom to the next useful check
SymptomNext check
No expected markup in the received HTMLCompare the saved asset, content block and sending version.
Badge appears, but the Deal Card is missingCheck the card description and destination URL, then test display separately.
The offer appeared once, then disappearedCheck the offer window and send a new unread test.
Badge appears, but the image is missingReview the separate PromotionCard object, image URL and crop.
Website visits increase, but SFMC clicks do notTest the annotation link and reporting route independently of the email CTA.
Reference:Google's construction and testing diagnostics
03 / SFMC

The discount badge shows, but there is no Deal Card

Check for a real offer destination before rebuilding the entire block. The following Microdata example supplies a description and an offer URL. Replace the example domain, offer and campaign tags with your actual values. The sample has no promo code because a code is optional; include one only when the customer can use it.

Validate the result in Google's preview tool, then check the received HTML. This minimal example is a starting point for testing. Add the genuine campaign start and end timestamps when preparing the production offer.

Minimal Deal Card markup to validate
<div itemscope itemtype="http://schema.org/DiscountOffer">
  <meta itemprop="description" content="20% off" />
  <meta itemprop="offerPageUrl"
    content="https://www.example.com/offers?utm_source=newsletter&amp;utm_medium=email&amp;utm_campaign=autumn_offer&amp;utm_content=gmail_deal_card" />
</div>
Reference:Deal Card setupGoogle annotation preview tool
04 / SFMC

How to implement Gmail annotations in Salesforce Marketing Cloud

Salesforce documents an AMPscript approach for generating the JSON-LD script tags in Content Builder. For shared annotation content, its guidance places the snippet below the template's head tag. For content that changes between emails, it uses a content area in that location.

In Content Builder, choose Create > Content Blocks > Code Snippet. Use the platform's documented pattern for JSON-LD, or Google's Microdata alternative if your construction process removes script tags. Inspect what arrived before switching formats. Neither format bypasses Gmail's display selection.

For a data-driven build, resolve the offer values before outputting their markup. Initialise them for each email and validate blank descriptions, invalid destinations and expired offers. If you use Microdata, HTML-escape attribute values; if you generate JSON-LD, serialize values safely so quotes in translated copy cannot break the JSON.

  • Compare the source template, saved email asset and actual test send.
  • Keep each DiscountOffer object's properties together rather than splitting that object between head and body.
  • Use the same approved offer data for the annotation, email body and landing page.
  • Keep a reusable test case for each language and market where the offer differs.
Reference:Salesforce's Content Builder implementationGoogle's Microdata alternative
05 / SFMC

Why does a Gmail annotation disappear between tests?

For bundle testing, Google recommends a current Gmail mobile app, a consumer Gmail account and a fresh unread message in Promotions. Reusing an opened message across devices can change the bundle experience. Check active offer dates; an expired or future offer can be excluded from a bundle.

Use ISO 8601 timestamps with the correct timezone offset. For example, 2026-10-14T23:59:59+02:00 describes a specific local deadline. Derive the offset from the campaign's timezone and date, including daylight saving changes, rather than reusing it indefinitely.

If images are the missing feature, review their HTTPS URLs and crop. Google's reference lists PNG and JPEG with supported ratios of 4:5, 1:1 and 1.91:1; its single-image setup uses 1.91:1. A successful deal badge does not establish that the separate image preview is valid.

Once the delivered object and test conditions pass, record a missing display as an observation. Google's quality filters and frequency limits mean recipients can see different results. Changing valid code after every inconsistent test can introduce new defects.

Reference:Gmail bundle testing conditionsOffer dates and image practicesSupported image properties
06 / SFMC

Can Gmail deal annotations increase clicks and revenue?

The commercial hypothesis is straightforward: a relevant offer becomes easier to notice, understand and reach. That can increase qualified visits and purchases. It is a mechanism to test, not a promised percentage lift.

For example, a retail customer checking a sale email can see the discount earlier. Where a Deal Card shopping button is displayed, the offer page is available with fewer steps. A link to the relevant collection also gives the customer a more useful next action than a generic homepage.

The offer still has to be attractive, the landing page has to match it and the checkout has to work. More clicks cannot compensate for an unavailable product, unexpected exclusions or shipping costs that make the promotion unattractive. Keep the proposition consistent throughout that journey.

Potential benefits and the outcomes worth measuring
Potential benefitBusiness check
An offer is easier to notice before openingDoes the campaign generate more qualified website visits?
The customer reaches the offer in fewer stepsDoes order conversion improve across the assigned audience?
Offer details are clearer earlierDo fewer visits end without finding the advertised deal?
More customers purchaseDoes contribution after discounts and costs increase?
Reference:Google's Deal Card and inbox interaction guide
07 / SFMC

How to track Gmail annotation clicks in SFMC and GA4

Tracking becomes harder when you assume every interaction follows the email's normal CTA. Google documents annotation links that can lead to a website without opening the message. Open rate therefore does not describe the full journey. A destination in structured data also needs its own verification; an ordinary CTA's tracking setup does not prove the annotation link was tracked.

Salesforce's RedirectTo documentation describes its use within an HTML anchor's href attribute. Do not assume inserting that function into offerPageUrl establishes click tracking. Send a test, follow the actual Deal Card button when displayed and check whether an SFMC click event and a website visit were recorded.

Keep your existing utm_source, utm_medium and utm_campaign convention. Give the annotation a separate utm_content, such as gmail_deal_card, and the email-body CTA a different value. Google Analytics uses these parameters to identify campaign traffic. In GA4, inspect the campaign acquisition data and relevant manual ad content dimension, then reconcile it with purchase events and transaction records.

UTMs identify measured arrivals, not every click or annotation impression. Redirects, analytics consent, browser restrictions and customers changing devices can leave gaps. Preserve the parameters through the landing-page redirect and check the purchase event separately. Use campaign identifiers in the URL rather than personal contact data.

  • Confirm the final URL contains the intended campaign parameters.
  • Verify an actual website session and purchase event in your analytics setup.
  • Check SFMC's click report separately; document any route it does not capture.
  • Avoid adding GA4 sessions to SFMC clicks as if they were one comparable metric.
Example annotation destination URL
https://www.example.com/offers?utm_source=newsletter&utm_medium=email&utm_campaign=autumn_offer&utm_content=gmail_deal_card
Reference:Salesforce RedirectTo and anchor tracking requirementsGoogle Analytics campaign URL guidance
08 / SFMC

Measure incremental revenue with an annotation control group

Randomly assign eligible consumer Gmail contacts to two exclusive groups. Both receive the same offer, subject, sender, visible email, landing page and send schedule. Add annotations to one group and omit them from the other. Keep each contact in a single group and avoid overlapping sends that make the comparison ambiguous.

Define the purchase window and the main outcome before sending. Prefer orders and net revenue per assigned recipient, using the customer-to-order connection available in your business. Include purchases that occur without a recorded annotation click. Tagged traffic helps diagnose the route; the randomised comparison estimates the effect of adding markup.

Review deliverability by group as a separate check. Revenue per delivered recipient can be a useful secondary metric when delivery rates are comparable, but analysing all assigned recipients preserves the randomised groups. Net revenue should use the same definition in both groups, after discounts and refunds and excluding tax collected on behalf of the authorities.

You are testing the outcome of the annotation-enabled campaign. You are not proving that every recipient saw a badge or estimating an impression-based click-through rate. Gmail's selective display may dilute the result. Plan an adequate sample, report uncertainty and avoid declaring success from a few additional orders.

  • Purchase conversion rate = purchasing recipients ÷ assigned recipients.
  • Net revenue per recipient = defined net order revenue ÷ assigned recipients.
  • Incremental net revenue at treatment size = (treatment revenue per recipient − control revenue per recipient) × treatment recipients.
  • Incremental contribution = the contribution difference after variable costs, less additional rollout and campaign costs.
How to separate attributed revenue from incremental lift
09 / SFMC

Revenue example: extra clicks can still leave a campaign unprofitable

This is an illustrative calculation, not a client result or a Gmail performance benchmark. Each group contains 10,000 assigned recipients. Net revenue is €60 per order after discounts and refunds, excluding tax. Contribution is €12 per order after product cost, payment fees, variable fulfilment and other promotion costs.

The annotated group produces four more orders in the example: €240 additional net revenue and €48 additional contribution. If the additional implementation, agency time and campaign or platform cost allocated to this rollout totals €80, its net incremental contribution is −€32.

The calculation shows why revenue and profit need separate reporting. A reusable implementation may become cheaper across later sends, but scale should depend on a reliable measured result. This small illustrative order difference could also be chance; it establishes the arithmetic, not statistical evidence.

Illustrative results over the same purchase window
MetricWithout annotationsWith annotations
Assigned recipients10,00010,000
Measured website visits400480
Orders2024
Net order revenue€1,200€1,440
Net revenue per assigned recipient€0.120€0.144
Order contribution before rollout cost€240€288
10 / SFMC

A reusable Gmail annotations checklist for campaign teams

Put the offer in your campaign data rather than manually maintaining several versions. In an SFMC content data extension, keep approved offer description, actual promo code, start and end timestamps, offer URL and campaign identifier together. Map those fields to your existing content architecture.

Create a release check that follows the customer journey: received HTML, inbox display observation, offer-page arrival, correct offer and recorded order. Keep a separate result for each step. This gives the campaign owner a clear failure location and a repeatable acceptance check for the next launch.

  • The annotation describes the same eligible offer as the email and landing page.
  • The intended markup and correctly escaped values are present in the received HTML.
  • Offer dates and timezone match the market and campaign window.
  • Fresh Gmail tests record the app, account, message status and observed display.
  • The annotation destination preserves the campaign tracking parameters.
  • The reporting plan separates website traffic, email click events and incremental orders.
Trace SFMC audience and Journey Builder entry issues

Gmail deal annotations FAQ

Can I display only a 20% off description in Gmail?

Yes. Google's deal-badge setup allows a description as the minimum supplied offer field. That can make a badge eligible, but it does not force Gmail to display it. A Deal Card needs a description and an offer or merchant destination as well.

Does adding offerPageUrl guarantee a Deal Card?

No. A valid description and offerPageUrl meet the documented card content requirements. Display still depends on Gmail's selection, including quality filters and frequency limits.

Why does the badge appear but the promotional image does not?

They are separate annotation features. Review the PromotionCard image and url, supported image format, HTTPS access and crop. A displayed DiscountOffer badge does not confirm that the image feature is valid or will be displayed.

Do Gmail annotations require an AMP email?

No. Promotions annotations use structured data in the email HTML through JSON-LD or Microdata. They are separate from AMP for Email.

Do Gmail annotations move an email into the Promotions tab?

No. Google says annotations do not affect its tab classifier. Configure and test the markup independently from inbox placement.

Does SFMC automatically track a Deal Card click?

Do not assume it does. An annotation destination is a different route from a normal email-body anchor. Verify an actual card click against SFMC reporting and tagged website traffic before defining your campaign metrics.

Can annotations increase revenue without increasing email opens?

That is possible for annotation links that take customers directly to the website. It is a hypothesis to measure, not a guaranteed outcome. Compare orders, net revenue and contribution across randomly assigned groups with and without annotations.

Get a free SFMC Gmail annotation audit

Send us the campaign problem through the contact form. We can review a received test email, offer fields, Gmail test conditions and the tracking route, then identify the next useful fix.

Request a free audit
THE POINT

Start with the message that arrived. Validate the intended annotation, verify its tracking route and test the change against a control. Scale the work when additional orders create value after costs.

Platform references

Technical guidance checked on 12 October 2026.

KEEP READINGSalesforce org cleanup: start with the problems your team feels.