edit: URL shorteners might make this difficult, but still possible if you can keep the widget responsive enough while following links server-side.
edit: URL shorteners might make this difficult, but still possible if you can keep the widget responsive enough while following links server-side.
To eliminate the deceptive part, just message all yours users first before changing it. Be candid about money issues (ala reddit). Start with just Amazon maybe.
"Hey guys, this thing has blown up and we can't afford the hosting cost. To keep it free, we've got to try something. So starting in 1 month, we'll automagically insert our Amazon affiliate code into any tweets than contain an Amazon link. All other links won't be touched. We really didn't want to do this but it is either this or shut down the widget (or start charging for it). Thanks for bearing with us as we run this!"
You might lose 10% of freeloaders but this is a good thing.
If someone clicks on a link that your widget provided (a link that would not have otherwise been there) it seems like you are actually providing value to the company.
This is a twitter <a href="http://bit.ly/blah"
onclick="document.location='http://yourservers.com/follow?url=' +
escape(this.href);return false">link</a>.
That way you can look up the Twitter links only if they are clicked and any slow down happens after the click, not before display.As a bonus you get to see what links everyone is clicking as well.
I think the best way might to go to the premium model, the only thing is that by restricting the number of features might just get people to run to another service.