Gjurmimi i hapjeve dhe i klikimeve
`emails.get_tracking` dhe i gjithë burimi `tracking`.
Një mesazh i vetëm
from openemail import openemail report = openemail.emails.get_tracking('msg_…') print(report['openCount'], 'opens from', len(report['recipients']), 'recipients')for link in report['links']: print(link['url'], link['clickCount'])Një mesazh që nuk u gjurmua kurrë ngre një OpenEmailApiError is_not_found i të cilit është true, jo një raport bosh. "Nuk regjistruam asgjë" dhe "askush nuk e hapi" janë përgjigje të ndryshme dhe nuk duhet të ndajnë të njëjtën përgjigje.
Në të gjithë kutinë postare
import time from openemail import openemail openemail.tracking.list(opened=False, days=7, limit=100)openemail.tracking.get_stats(days=30, offset_minutes=time.localtime().tm_gmtoff // 60)openemail.tracking.get('msg_…')openemail.tracking.list_opens('msg_…', include_machine=True)openemail.tracking.list_clicks('msg_…')list, list_opens dhe list_clicks kthejnë një faqe, {'items': [...], 'hasMore': ..., 'nextCursor': ...}, dhe list_all, iterate, list_all_opens, iterate_opens, list_all_clicks dhe iterate_clicks përshkojnë të gjitha faqet për ju. get, list_opens dhe list_clicks pranojnë qoftë id-në e dërgimit msg_…, qoftë tmsg_… të vetë regjistrit të gjurmimit.
Një burim më vete dhe jo fusha mbi emails, dhe arsyeja është mbulimi: emails liston regjistrat e dërgimit, të cilët ekzistojnë vetëm për mail-in që e trajtoi ky API. Kompozuesi, mjetet MCP dhe asistenti dërgojnë të gjithë pa një të tillë, pra një raport i ndërtuar mbi emails do të ishte një raport mbi trafikun tuaj të API-së dhe jo mbi kutinë postare.
Si t'i lexoni numrat me ndershmëri
| Çifti | Çfarë do të thotë |
|---|---|
| opens / clicks | Çfarë U ZBATUA: nëse mesazhi u nis me një piksel ose me lidhje të rishkruara. |
| opened / clicked | Çfarë ndodhi. |
| openCount | Goditje 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%. |
| attributable | Në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.
Parametrat: tracking.list
openedbool- `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ë.
clickedbool- 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.
daysint- Sa ditë prapa nga tani të shihen, nga 1 deri në 365 dhe me parazgjedhje 30; jashtë atij intervali është një 422. Dritarja matet mbi kohën kur u krijua regjistri i gjurmimit, dhe listohen vetëm regjistrat, dërgimi i të cilëve ka dalë vërtet.
limitint- Raporte për faqe, nga 1 deri në 200 dhe me parazgjedhje 50, më të rejat të parat. Kthejeni `nextCursor` e faqes si `cursor`, me të njëjtat filtra, për faqen tjetër, ose lërini `list_all` dhe `iterate` ta përshkojnë gjithë dritaren.
Përgjigjja: TrackingResource
objectLiteral['tracking']- Gjithmonë `'tracking'` te një raport i marrë më vete, përmes `tracking.get`, `tracking.list` ose `emails.get_tracking`. I njëjti raport i ndërthurur si `email['tracking']` te një mesazh i marrë mbërrin pa këtë çelës, sepse atje ai është pjesë e atij objekti dhe jo diçka që u mor.
idstr- Id-ja e vetë regjistrit të gjurmimit, `tmsg_…`. Është ajo mbi të cilën janë të çelësuara thirrjet për çdo goditje, `list_opens` dhe `list_clicks`; një `msg_…` i dhënë atyre zgjidhet fillimisht në këtë.
sendIdstr | None- Dërgimi `msg_…` me të cilin korrelon ky, dhe null aty ku 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ë.
threadIdstr | None- Mbushet pas transmetimit që një ndërfaqe leximi ta gjejë sërish mesazhin, dhe null aty ku driver-i nuk raportoi asnjë. Jo thelbësor: një regjistër me të null numërohet gjithsesi.
messageIdstr | None- Message-ID sipas RFC 5322, jo id-ja jonë. Edhe ky mbushet pas transmetimit, dhe është null aty ku transporti nuk ktheu asgjë për ta mbushur.
subjectstr | None- Subjekti ashtu siç ishte në kohën e dërgimit. Null te një mesazh i regjistruar pa të.
fromstr- 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ë.
sourceEmailSource | str- Cila sipërfaqe e dërgoi: `composer`, `api`, `mcp`, `ai`, `oauth` ose `form`. E tipizuar hapur, kështu që një sipërfaqe që kjo SDK nuk e emërton ende nuk është një ndryshim prishës.
sentAtstr | None- Kur u nis mesazhi, si një çast ISO-8601. Null te një regjistër dërgimi i të cilit nuk përfundoi kurrë. `tracking.list` i përjashton ata, `get` jo.
opensbool- 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.
clicksbool- Nëse lidhjet e këtij mesazhi u rishkruan. False kur trupi nuk mbante asnjë lidhje, sepse atëherë nuk u ndryshua asgjë dhe një regjistër që pretendon të kundërtën nuk do të pajtohej me bajtet.
openedbool- 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.
clickedbool- 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.
attributablebool- Nëse çdo lexim këtu mund t'i atribuohet një marrësi të emërtuar. False në çastin kur një kopje e paatribuuar 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ë".
openCountint- 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.
clickCountint- 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.
openCountRawint- Çdo marrje e pikselit, përfshirë skanuesit dhe proxy-t e privatësisë. `openCountRaw - openCount` është sa prej tyre i la mënjanë klasifikuesi, dhe e vetmja provë e disponueshme se filtrimi ndodhi fare.
clickCountRawint- Çdo vizitë te një lidhje e rishkruar, përfshirë goditjet e makinave dhe përsëritjet.
firstOpenAtstr | None- Hapja e numëruar më e hershme mbi kopjet, dhe null përderisa nuk ka asnjë. Goditjet e makinave nuk e lëvizin kurrë.
lastOpenAtstr | None- Hapja e numëruar më e fundit mbi kopjet, null përderisa nuk ka asnjë.
firstClickAtstr | None- Klikimi i numëruar më i hershëm mbi kopjet, null përderisa nuk ka asnjë.
lastClickAtstr | None- Klikimi i numëruar më i fundit mbi kopjet, null përderisa nuk ka asnjë.
recipientslist[TrackingRecipientResource]- 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ë.
recipients[].emailstr | None- Te kush shkoi kjo kopje, me shkronja të vogla dhe ashtu siç ishte në kohën e dërgimit. Null pikërisht kur `attributed` është false.
recipients[].kindRecipientKind | None- Te cili header u shfaq adresa, që raporti të lexohet ashtu siç lexohej mesazhi. Null te kopja e përbashkët, e cila nuk i përket asnjë adrese.
recipients[].attributedbool- 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ë.
recipients[].openCountint- 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ë.
recipients[].clickCountint- Klikime të numëruara vetëm mbi këtë kopje, të deduplikuara për lidhje dhe jo për kopje.
recipients[].firstOpenAtstr | None- Hapja e numëruar më e hershme mbi këtë kopje, null përderisa nuk ka asnjë.
recipients[].lastOpenAtstr | None- Hapja e numëruar më e fundit mbi këtë kopje, null përderisa nuk ka asnjë.
recipients[].firstClickAtstr | None- Klikimi i numëruar më i hershëm mbi këtë kopje, null përderisa nuk ka asnjë.
recipients[].lastClickAtstr | None- Klikimi i numëruar më i fundit mbi këtë kopje, null përderisa nuk ka asnjë.
linkslist[TrackingLinkResource]- Ç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.
links[].idstr- Id-ja e vetë lidhjes, `lnk_…`. Është vlera që emërton `linkId` i një rreshti klikimi, kështu që një goditje nga `list_clicks` mund të përputhet mbrapsht me hyrjen këtu.
links[].urlstr- Ku shkon vërtet lidhja, ashtu siç ishte te mesazhi para rishkrimit. Ridrejtuesi e zgjidh një id mbrapsht në këtë dhe e çon vizitorin më tej.
links[].labelstr | None- Teksti i lidhjes ashtu siç u shfaq te mesazhi, ose null aty ku lidhja nuk kishte, 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 mbi të, dhe nuk e zëvendëson kurrë `url`.
links[].clickCountint- 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.
links[].clickCountRawint- Çdo vizitë te kjo lidhje, përfshirë goditjet e makinave dhe përsëritjet.
Referencë
emails.get_tracking()Referenca e plotëtracking.list()Referenca e plotëtracking.list_all()Referenca e plotëtracking.iterate()Referenca e plotëtracking.get_stats()Referenca e plotëtracking.get()Referenca e plotëtracking.list_opens()Referenca e plotëtracking.list_all_opens()Referenca e plotëtracking.iterate_opens()Referenca e plotëtracking.list_clicks()Referenca e plotëtracking.list_all_clicks()Referenca e plotëtracking.iterate_clicks()Referenca e plotë