Repository navigation
Release 3.0.50
Implemented enhancements
-
Take an audience's counts off a response the caller already asked for (#88) —
observeList()mirrorsobserveRoot(): passive, on thelists/{id}response the extension's statistics job already reads every twelve hours. Measured on a running install: the same eight calls with the change as without, and nineteen more bytes downloaded.getLists()gainsinclude_total_contacts, appended last so every existing positional caller is unaffected. It is the billable figure, and the one the payload cannot yield by arithmetic —member_count + unsubscribe_countomits non-subscribed contacts, which on an ecommerce account is most of the audience. Absent is left null rather than derived.total_contactsincludes cleaned, measured on an audience with 631 of them. A consumer deriving the non-subscribed residual must subtract cleaned explicitly, and even then the residual is an upper bound rather than an exact figure: pending and archived land in it, and archived are never billed.Only
lists/{id}is observed, never a sub-resource — a member object carries its ownstats, so a member fetch reached this and wrote nothing by luck rather than by design. -
Notice a send that did not arrive, and say which windows were sampled (#87) — the reporting path discarded
curl_exec()'s return and never read the status, so a refused connection, a timeout and a rejected envelope were all indistinguishable from delivery. A send that did not arrive now increments a counter carried on the next envelope assfail.It is a running total for the emitting process and nothing resets it: take the maximum per process, never a sum. A send cannot report its own failure, so a process whose every send fails still reports nothing; what becomes visible is the partial case.
The envelope also carries the sampler's two constants on the lane the sampler governs, as
srandsw, so a consumer predicting an installation's reporting cadence reads them instead of hardcoding them.
Note for extension authors
include_total_contacts does nothing until a caller asks for it. Until that lands, this reports the three counts that are not the billable figure and omits the one that is.