You may need to use python, or hardcode something into the SDK if you want it to be faster.
The most direct way would be to trigger the damage/spell/whatever, when a unit moves into the tile with the trap unit present. That would be in def onUnitMove(self, argsList). Every time any unit moves you would have to cycle through every unit on the tile it is entering (well, you can stop once you find the trap, using "break"), cycle through all the units on a tile, and then trigger the effect if the unit is a trap. Of course, this could probably slow the game down considerably, at least if there are a lot of large stacks.
You could also give the traps a promotion that has a pyPerTurn effect. You could basically copy the Crown of Brilliance promotion/effect/spell for this. I'm not quite sure when in the turn this would trigger though, so it might, for instance, only trigger if the victim is on the same tile as (or close enough to) the trap at the start of stop of the turn, and have no effect if it passes through the trap without stopping there. So as to not give away the traps, you might need to check to make sure there is a valid target before the effect triggers the spell.
The effect could easily be caused by the same promotion that makes the unit invisible, thus one revelation-based spell to easily make traps visible and disable them at the same time by removing said promotion.