That’s a great approach, but… If you’re working with a client you don’t know, you usually will not have any way to verify the client’s real results. This means that even if the client gets $100,000 worth of results, that client could tell you that the results were actually $10,000, so you get paid $1000 instead of $10,000 (assuming you agreed on 10% of results).
Of course, not all clients are dishonest. In fact, most are fairly honest. However, they may not have in place a good way of measuring the exact value of a specific product you made for them. For example, perhaps you created the animation, but they gave you the script. How do you allocate the results between the two?
Worse, sometimes the client is looking for materials to help build their brand image, so there’s no CTA to buy anything, and there goes any possibility of a simple fraction-of-ROI calculation.
In short, your idea is great when it works, but life is rarely as simple as that.