Banner history logger campaign mixin


Banner history logger campaign mixin

Provides a campaign-associated mixin for storing a history of banner display
or banner hide events for a given campaign. The log is stored on the client
using CentralNotice's KV store (which uses LocalStorage). For a random sample
of page views, a summary of recent log entries is sent to the server using

EventLogging calls are made with as small a payload as possible, and payload
size is checked before the EL call to ensure we're within the limit imposed
by curent WMF infrastructure.

Also provides an API for manually sending recent entries in the banner history
log. A temporary, non-persistent unique log ID is generated in this case, only
for the purpose of flagging which histories led to donations.

Requires the CentralNoticeBannerHistory EventLogging schema be deployed.

Bug: T90918
Change-Id: I698cc00d08f3cc644516ad837bc09ada8df0cf5b