Hello,
My first question would be why you feel using Kaltura's own player does not answer your needs? It is highly customizable, is FOSS under AGPLv3 and naturally integrates best with Kaltura's backend.
As per your questions:
The player sends an HTTP request to the server to register a playback event, like so:
GET //api_v3/index.php?service=stats&action=collect&format=3&ignoreNull=1&clientTag=php5%3A15-07-02&apiVersion=3.2.0&event%3AobjectType=KalturaStatsEvent&event%3AclientVer=3.0%3Av3.7&event%3AeventType=1&event%3AeventTimestamp=1435951273.8994&event%3AsessionId=SANITY-TEST-5596e0a9db938&event%3ApartnerId=101&event%3AentryId=0_9zhhwwlg&event%3AuiconfId=23448179&event%3AcurrentPoint=0&event%3Aduration=5&event%3Aseek=&event%3Areferrer=http%3A%2F%2Fjessex%3A80%2Fsanity%2Ftests&event%3AisFirstInSession=&ks=djJ8MTAxfM4Kyg-XsNJrjgkg9D8bhTa4Z6LQd6f3ug6XeklxYPWQ98e8zwT2y1ODG3dY0dS0YHc85HOEXlUd-41B2FnUecH_TeIAJnqPd40G2--pgQae&kalsig=553c890034d29e5622750a87b74677b9
The analytics process, DWH, then parses the access log looking for these entries and continues to populate the DWH tables accordingly. This means that you will need to make a similar call yourself if you choose to not use the Kaltura player.
There the stats API service, which you can use calling the collect() action.
Since we have a client lib for JS, you can use it for that.