Tracking
What became of the mail this mailbox sent.
Tracking tools
| Tool | What it does |
|---|---|
| getEmailTracking | Whether one message was opened, by whom, how often, and which links were followed. Takes a thread id, an RFC Message-ID or a tracking id. |
| getFileDownloads | The files sent as download links on a thread: filename, size, how many times each was downloaded, when the last download was, and whether the link is still live. Takes a thread id. |
| listTrackedEmails | Messages sent with tracking on, newest first, a page at a time, filtered by whether they were opened or clicked. |
| getEngagementStats | Open and click rates over a window, with the top links, the clients, and how many fetches were filtered out. |
These see only mail sent with tracking on, which is off unless it was turned on for the address the mail was sent from, for the catch-all that caught that address, or for that one message. getEmailTracking says "nothing tracked for that message" rather than reporting zero opens. The phrases "nobody opened it" and "we were not recording" are different answers, and a tool that gives the first for the second lies about the recipient.
getFileDownloads counts people, not scanners or link previewers, and it never names who downloaded a file, because a download link is one URL for every recipient of the message. Files attached inside a message are not listed, since nothing is recorded when those are opened, so an empty answer means "no download links on this thread" and not "nobody opened the attachment".
Every rate is over TRACKED messages, never over all sent mail. A mailbox that tracks one message in ten has an open rate for those ten; dividing by everything it ever sent produces a number that falls each time somebody sends an untracked reply, which is not a fact about how their mail is read.
The counts leave out scanners and privacy proxies, and each report states how many were excluded. Opens seen through Gmail’s image proxy do count, because a person displayed the message, but the proxy caches, so a count through Gmail is a floor rather than a total.
Reference
getEmailTracking
Whether a message this mailbox sent has been opened, by whom, how many times, and which links were followed. Give it a thread id, an RFC Message-ID, or a tracking id. Returns nothing for a message that was sent without tracking on.
Inputs
threadIdstringmessageIdstringtrackingIdstring
Also available in
- API
GET /emails/{id}/trackingGET /tracking/{id}/clicksGET /tracking/{id}/opens- TypeScript
nextmail.emails.getTracking()nextmail.tracking.listClicks()nextmail.tracking.listAllClicks()nextmail.tracking.iterateClicks()nextmail.tracking.listOpens()nextmail.tracking.listAllOpens()nextmail.tracking.iterateOpens()- Python
emails.get_tracking()tracking.list_clicks()tracking.list_all_clicks()tracking.iterate_clicks()tracking.list_opens()tracking.list_all_opens()tracking.iterate_opens()- Ruby
emails.get_trackingtracking.list_clickstracking.list_all_clickstracking.iterate_clickstracking.list_openstracking.list_all_openstracking.iterate_opens- PHP
emails->getTrackingtracking->listClickstracking->listAllClickstracking->iterateClickstracking->listOpenstracking->listAllOpenstracking->iterateOpens- Go
Emails.GetTrackingTracking.ListClicksTracking.ListAllClicksTracking.IterateClicksTracking.ListOpensTracking.ListAllOpensTracking.IterateOpens- Java
emails().getTrackingtracking().listClickstracking().listAllClickstracking().iterateClickstracking().listOpenstracking().listAllOpenstracking().iterateOpens- C#
Emails.GetTrackingAsyncTracking.ListClicksAsyncTracking.ListAllClicksAsyncTracking.IterateClicksAsyncTracking.ListOpensAsyncTracking.ListAllOpensAsyncTracking.IterateOpensAsync
getFileDownloads
Which files this mailbox sent as download links on a thread, and whether anyone has fetched them: filename, size, download count, when the last download was, and whether the link is still live or revoked. Give it a thread id. Downloads count people, not scanners or link previewers, and a download cannot be tied to one recipient because every recipient gets the same link. Files sent inside the message rather than as links are not listed, because nothing is recorded when those are opened.
Inputs
threadIdstringRequired
Also available in
- API
GET /files/{id}/links- TypeScript
nextmail.files.listLinks()nextmail.files.listAllLinks()nextmail.files.iterateLinks()- Python
files.list_links()files.list_all_links()files.iterate_links()- Ruby
files.list_linksfiles.list_all_linksfiles.iterate_links- PHP
files->listLinksfiles->listAllLinksfiles->iterateLinks- Go
Files.ListLinksFiles.ListAllLinksFiles.IterateLinks- Java
files().listLinksfiles().listAllLinksfiles().iterateLinks- C#
Files.ListLinksAsyncFiles.ListAllLinksAsyncFiles.IterateLinksAsync
listTrackedEmails
Messages this mailbox sent with tracking on, newest first, one page at a time. Filter by whether they were opened or clicked to answer questions like "what have I sent that nobody has read". address keeps only what one address sent. When more follow, the last line gives a cursor: call again with it, and the same filters, for the next page, until no cursor is given.
Inputs
daysinteger- At least 1At most 365Default
30 openedbooleanclickedbooleanaddressstring- 3 to 320 characters
limitinteger- At least 1At most 200Default
20 cursorstring
Also available in
- API
GET /trackingGET /tracking/{id}- TypeScript
nextmail.tracking.list()nextmail.tracking.listAll()nextmail.tracking.iterate()nextmail.tracking.get()- Python
tracking.list()tracking.list_all()tracking.iterate()tracking.get()- Ruby
tracking.listtracking.list_alltracking.iteratetracking.get- PHP
tracking->listtracking->listAlltracking->iteratetracking->get- Go
Tracking.ListTracking.ListAllTracking.IterateTracking.Get- Java
tracking().listtracking().listAlltracking().iteratetracking().get- C#
Tracking.ListAsyncTracking.ListAllAsyncTracking.IterateAsyncTracking.GetAsync
getEngagementStats
Open and click rates for mail this mailbox sent, over a window. Rates are over TRACKED messages only, never over all sent mail. address counts only what one address sent.
Inputs
daysnumber- Default
30 addressstring- 3 to 320 characters
Google Workspace