There are few cases when a Direct Call may fail to fire in your scenario:
DC is called earlier the Launch library load
The visitor closed the browser window or clicked-through to another page earlier a DC was called
DC call returned an error (e.g. incorrect syntax, or DC string, or js error inside the custom code, ...)
Review your implementation to validate what type of issues may be valid for you. Then update the code logic accordingly so that DC will be called once the _satellite object is available and earlier the page unload.