Skip to content

Instantly share code, notes, and snippets.

View nicjansma's full-sized avatar

Nic Jansma nicjansma

View GitHub Profile
@nicjansma
nicjansma / boomerang-duplicate-custom-timers-to-beacon.js
Last active April 20, 2022 13:20
Boomerang plugin that duplicates any mPulse Custom Timers that are logged in the beacon's t_other parameter into distinct beacon parameters
/**
* The `DuplicateTimersToBeacon` Boomerang plugin duplicates any mPulse Custom Timers
* that are logged in the beacon's `t_other` parameter into distinct beacon parameters.
*
* e.g:
*
* t_other=boomerang|17,boomr_fb|2516,boomr_ld|2351,boomr_lat|165,custom5|2112,custom0|27
*
* Will add two more beacon parameters:
*
@nicjansma
nicjansma / boomerang-waitforjsvar-plugin.js
Last active April 20, 2022 13:20
Boomerang plugin that waits for the specified JavaScript variable to exist on the page before a beacon is sent.
/**
* The `WaitForJsVar` Boomerang plugin waits for the specified JavaScript variable
* to exist on the page before a beacon is sent.
*
* It does not affect the Page Load time (`t_done`) -- it just delays a beacon
* until the variable exists. This allows the beacon to contain additional
* ResourceTiming data and other metrics/timers that might happen after page load.
*
* NOTE: Any plugin like this that delays a beacon from being sent after onload
* will have an effect on total number of beacons captured (due to the visitor
@nicjansma
nicjansma / boomerang-waitformark-plugin.js
Last active April 20, 2022 13:21
Boomerang plugin that waits for the specified UserTiming Mark (or Measure) to exist on the page before a beacon is sent.
/**
* The `WaitForMark` Boomerang plugin waits for the specified UserTiming Mark
* (or Measure) to exist on the page before a beacon is sent.
*
* It does not affect the Page Load time (`t_done`) -- it just delays a beacon
* until the Mark exists. This allows the beacon to contain additional
* ResourceTiming data and other metrics/timers that might happen after page load.
*
* NOTE: Any plugin like this that delays a beacon from being sent after onload
* will have an effect on total number of beacons captured (due to the visitor
@nicjansma
nicjansma / boomerang-cwv-plugin.js
Last active April 22, 2022 17:00
Boomerang CWV plugin that sends an additional Exit beacon before unload with FID (if it didn't happen by page load) and the SUM of CLS
/**
* The Boomerang CWV plugin assists in sending Core Web Vitals metrics First Input Delay (FID) and
* Cumulative Layout Shift (CLS) at the end of the page session. It does this by sending
* an additional "Page Exit" beacon prior to unload.
*
* The main changes in behavior over the EventTiming plugin (which sends FID) and Continuity
* plugin (which sends CLS) are:
*
* * If FID was _not_ on the Page Load beacon, this plugin sends FID on the Page Exit beacon.
* If FID was on the Page Load beacon, it is _not_ repeated on the Page Exit beacon.
@nicjansma
nicjansma / boomerang-disableunload-plugin.js
Created May 25, 2022 15:02
Boomerang DisableUnloadBeacon plugin
/**
* The Boomerang DisableUnloadBeacon plugin disables sending of the Unload beacon.
*
* The Unload beacon can be used to understand Session Duration (seconds on the page), but may not be needed in all cases.
*/
(function() {
window.BOOMR = window.BOOMR || {};
window.BOOMR.plugins = window.BOOMR.plugins || {};
window.BOOMR.plugins.DisableUnloadBeacon = {
@nicjansma
nicjansma / MountVHD.cmd
Created January 5, 2012 02:28
MountVHD and UnMountVHD: Allows you to mount .VHDs in Windows 7 from the command-line. http://nicj.net/2012/01/04/mounting-vhds-in-windows-7-from-a-command-line-script
@echo off
setlocal enabledelayedexpansion
if {%1}=={} (
echo Usage: %~nx0 [vhd] [letter]
exit /b 1
)
set vhdPath=%~dpnx1
set driveLetter=%2
@nicjansma
nicjansma / boomerang-wait-after-onload-plugin.js
Last active April 21, 2024 13:21
The WaitAfterOnload Boomerang plugin waits for the specified number of seconds after * onload before a beacon is sent.
/**
* The `WaitAfterOnload` Boomerang plugin waits for the specified number of seconds after
* onload before a beacon is sent.
*
* It does not affect the Page Load time (`t_done`) -- it just delays a beacon
* for the specified number of seconds. This allows the beacon to contain additional
* ResourceTiming data and other metrics/timers that might happen after page load.
*
* NOTE: Any plugin like this that delays a beacon from being sent after onload
* will have an effect on total number of beacons captured (due to the visitor