Kalo te dokumentacioni
Ruby

Gjurmimi i hapjeve dhe i klikimeve

`emails.get_tracking` dhe e gjithë hapësira e emrave `tracking`.

Një mesazh i vetëm

tracking.rb
report = client.emails.get_tracking("msg_3f9a1c07d2b84e6a9c5b1f20") puts "#{report[:openCount]} opens from #{report[:recipients].size} recipients"report[:links].each { |link| puts "#{link[:url]} #{link[:clickCount]}" }

Një mesazh që nuk u gjurmua kurrë ngre një OpenEmail::NotFoundError, not_found? i të cilit është true, dhe jo një raport bosh. “Nuk regjistruam asgjë” dhe “askush nuk e hapi” janë përgjigje të ndryshme dhe nuk duhet të jepen me të njëjtën përgjigje. Një mesazh i dërguar me një çelës testimi nuk gjurmohet kurrë, ndaj gjithmonë ngre një të tillë.

Në të gjithë kutinë postare

tracking_report.rb
client.tracking.list(opened: false, days: 7, limit: 100)client.tracking.get_stats(days: 30, offset_minutes: Time.now.utc_offset / 60)client.tracking.get("msg_3f9a1c07d2b84e6a9c5b1f20")client.tracking.list_opens("msg_3f9a1c07d2b84e6a9c5b1f20", include_machine: true)client.tracking.list_clicks("msg_3f9a1c07d2b84e6a9c5b1f20")

list, list_opens dhe list_clicks kthejnë një OpenEmail::Page, ndërsa list_all, iterate, list_all_opens, iterate_opens, list_all_clicks dhe iterate_clicks i përshkojnë të gjitha faqet për ju. get, list_opens dhe list_clicks marrin ose id-në e dërgimit msg_…, ose tmsg_… e vetë regjistrit të gjurmimit.

Një hapësirë emrash më vete dhe jo metoda te emails, dhe arsyeja është mbulimi: emails liston regjistrat e dërgimeve, të cilët ekzistojnë vetëm për postën që trajtoi kjo API. Kompozuesi, mjetet MCP dhe asistenti dërgojnë të gjithë pa një të tillë, ndaj një raport i ndërtuar mbi emails do të ishte një raport për trafikun tuaj të API-së dhe jo për kutinë postare.

Si t'i lexoni numrat me ndershmëri

ÇiftiÇfarë do të thotë
opens dhe clicksÇfarë U ZBATUA: nëse mesazhi u nis me një piksel ose me lidhje të rishkruara.
opened dhe clickedÇfarë ndodhi.
openCountGoditje të numëruara. Skanuesit dhe proxy-t e privatësisë përjashtohen.
openCountRawÇdo goditje. Citimi i kësaj si angazhim është mënyra se si një shkallë hapjeje kalon 100%.
attributableNëse një lexim mund t'i atribuohet fare një marrësi të emërtuar.

Shkallët nga tracking.get_stats janë mbi mesazhet e GJURMUARA, kurrë mbi gjithçka të dërguar. Përndryshe një kuti postare që gjurmon një mesazh nga dhjetë do të dukej sikur është shembur. openRate dhe clickRate janë përqindje të rrumbullakosura në një shifër dhjetore, si 42.5, dhe jo thyesa midis 0 dhe 1.

Parametrat: tracking.list

openedBoolean
`true` zgjedh mesazhet me të paktën një hapje të numëruar, `false` zgjedh mesazhet e gjurmuara pa asnjë. Asnjëri nuk është parazgjedhje, dhe `false` nuk do të thotë kurrë mail i pagjurmuar, i cili nuk shfaqet fare në këtë listë.
clickedBoolean
I njëjti filtër për klikimet e numëruara, i zbatuar në mënyrë të pavarur nga `opened`. Të dy mund të jepen, dhe mesazhet duhet t'i plotësojnë të dy.
daysInteger
Sa ditë pas nga tani të shikohet, nga 1 deri në 365, me 30 si parazgjedhje, dhe jashtë këtij diapazoni jep një 422. Dritarja matet sipas kohës kur u krijua regjistri i gjurmimit, dhe listohen vetëm regjistrat dërgimi i të cilëve u nis vërtet.
minutesInteger
Dritarja në minuta në vend të kësaj, nga 1 deri në 527040, e cila ka përparësi ndaj `days` kur vendosen të dyja. Një dritare më e shkurtër se një ditë kërkon një `grain` më të imët.
grainString
`minute`, `hour` ose `day`, me `day` si parazgjedhje. Vetëm e rrumbullakos poshtë fillimin e dritares, që kjo listë të përputhet me `get_stats` të lexuar me të njëjtin granularitet, dhe nuk ndikon në asgjë në përgjigje.
limitInteger
Raporte për faqe, nga 1 deri në 200, me 50 si parazgjedhje, nga më i riu. Për faqen e radhës, jepeni `next_cursor` të faqes prapa si `cursor:`, me të njëjtët filtra, ose lërini `list_all` dhe `iterate` të përshkojnë gjithë dritaren.
cursorString
`next_cursor` nga faqja e mëparshme, një id `tmsg_`.
api_keyString
Liston me këtë çelës në vend të atij të klientit.

Përgjigjja: raporti i gjurmimit

emails.get_tracking dhe tracking.get kthejnë një raport si Hash me çelësa Symbol, dhe tracking.list kthen një faqe me to.

objectString
Gjithmonë `tracking` te një raport i marrë më vete, përmes `tracking.get`, `tracking.list` ose `emails.get_tracking`. I njëjti raport, i futur si `tracking` te një mesazh nga `emails.get`, vjen pa këtë çelës, sepse atje është pjesë e atij mesazhi dhe jo diçka që u mor.
idString
Id-ja e vetë regjistrit të gjurmimit, `tmsg_…`. Sipas saj identifikohen `list_opens` dhe `list_clicks`, dhe një `msg_…` që u jepet atyre kërkohet fillimisht si e tillë.
sendIdString or nil
Dërgimi `msg_…` me të cilin lidhet ky raport, dhe nil kur nuk u shkrua asnjë regjistër dërgimi. Kompozuesi, `sendEmail` i MCP-së dhe asistenti dërgojnë të gjithë pa një të tillë. Gjurmimi mbulon kutinë postare, jo vetëm trafikun e API-së.
threadIdString or nil
Plotësohet pasi mesazhi niset, që një ndërfaqe leximi ta gjejë sërish mesazhin, dhe është nil kur drajveri nuk raportoi asnjë. Nuk është thelbësor: një regjistër ku kjo është nil numërohet prapëseprapë.
messageIdString or nil
Message-ID sipas RFC 5322, jo id-ja jonë. Plotësohet gjithashtu pasi mesazhi niset, dhe është nil kur transporti nuk ktheu asgjë me të cilën të plotësohej.
subjectString or nil
Subjekti siç ishte në kohën e dërgimit. nil te një mesazh i regjistruar pa subjekt.
fromString
Adresa dërguese, e kopjuar mbi regjistrin në vend që të bashkohet nga dërgimi. Raportet lexohen shumë kohë pas ngjarjes, dhe një adresë e korrigjuar ose e hequr që atëherë do ta rishkruante historinë.
sourceString
Cila sipërfaqe e dërgoi: `composer`, `api`, `mcp`, `ai` ose `queue`. Mund të shfaqet një sipërfaqe që ky gem ende nuk e emërton, ndaj trajtojeni një vlerë të panjohur si informacion dhe jo si gabim.
sentAtString or nil
Kur u nis mesazhi, si çast ISO 8601. nil te një regjistër, dërgimi i të cilit nuk përfundoi kurrë. `tracking.list` i lë jashtë këta regjistra, `get` jo.
opensBoolean
Nëse mbi këtë mesazh U ZBATUA një piksel. Kjo është ajo që u bë, jo ajo që thotë cilësimi i llogarisë tani.
clicksBoolean
Nëse lidhjet e këtij mesazhi u rishkruan. False kur trupi nuk kishte lidhje, sepse atëherë nuk ndryshoi asgjë dhe një regjistër që pretendon të kundërtën nuk mund të pajtohej me bajtet.
openedBoolean
Nëse u regjistrua ndonjë hapje e numëruar mbi kopjet. Lexojeni përballë `opens`: mungesa e të dhënave sepse nuk u mblodh asnjë është një fakt tjetër nga fakti që askush nuk e ka lexuar mesazhin.
clickedBoolean
Nëse u regjistrua ndonjë klikim i numëruar. Provë më e fortë se një hapje, meqë imazhet bllokohen shumë më shpesh se sa lihen pa u ndjekur lidhjet.
attributableBoolean
Nëse çdo lexim këtu mund t'i atribuohet një marrësi të emërtuar. False në çastin kur një kopje e paatribuueshme shfaq veprimtari të numëruar, që është rasti me shumë marrës ku një trup i vetëm shkon te e gjithë lista nën një token të vetëm, pra kontrollojeni para se të shkruani "Bob nuk e ka hapur këtë".
openCountInteger
Hapje që besohet se i shkaktoi një person, të mbledhura mbi kopjet. Goditjet e makinave përjashtohen dhe përsëritjet brenda tridhjetë sekondave bashkohen në një, pra kjo është shifra që duhet vënë para një lexuesi.
clickCountInteger
Klikime të numëruara, të mbledhura mbi kopjet. Të deduplikuara për lidhje dhe jo për mesazh, pra dy lidhje të ndryshme të ndjekura me disa sekonda diferencë janë dy klikime.
openCountRawInteger
Çdo marrje e pikselit, përfshirë skanuesit dhe proxy-t e privatësisë. `openCountRaw` minus `openCount` është sa prej tyre u lanë mënjanë, marrjet nga makinat dhe përsëritjet brenda tridhjetë sekondave së bashku, dhe e vetmja provë e disponueshme se filtrimi ndodhi fare.
clickCountRawInteger
Çdo vizitë te një lidhje e rishkruar, përfshirë goditjet e makinave dhe përsëritjet.
firstOpenAtString or nil
Hapja e numëruar më e hershme mbi kopjet, dhe nil përderisa nuk ka asnjë. Goditjet e makinave nuk e lëvizin kurrë.
lastOpenAtString or nil
Hapja e numëruar më e fundit mbi kopjet, nil përderisa nuk ka asnjë.
firstClickAtString or nil
Klikimi i numëruar më i hershëm mbi kopjet, nil përderisa nuk ka asnjë.
lastClickAtString or nil
Klikimi i numëruar më i fundit mbi kopjet, nil përderisa nuk ka asnjë.
recipientsArray<Hash>
Një hyrje për çdo kopje të gjurmuar: një për marrës aty ku transporti lejon që bajtet të ndryshojnë për çdo person, dhe një hyrje e vetme e përbashkët aty ku nuk e lejon. Hyrja e përbashkët hiqet veç nëse mbi të ka rënë vërtet diçka, kështu që një rresht "dikush" i paprekur nuk rri kurrë krah emrave të vërtetë.
linksArray<Hash>
Çdo lidhje që u rishkrua në këtë mesazh, e renditur sipas vendit ku ndodhej në trup. Bosh aty ku nuk pati asnjë: një mesazh i dërguar me `clicks` të fikur, ose një trupi i të cilit nuk mbante fare lidhje.

Çdo element në recipients

emailString or nil
Te kush shkoi kjo kopje, me shkronja të vogla dhe ashtu siç ishte në kohën e dërgimit. nil pikërisht kur `attributed` është false.
kindString or nil
`to`, `cc` ose `bcc`: në cilin header u shfaq adresa, që një raport të lexohet ashtu si mesazhi. nil te kopja e përbashkët, e cila nuk i përket asnjë adrese të vetme.
attributedBoolean
Nëse ky rresht emërton një person. Lexojeni para `email`: false është kopja e përbashkët, e listuar sapo bie mbi të ndonjë goditje, dhe vënia e një emri mbi atë goditje, qoftë edhe te një mesazh me një marrës të vetëm, do të shpikte të vetmin fakt që mekanizmi nuk mund ta japë.
openCountInteger
Hapje të numëruara vetëm mbi këtë kopje, nën të njëjtat përjashtime si totali i mesazhit: goditjet e makinave hiqen, dhe përsëritjet brenda tridhjetë sekondave bashkohen në një.
clickCountInteger
Klikime të numëruara vetëm mbi këtë kopje, të deduplikuara për lidhje dhe jo për kopje.
firstOpenAtString or nil
Hapja e numëruar më e hershme te kjo kopje, nil përderisa nuk ka asnjë.
lastOpenAtString or nil
Hapja e numëruar më e fundit te kjo kopje, nil përderisa nuk ka asnjë.
firstClickAtString or nil
Klikimi i numëruar më i hershëm te kjo kopje, nil përderisa nuk ka asnjë.
lastClickAtString or nil
Klikimi i numëruar më i fundit te kjo kopje, nil përderisa nuk ka asnjë.

Çdo element në links

idString
Id-ja e vetë lidhjes, `lnk_…`. Është vlera që emërton `linkId` i një rreshti klikimi, ndaj një goditje nga `list_clicks` mund të lidhet me elementin përkatës këtu.
urlString
Ku të çon vërtet lidhja, ashtu siç ishte në mesazh para rishkrimit. Ridrejtuesi e gjen këtë sipas një id-je dhe e dërgon vizitorin më tej.
labelString or nil
Teksti i lidhjes ashtu siç u shfaq në mesazh, ose nil kur lidhja nuk kishte tekst, si te një imazh ose një URL e zhveshur. Është aty që një raport të mund të thotë “lidhja e çmimeve” në vend që të citojë një URL me tre parametra gjurmimi, dhe nuk e zëvendëson kurrë `url`.
clickCountInteger
Vizita të numëruara te kjo lidhje, të mbledhura mbi kopjet. E njëjta dritare tridhjetësekondëshe për lidhje si te `clickCount` i mesazhit.
clickCountRawInteger
Çdo vizitë te kjo lidhje, përfshirë goditjet e makinave dhe përsëritjet.