What prevents a user from

Hi,

I'm working on an implementation using TurboActivate on Linux and have a question. In our project, we want to give users a trial period where they can decide if they like the product, and then afterward when they buy it they will get an actual license.

Initially we were going to use the useTrial function, but after realizing that this would not provide us with any details on how many users are trying the software, we decided to switch to issuing trial customers an actual license with an expiry date as a custom field.

However, an interesting problem comes up - is there any way to prevent users from abusing this? Once the license period has expired, would a customer simply be able to get another license key with a new expiry date, activate it on their device and then keep doing that over and over? Since its easy for customers to get a new email address, there really isn't any way to prevent that on the customer service side, so is there any kind of functionality in TurboActivate that can prevent this?

There are a couple of ways to do this. The first way is to use our "unverified trial" functions (UseTrial, TrialDaysRemaining, ExtendTrial) in tandem with product keys with custom license fields. This way you can track users and limit the number of "trial keys" a user can get. All you have to do is see when TrialDaysRemaining() is 0.

The other option, to user purely "trial keys" (i.e. keys with a custom license field), but you limit how many a user can get. For instance, you can limit it to 1 key per email address. Of course this option brings up the problem of free emails (GMail, HotMail, etc.) and how easy it is to generate multiple email accounts in short order.

Option 1 is probably the easiest to implement. Option 2 is more difficult to implement (the "user verification" bit, in particular), but is less susceptible to "trial resetting" on the user's PC.

Does that make sense?