Since the official announcement is rather vague about this, current community research seems to suggest this handling:
1.) “Speed”
Take the time between the server sending your battle setup and the server receiving the battle result. If this is less than 50 seconds, your gnome rewards get scaled down to [seconds taken] / 50.
Example: If your battle (including loading times) takes 10 seconds, you’ll receive 10 / 50 = 20% of the full gnome reward.
2.) “Easy”
Take your team score and the opponent team score. If yours is higher, your gnome rewards get scaled down to [their team score] / [your team score].Example: If your team score is 15000, your opponent team score is 3750, you’ll receive 3750 / 15000 = 25% of the full gnome reward.
Whenever “Speed” and “Easy” both result in a reward reduction, the more severe one applies. In the examples above it would be a 20% payout instead of a 25% payout. Reward quantities can’t go below 1, so as long as a reward type shows up you’ll always get at least one of it (e.g. vault keys and diamonds).
Jewel Gnome always drops the full 20 jewels, which is likely a bug that will eventually get corrected. Daemon Gnome drops a far lower ratio of chaos shards, the reduction missing for jewels probably ended up there in some way by accident. If GaP ends during a battle, full gnome rewards are given.
The upper gnome reward limit for a GaP is 15 x 60 / 50 = 18 full gnome team rewards. You get the closest to this hard cap by playing each battle for exactly 50 seconds, against a team that is at least as strong as you. If you go faster you’ll receive less, because you’ll be spending more time between battles.
Configuration is server side, meaning subject to change at any time.
TL;DR: If you are in it for the vault keys, play as fast as you can, during vault events only. If you just want the gnome rewards, play against tough teams and drag out your battles to as close to 50 seconds as possible, finish quickly if there are only gnomes you don’t want the rewards from.
Edit: Various refinements. Credit to @Cairnso, @Shadowfeld and @Dust_Angel for providing data.