The first rule of putting a device on a vehicle bus is that it reads and never writes. The bus carries messages that operate the vehicle, and a telematics unit that injects traffic — even by accident, even with good intent — is a safety problem. So the tap is read-only by design, and on a direct CAN connection it has to be electrically and logically incapable of disturbing the traffic it listens to.
The second problem is that the signals are not standard. OBD-II defines a set of diagnostic parameters, but the rich data — the signals a fleet actually wants — lives in manufacturer-specific messages that differ by make, model and year. Decoding them means maintaining a library of definitions (DBC files and proprietary parameter maps) and matching the right one to the vehicle, which is a maintenance commitment, not a one-time effort. Getting it wrong produces plausible-looking numbers that are quietly incorrect.
The third is that most of the value is created on the device, not in the cloud. The bus produces far more data than any fleet wants to pay to transmit, so the device applies the rules locally — harsh braking, excess idling, a geofence breach — and uplinks the resulting events with a trusted timestamp, not the raw frames. That also makes the device an attack surface: something with access to the vehicle bus and a network radio has to be isolated and hardened, because it sits at the boundary between the fleet’s network and the vehicle’s.