Pāriet uz dokumentāciju
SDK

Atvēršanas un klikšķu izsekošana

`emails.getTracking` un viss `tracking` resurss.

Viens ziņojums

tracking.ts
const report = await openemail.emails.getTracking('msg_…') console.log(report.openCount, 'opens from', report.recipients.length, 'recipients')for (const link of report.links) console.log(link.url, link.clickCount)

Ziņojums, kas nekad netika izsekots, izmet OpenEmailApiError, kuram isNotFound ir true, nevis atgriež tukšu atskaiti. „Mēs neko nereģistrējām“ un „neviens to neatvēra“ ir dažādas atbildes, un tām nedrīkst būt viena un tā pati atbilde.

Visā pastkastē

tracking-report.ts
await openemail.tracking.list({ opened: false, days: 7, limit: 100 })await openemail.tracking.getStats({ days: 30, offsetMinutes: -new Date().getTimezoneOffset() })await openemail.tracking.get('msg_…')await openemail.tracking.listOpens('msg_…', { includeMachine: true })await openemail.tracking.listClicks('msg_…')

list, listOpens un listClicks atrisinās par vienkāršiem masīviem. get, listOpens un listClicks pieņem vai nu msg_… sūtījuma id, vai izsekošanas ieraksta paša tmsg_….

Atsevišķs resurss, nevis lauki uz emails, un iemesls ir aptvērums: emails uzskaita sūtījumu ierakstus, kas pastāv tikai pastam, ko apstrādāja šis API. Rakstīšanas logs, MCP rīki un asistents sūta bez tāda, tāpēc atskaite, kas būvēta uz emails, būtu atskaite par jūsu API datplūsmu, nevis par pastkasti.

Kā godīgi lasīt skaitļus

PārisKo tas nozīmē
`opens` / `clicks`Kas tika PIEMĒROTS: vai ziņojums aizgāja ar pikseli vai pārrakstītām saitēm.
`opened` / `clicked`Kas notika.
`openCount`Ieskaitītie trāpījumi. Skeneri un privātuma starpnieki izslēgti.
`openCountRaw`Katrs trāpījums. Ja to uzdod par iesaisti, atvēršanas rādītājs pārsniedz 100 %.
`attributable`Vai lasīšanu vispār var piesaistīt konkrētam nosauktam adresātam.

Rādītāji no tracking.getStats ir par IZSEKOTAJIEM ziņojumiem, nekad par visu nosūtīto. Citādi pastkaste, kas izseko vienu ziņojumu no desmit, izskatītos pēc sabrukuma.

Parametri: tracking.list

openedboolean
`true` atlasa ziņojumus ar vismaz vienu ieskaitītu atvēršanu, `false` atlasa izsekotos ziņojumus bez nevienas. Neviens no tiem nav noklusējums, un `false` nekad nenozīmē neizsekotu pastu, kas šajā sarakstā vispār neparādās.
clickedboolean
Tas pats filtrs ieskaitītiem klikšķiem, piemērots neatkarīgi no `opened`. Var dot abus, un ziņojumiem jāatbilst abiem.
daysnumber
Cik dienas atpakaļ no šī brīža skatīties, no 1 līdz 365, pēc noklusējuma 30; ārpus šī diapazona tas ir 422. Logs tiek mērīts pēc izsekošanas ieraksta izveides laika, un tiek uzskaitīti tikai tie ieraksti, kuru sūtījums patiešām aizgāja.
limitnumber
Ne vairāk kā tik ziņojumu, no 1 līdz 200, pēc noklusējuma 50, jaunākie vispirms. Kursora nav: šī ir atskaite par laika logu, nevis plūsma, tāpēc to ierobežo `days` un `limit` un to lasa veselu.

Atbilde: TrackingResource

object'tracking'
Vienmēr `'tracking'` atskaitē, kas iegūta patstāvīgi ar `tracking.get`, `tracking.list` vai `emails.getTracking`. Tā pati atskaite, ieligzdota kā `email.tracking` iegūtā ziņojumā, atnāk bez šīs atslēgas, jo tur tā ir daļa no šī objekta, nevis kaut kas atsevišķi iegūts.
idstring
Izsekošanas ieraksta paša id, `tmsg_…`. Tieši pēc tā darbojas izsaukumi `listOpens` un `listClicks` par atsevišķiem trāpījumiem; tiem padots `msg_…` vispirms tiek atrisināts uz šo.
sendIdstring | null
`msg_…` sūtījums, ar kuru šis korelē, un null tur, kur sūtījuma ieraksts netika rakstīts. Rakstīšanas logs, MCP `sendEmail` un asistents sūta bez tāda. Izsekošana aptver pastkasti, nevis tikai API datplūsmu.
threadIdstring | null
Aizpildīts pēc nosūtīšanas, lai lasīšanas saskarne varētu ziņojumu atkal atrast, un null, ja draiveris neko neuzrādīja. Nav kritisks: ieraksts, kurā tas ir null, joprojām tiek ieskaitīts.
messageIdstring | null
RFC 5322 Message-ID, nevis mūsu id. Arī tas tiek aizpildīts pēc nosūtīšanas un ir null, ja transports neko neatgrieza, ar ko to aizpildīt.
subjectstring | null
Temats tāds, kāds tas bija nosūtīšanas brīdī. Null ziņojumam, kas ierakstīts bez tā.
fromstring
Nosūtītāja adrese, iekopēta ierakstā, nevis pievienota no sūtījuma. Pārskatus lasa ilgi pēc notikuma, un adrese, kas kopš tā laika izlabota vai noņemta, citādi pārrakstītu vēsturi.
sourceEmailSource | (string & {})
Kura virsma to nosūtīja: `composer`, `api`, `mcp`, `ai` vai `queue`. Tips ir atvērts, tāpēc virsma, ko šis SDK vēl nenosauc, nav savietojamību lauzošas izmaiņas.
sentAtstring | null
Kad ziņojums aizgāja, kā ISO-8601 moments. Null ierakstam, kura sūtīšana nekad netika pabeigta. `tracking.list` tādus izslēdz, `get` — nē.
opensboolean
Vai šim ziņojumam tika PIEMĒROTS pikselis. Tas ir tas, kas tika izdarīts, nevis tas, ko tagad saka konta iestatījums.
clicksboolean
Vai šī ziņojuma saites tika pārrakstītas. False, kad pamattekstā nebija saišu, jo tad nekas netika mainīts un ierakstu ar pretēju apgalvojumu nevarētu saskaņot ar baitiem.
openedboolean
Vai visās kopijās tika reģistrēta kaut viena ieskaitīta atvēršana. Lasiet to kopā ar `opens`: datu trūkums tāpēc, ka nekas netika vākts, ir cits fakts nekā tas, ka neviens ziņojumu nav lasījis.
clickedboolean
Vai tika reģistrēts kaut viens ieskaitīts klikšķis. Spēcīgāks pierādījums nekā atvēršana, jo attēli tiek bloķēti daudz biežāk, nekā saites paliek neatvērtas.
attributableboolean
Vai katru lasīšanu šeit var piesaistīt konkrētam nosauktam adresātam. False tajā mirklī, kad kāda nepiesaistīta kopija uzrāda ieskaitītu aktivitāti, un tas ir vairāku adresātu gadījums, kad viens pamatteksts aiziet visam sarakstam ar vienu marķieri, tāpēc pārbaudiet to, pirms rakstāt „Bobs to nav atvēris“.
openCountnumber
Atvēršanas, kuras, domājams, izraisījis cilvēks, saskaitītas pa kopijām. Mašīnu trāpījumi tiek izslēgti, un atkārtojumi trīsdesmit sekunžu laikā sakļaujas vienā, tāpēc šis ir tas skaitlis, ko rādīt lasītājam.
clickCountnumber
Ieskaitītie klikšķi, saskaitīti pa kopijām. Dublikāti tiek atmesti katrai saitei atsevišķi, nevis katram ziņojumam, tāpēc divas dažādas saites, kurām sekots ar dažu sekunžu starpību, ir divi klikšķi.
openCountRawnumber
Katra pikseļa ielāde, ieskaitot skenerus un privātuma starpniekus. `openCountRaw - openCount` ir tas, cik klasifikators atlika malā, un vienīgais pieejamais pierādījums, ka filtrēšana vispār notika.
clickCountRawnumber
Katrs pārrakstītas saites apmeklējums, ieskaitot mašīnu trāpījumus un atkārtojumus.
firstOpenAtstring | null
Agrākā ieskaitītā atvēršana visās kopijās, un null, kamēr tādas nav. Mašīnu trāpījumi to nekad nepārbīda.
lastOpenAtstring | null
Jaunākā ieskaitītā atvēršana visās kopijās, null, kamēr tādas nav.
firstClickAtstring | null
Agrākais ieskaitītais klikšķis visās kopijās, null, kamēr tāda nav.
lastClickAtstring | null
Jaunākais ieskaitītais klikšķis visās kopijās, null, kamēr tāda nav.
recipientsTrackingRecipientResource[]
Viens ieraksts katrai izsekotajai kopijai: katram adresātam tur, kur transports ļauj baitiem atšķirties katram cilvēkam, un viens kopīgs ieraksts tur, kur neļauj. Kopīgais ieraksts tiek nomests, ja vien uz tā patiešām kaut kas nav nonācis, tāpēc neaiztikta „kāds“ rinda nekad nestāv līdzās īstiem vārdiem.
recipients[].emailstring | null
Kam šī kopija tika sūtīta, mazajiem burtiem un tā, kā tas bija sūtīšanas brīdī. Null tieši tad, kad `attributed` ir false.
recipients[].kind'to' | 'cc' | 'bcc' | null
Kurā galvenē adrese parādījās, lai atskaite lasītos tāpat kā ziņojums. Null kopīgajā kopijā, kas nepieder nevienai atsevišķai adresei.
recipients[].attributedboolean
Vai šī rinda nosauc cilvēku. Lasiet to pirms `email`: false ir kopīgā kopija, kas tiek uzskaitīta, tiklīdz uz tās nonāk kaut viens trāpījums, un vārda piešķiršana šim trāpījumam, pat ziņojumā ar vienu adresātu, izdomātu tieši to vienu faktu, ko mehānisms nevar sniegt.
recipients[].openCountnumber
Ieskaitītās atvēršanas tikai šai kopijai, ar tiem pašiem izņēmumiem, kas ziņojuma kopsummai: mašīnu trāpījumi nomesti un atkārtojumi trīsdesmit sekunžu laikā sakļauti vienā.
recipients[].clickCountnumber
Ieskaitītie klikšķi tikai šai kopijai, dublikātus atmetot katrai saitei atsevišķi, nevis katrai kopijai.
recipients[].firstOpenAtstring | null
Agrākā ieskaitītā atvēršana šajā kopijā, null, kamēr tādas nav.
recipients[].lastOpenAtstring | null
Jaunākā ieskaitītā atvēršana šajā kopijā, null, kamēr tādas nav.
recipients[].firstClickAtstring | null
Agrākais ieskaitītais klikšķis uz šīs kopijas; null, kamēr tāda nav.
recipients[].lastClickAtstring | null
Jaunākais ieskaitītais klikšķis uz šīs kopijas; null, kamēr tāda nav.
linksTrackingLinkResource[]
Katra saite, kas šajā ziņojumā tika pārrakstīta, sakārtota pēc tās vietas pamattekstā. Tukšs, ja tādu nebija: ziņojums, kas nosūtīts ar izslēgtu `clicks`, vai tāds, kura tekstā vispār nebija nevienas saites.
links[].idstring
Pašas saites id, `lnk_…`. Tā ir vērtība, ko nosauc klikšķa ieraksta `linkId`, tāpēc `listClicks` atgriezto apmeklējumu var saskaņot ar šo ierakstu.
links[].urlstring
Kurp saite patiesībā ved — tāda, kāda tā bija ziņojumā pirms pārrakstīšanas. Novirzītājs no id atrisina atpakaļ šo adresi un nosūta apmeklētāju tālāk.
links[].labelstring | null
Saites teksts tāds, kāds tas parādījās ziņojumā, vai null, ja saitei tāda nebija, piemēram, attēlam vai kailai URL. Tas ir tāpēc, lai pārskatā varētu rakstīt “cenu lapas saite”, nevis citēt URL ar trim izsekošanas parametriem, un tas nekad neaizstāj `url`.
links[].clickCountnumber
Ieskaitītie apmeklējumi šai saitei, summēti pa kopijām. Katrai saitei ir tas pats trīsdesmit sekunžu logs, kas ziņojuma `clickCount`.
links[].clickCountRawnumber
Katrs šīs saites apmeklējums, ieskaitot mašīnu pieprasījumus un atkārtojumus.