What is “Feedback-ID”?

Still have a question, spotted an error, or have a better explanation or a source we should cite?

Feedback-ID is a header you add to outbound mail so Gmail can break down your spam complaints by campaign, customer, or mail type inside Postmaster Tools. Without it, Gmail reports complaints at the domain level. You see "your domain had a 0.4% complaint rate today" and have no idea which send caused it. With it, you see "the Tuesday flash sale to lapsed subscribers had 0.9%, everything else was 0.1%." That is the difference between guessing and fixing.

The format

Feedback-ID takes up to four colon-separated values:

Feedback-ID: CampaignID:CustomerID:MailType:SenderID

A real example from a marketing send might look like:

Feedback-ID: flash-sale-2026-06:cust-8821:promo:rme-mta-03

Google's bulk sender guidelines describe the field. The four slots are conventionally used for:

  • Campaign or message identifier - which send this was (newsletter-june, welcome-step-2, password-reset).
  • Customer or account identifier - on shared infrastructure, which of your clients sent it.
  • Mail type - transactional, marketing, notification, etc. Keeps complaint rates from one mail stream from poisoning your read of another.
  • Sender or list identifier - which MTA, IP pool, or subscriber list it came from.

The values are opaque to Google. You can put whatever you want in there as long as the string is stable across a send and meaningful to you when you go look at the report. Don't include PII like raw email addresses. Use internal IDs.

Why it matters more than it sounds

Gmail's complaint threshold for sender pain is around 0.3%. Above that you start landing in spam, throttled, or both. Without Feedback-ID you find out at the domain level and have to reverse-engineer which campaign blew up by cross-referencing send times with the dip in Postmaster Tools. With Feedback-ID, the answer is in the chart.

It also matters if you run shared infrastructure. One bad customer on a shared IP can drag every other customer's reputation down. Tagging each customer's mail with a CustomerID in Feedback-ID lets you see exactly who is generating complaints and shut them off before they cook the IP for everyone else. This is one of the practical jobs an ESP does for you automatically.

Who sets it

If you send through SendGrid, Mailgun, Postmark, Amazon SES, Klaviyo, or any other ESP, Feedback-ID is already on your mail. The ESP fills the four slots with its own IDs. You don't need to do anything except go look at Postmaster Tools to read the data back.

If you run your own MTA, you add the header yourself at injection time. Most MTAs (PowerMTA, Halon, Postfix with a milter) let you template the header per send. Decide your four slots once, document what each one means, and keep the format consistent. If you change what CampaignID means halfway through, the historical Postmaster Tools data becomes useless.

What to actually do

  1. Check one of your raw email headers (View original in Gmail). If you see a Feedback-ID: line, your ESP is handling it.
  2. Open Postmaster Tools, verify the sending domain, and look at the Spam Rate report broken down by Feedback-ID identifier.
  3. If a single CampaignID or CustomerID is responsible for most of the complaints, that is your problem. Pause it, segment it tighter, or remove the cohort that is complaining.

Feedback-ID is free signal. The only mistake is not reading it.

Contributors

Who worked on this answer

Every name links to their profile. Every company links to their site. Real people, real accountability.

Ask an AI · tailored to your setup

Build a Feedback-ID strategy for your campaigns.

I want to use Feedback-ID with Gmail's Feedback Loop to track spam complaints by campaign. Can you help me design a Feedback-ID structure that makes sense for my business? I have campaign types, customer segments, and sender addresses, how should I organize this header so I can actually use the data?

Edit the yellow boxes, then send to the AI of your choice.