我如何在软件的免费试用版中实现“自毁”功能?


52

对于免费试用与免费增值模型(即具有受限和/或精简功能的软件的终身免费版本)的争论正在不断发展,以允许潜在的客户和用户测试其产品的运行情况。根据我的研究,我可以得出结论,免费试用是继续这样做的一种方式,既有利于使用软件的个人的用户体验,又有利于卖方的销售和最大化使用两方面。免费试用软件的诸多因素可以极大地提高用户使用率,例如免费试用的时间。

我对“免费增值”的研究再次出现的一个关键词是“令人沮丧”。许多人选择卸载软件,而不必使用某些功能无法使用的软件。同时,这些用户从来没有机会使用“付费”功能。他们不知道,并且被销售软件的自己的供应商隐藏,他们不知道也不知道Pro功能会带来什么好处。无需首先使用它们,用户将不会知道他们有“需要”某种东西的感觉。这使我进入了免费试用模型的下一个要点。

免费试用用户的一些意见是“如果没有Pro功能,我将无法想象使用此软件”。这可以追溯到“用户直到他们第一次了解拥有的感觉才知道他们需要什么”的观点。那些已经有14天使用“完整”版本功能的用户说,他们无法想象没有或没有使用那里提供的功能。因此,当十四天结束时,与从未体验过全部功能的人相比,他们更有可能花钱。免费试用的时间也是在用户身上留下持久印象的重要因素。在Visual Website Optimizer进行的一项实验中,他们注意到对于14天免费试用与30天免费试用,尽管注册和安装的次数相同,但14天试用的使用率增加了102%。

要提到的另一个非常重要的一点是,“提供产品的有用且功能齐全的免费版本”非常重要。完全免费的功能免费试用可有效地获得媒体报道,而对新软件和/或软件供应商的宣传至关重要。

另一个相关方面是用户提供反馈的重要性。在功能齐全的限时免费试用中,考虑用户提供反馈的能力。

对于我们的软件而言,另一个重要的功能是需要遥测数据,即有关用户如何使用我们的软件的定量和综合数据。一些使用情况统计信息可能会落在法律的灰色地带,因为法律根据美国和全球的地理位置而有所不同。解决此法律问题的一种方法是拥有加入功能,以收集匿名使用情况统计信息。选择加入功能将意味着为用户提供一个选项,以关闭统计信息收集,同时,用户必须非常清楚匿名使用信息收集的功能。重要的是要使用户清楚要收集哪些数据,“我们”将如何处理数据,并使其易于随时关闭,包括允许他们改变主意以打开或关闭数据。对于更详细的统计信息(例如跟踪用户的个人活动),可能会导致法律问题。Eclipse IDE会记录详细的使用情况统计信息,但是需要用户的完全同意才能进行记录。我们可能需要与法律团队一起准备同意书。

Eclipse使用信息收集收集以下信息:1.由系统启动的插件。2.通过键盘快捷键访问的命令以及通过菜单或工具栏调用的操作。3.当编辑器的“视图”被赋予焦点时。4.系统信息,例如所使用的软件版本,所使用的操作系统。5.内部错误的描述。

杀死开关

我们软件的终止开关可以通过管理来记录初始数据,用盐加密,并且当它是无效日期(即用户试图更改它)时,它将禁用该软件。另一种选择是在安装时进行Internet身份验证,将该日期记录到中央Web数据库中,并在每次打开应用程序时检查日期。

禁用软件后,我们可以删除重要的DLL。无法考虑必须付费才能生成报告的选项。


我有兴趣为现有软件实施免费试用版。我计划在最后14天进行审判。在第14天,我的软件会提示用户为付费版本付费,或者结果是无法使用它。免费试用版已完全解锁,这意味着所有付费功能都已存在。

但是,我的困境是实现最终解决方案的“最佳”方法。我是否删除重要的DLL?安装或使用时是否有用户认证系统?用盐加密使用的初始时间和日期,如果这是一个无效的日期(又称他们尝试更改其初始日期),请禁用软件?

我有兴趣了解禁用软件的一些有效措施。


9
分享您的研究成果对所有人都有帮助。告诉我们您尝试过的内容以及为什么它不能满足您的需求。这表明您已花时间尝试自我帮助,这使我们免于重复显而易见的答案,并且最重要的是,它可以帮助您获得更具体和相关的答案。另请参阅“ 如何提问
2013年

2
您未能定义两点:-您想保护谁?-什么定义了“ 100%固定”?我还是建议您放弃最后一项要求。覆盖自己的可执行文件,使数据库充满垃圾?-他们只是从备份中复制并准备再次使用。
Jan Doggen

@gnat没问题,我将分享免费增值与免费试用研究。
theGreenCabbage 2013年

@gnat我已经将研究添加到这里。
theGreenCabbage 2013年

13
一件事没有被提及。如果您销售感兴趣的东西向一般公众(尤其是游戏)(并不深奥,专业软件)时,易于采购关键。恕我直言,这就是Steam(游戏软件)之类的平台如此成功的主要原因之一。您应该在所有可能的付款系统附近接受该死的。如果我必须注册,索取报价或为没有物理成分的内容填写地址,则我不太可能打扰。您必须确保购买后减少盗版工作。
假名称

Answers:


92

这里有两个问题-一个是编程问题,一个是业务问题。对于第二个问题,向程序员询问业务分析是从本地总线驱动程序获得的最佳建议。也就是说,这可能是好的,也可能是可怕的,但是您并不是要问专家,因此不要给它任何固有的权重。(顺便说一句,我的一位公交车司机经常给我很多好主意。)

但是对于编程问题,不利的一面是,似乎大多数人都不喜欢这个想法。这样做有很多充分的理由,但是在这里它们并不是很重要。可悲的是,在某种程度上,我们也是一群可怕的人,因为凭借我们的地位和知识,我们大多数人都非常擅长于盗版软件,以至于我们认为尝试实施试用措施毫无意义。 !

事实是,您的核心问题是业务分析和销售实验问题,除了了解您的客户和实验之外,没有答案。听起来您已经没有足够的客户群来讨论他们的产品销售渠道以及如何实施试用软件来对其进行改进,所以您必须了解我们现在处于暗中刺伤的位置。在黑暗的房间里工作的第一步就是要知道自己在一个房间里

所以,从某个地方开始。目标不是正确的答案,因为我只能100%保证一件事-您不会从正确的答案开始。但是,我们必须开始。

给客户一个吻

另外,“保持简单,愚蠢”。或者,从编程方法学上,“尝试可能可行的最简单的方法”。然后从那里去。

因此,安装时获取日期。储存它。获取有关安装和使用情况的数据,并沉浸于数据分析可以带来的温暖中。试用期满时,请禁用所需的软件的任何部分-我建议if (trial_expired())。然后调整。

首先,获取良好的数据。您是否希望将来为您的软件提供更新?然后,如果有人尝试击败v1.0,则不必担心。

最简单的方法是卸载软件,然后重新安装。新的试用期(因为您的软件删除了该旧日期)。你关心?如果v1.0即将更新,那么我强烈建议您找到一种方法来确定是否会发生这种情况- 但不要试图阻止它们(尚未)。就像人们需要2颗薄荷糖而不是1颗薄荷糖-只是一个薄荷糖,随它去吧。无论如何,他们可能还不会付钱给您。

怎么样?嗯,在Windows中,这通常是通过将注册表中的随机孤立密钥和奇怪的命名文件插入各种常见的安装目录中来完成的。您的安装程序会明确地假装它们不存在,而只是将它们保留在那里。击败计算机所需要的复杂程度远远超过了卸载。

但是,如果您不尝试阻止某人重新安装,那么您将获得所需的数据。他们没有在这里抢劫您的商店,而是为您提供了学习潜在客户的宝贵机会。使用它来定制您的营销,软件帮助提示,电子邮件活动,“特殊优惠”。我会尝试检测该事件,然后在一天后,向他们发送可以进入该程序的密钥,以将其试用期延长至下个月。您可能会找到一种使他们成为付费客户的方法;没办法提前知道!

这看似微不足道,但让我们面对现实吧-您真的需要更多吗?如果您正在收集数据,那对您来说是值得的。您可能需要花费时间来确保电子邮件质量良好,设计可以更新以指导新用户(实际上是无形的销售推销)的软件内消息传递,重新编写应用程序摘要,消除可能阻止任何理智的人的错误。首先购买软件等

但是关键是您要与所有潜在客户进行诚实,清晰的沟通-如果您愿意,则应向我们付款。仅仅因为(坦率地)坦诚无私,并不意味着这是免费软件-您将对此保持聪明,不会因为客户在前两周未达成协议而赶走客户。

如果您考虑一下,这些人就会走进您的商店来真正查看您的产品。他们正在试驾,但几乎没有花任何费用。没有一家成功的商店会通过赶走尚未准备好购买的客户来实现这一目标!然而,我们都知道,如果您可以永久免费获得某些东西,为什么要付款?因此,请两全其美。

每走一步,您都将使用一个过滤器,如果您的软件是好的,您将在每一步都进行转换。我的简单建议:

1)14天免费试用

2)延长免费试用期,不问任何问题

3)如果他们愿意填写一份简短的表格,到目前为止可以向您传达他们对软件的看法,请再次延长免费试用期。

4)您确定这些仍在实际使用您的软件的人不会考虑购买它吗?寻找一种吸引他们的方法-或至少尝试从中获取更多关于如何使他人购买的信息。也许允许他们通过表格“请求”扩展名,您的销售人员无论如何都会给予该扩展名,然后使用该信息查看他们是否可以应对购买软件时可能遇到的任何异议。

如果该用户正在对其进行评估以供整个部门使用,该怎么办?如果预算会议是下个月的会议,您是否真的希望他们在此之前无法使用该软件?

5)也许您现在就把它们剪掉了……也许您会在一周后以折扣价邀请他们特惠。也许不吧。也许您提供扩展以给出最终扩展。

这些人没有欠您的钱,因此应将他们视为潜在的未来客户-而不是小偷,免费装载机或需要付款或关闭服务的人。每个人都不喜欢收帐员,所以不要表现得像个。

以编程方式,让我们面对现实-这实际上并不难。使用孤立的文件来跟踪日期。如果您必须拥有一个有效的帐户(例如通过iTunes),则此跟踪会更容易。如果不需要它,那么我通常会建议您在首次安装时不需要它-切勿使人们放弃第一版,因为他们不想填写愚蠢的表格。人们讨厌形式!而且他们不了解您的软件,那么,如果他们甚至不知道您的应用程序是否有效,为什么还要“付费”填写表格?

在第2步中,我将获得注册/电子邮件以进行扩展。同样,对其进行编程是微不足道的。

3)30天后,我可能会要求某种“电话回家”行为。如果人们要像他们一样去破解它,那就恭喜您!您一定很受欢迎。但是不用担心,如果这不是视频游戏,人们可能不太在乎,所以只需在下一个版本中更改您的代码,然后使它们回到绘图板上即可。

TL; DR;

#1不要解决您实际上没有的问题(您不是Adobe,但DRM可以简单有效地解决问题)。#2当您需要询问营销人员,业务分析师或业务员时,请勿询问程序员。#3将您的客户看做是可能为您谋生的人,而不是像您欠您的钱的人,尤其是不要当小偷。#4 DRM确实非常简单。只是不要以为您会阻止人们使用您的软件,而这些人几乎肯定永远不会,甚至永远不会给您钱……至少现在不是这样。

  • 几年后,我购买了盗版软件。因此,也不要不必要地激怒未来的客户。

3
感谢您的回答。这个答案给了我更多的见解,而不是那些比您更赞成的观点,因为它提供了更多的解决方案,而不是告诉我“不可能,只创造一个好的产品”,坦白地说,这并不是我要的。
theGreenCabbage

37
+1- I have bought software I've pirated比我想的还要多。
WernerCD

1
+1But as for a programming problem, the downside is that it seems most people don't like the idea to start with. There's lots of good reasons for this, but they aren't really important here. Sadly, we are also in some ways a terrible group of people to ask, because by virtue of our position and knowledge most of us are pretty darn good at pirating software to the point that we think it pointless to try to implement trial measures at all!
数学冷却器

2
是的,这里的最终声明也+1。我经常盗版软件只是为了使用它一段时间,而没有任何烦人的“请购买许可证”消息,或者更糟糕的是,过短的时间后禁用了功能或尝试锁定。在几周或几个月之后,如果我喜欢的话,我会一直为许可证付费,这是因为良心这个烦人的事情(而且我也喜欢支持好的公司,或者有时是好的独立开发者)。而且,如果我不喜欢该软件,我将停止使用它,并且没有人真正失去任何东西-无论如何我永远都不会成为付费客户。
李李

1
很棒的答案!我非常乐意看到更多公司参与
进来

58

您正在寻找本质上不可能的东西。一些软件行业中最大,资金最充足的公司已经花费了数年,数百万美元的资金,寻找一种方法来完成您要完成的工作,而这从未真正产生过成功的结果。

首先,您会忘记所有关于搞砸本地安装的事情。只要原始安装程序仍然存在(或可以备份或重新下载),那无非是减速。当用户可以安装到虚拟机,然后备份并还原整个虚拟机映像时,即使在系统设置中放置一些内容也几乎没有意义。

下一步很明显的一步是在线身份验证:设置服务器,并在每次启动程序检查凭据时让程序“回拨”。这也不起作用。首先,当服务器由于任何原因停机或无法访问,或者其软件出现故障时,您会遇到明显(非常令人沮丧)的误报问题。而且,您无法使软件仅在无法访问服务器时自动对用户进行验证,或者通过一些网络技巧或仅在启用了wi-fi的计算机上使用认证来解决身份验证问题就变得很简单。关。(当然,这意味着出于正当理由而没有wi-fi连接的人们正试图使用​​它,例如将笔记本电脑随身带到公共汽车上,这将被锁定。这不会使任何人就像您的程序一样。)

在线身份验证的另一个问题是,最终,它会归结为代码中某个位置的布尔值。它在某个地方调用AuthenticateUser(),如果返回True,则用户处于;如果返回,则用户被False锁定。不管您对加密,混淆或隐藏代码进行什么操作,最终都可以归结为一个简单的事实:如果计算机可以在某个时候读取它,那么程序员也可以。某个地方的某人将产生一条裂缝,该裂缝AuthenticateUser总是返回True,然后将其放置在Web上。

密码学的基本问题可以描述为“爱丽丝想给鲍勃发一封信,即使查理落入他的手,查理也无法阅读。” 您想要的问题是鲍勃和查理是同一个人,这使您无法实现目标。

如果您想从软件中赚钱,那么扭转用户的双臂并不是解决之道。如今,唯一行之有效的是基本的市场理论:提供一种用户认为对他来说具有比您要价更高的价值的产品,并且他愿意支付。其他任何事情都将浪费您的时间和精力。


8
优秀的答案,非常有信息!我还要说,您可以发布定期更新(功能,而不仅仅是“修复”),这些更新将使用户进行身份验证以获取更新。如果您创建了非常好的更新,那么用户将不会因为无法获得您的更新而烦恼骇客。
L_7337

1
+1为简洁起见。您应该将第一行加粗,并在第一段下放置一个水平的分隔符,因为那里需要说的内容有95%存在于此。
吉米·霍法

2
当您说“成功的结果”时,我相信您的意思是没有人生产过试用版软件,该软件包含完整版本的所有代码,这些代码绝对不能被黑客破解为完整版本。如果将成功定义为生产试用软件,该软件会限制其95%的用户使用该软件(限制或不加作弊的用户),并导致5%的购买率,那该怎么办?当然,以前已经实现了。

18

只是我的2美分。

100%可靠的自我毁灭是不可能的。总会有一种复杂的方法来破解您的保护。

您可以做的是,与为目标市场购买完整版本相比,使用或破解过期的试用版更麻烦。

如果我不知所措,我将尝试确保我的软件受欢迎:(1)受欢迎,因此至少每个感兴趣的人都试用过它;(2)价格合理,因此愿意付款的人可以购买它,然后您转向利润。其余的用户可以试用过期的试用版软件:他们无论如何都不会购买,但确实有助于普及,并为实际购买您软件的公司提供了更多潜在的雇用机会。

我认为Revit插件的目标市场由建筑师,建筑承包商,设计师,每个合同处理相对大量资金的人员组成,并且没有多余的空闲时间或底层计算机专业知识。

因此,请确保过期的试用版足以使他们烦恼,而又不会破坏任何东西(否则他们会讨厌您)。需要完成工作的人最终会屈服并付出[合理]的代价。

一些想法:

  • 快速制作一个试用版(干净),到期后自行卸载。重新安装应该是可能的,这样用户可以完整地看到自己的工作,随后不久又可以进行另一个自动卸载。
  • 让过期版本的输出中包含标记或文字“使用[您的软件]的试用版生产”。认真的用户不会将此类输出显示给客户。(如果再次这样做,他还是太便宜了,无论如何也无法为您的软件付款)。
  • 使过期的试用版在随机时刻显示消息框,警告该试用版已过期,并提供指向完整版本的链接。这样的事情足以使工作流程中断,因此值得认真的用户进行升级。

可以使用任何惯用技巧的组合来将计算机标记为已过期的试用版:神秘的注册表项,随机位置的神秘文件(修改后请不要忘记恢复时间戳),将时间戳隐藏在无关的图形文件或其他文件中隐写术的形式等

当然,如果用户例如重新安装操作系统,他将再次获得免费试用期。没关系:一个认真的客户几乎不会求助于此。当然,该方案最终将被破解;确保届时您的软件足够流行,可以提供具有引人注目的功能和不同保护方案的升级。

作为非常成功的“不便软件”的一个例子,我选择了Balsamiq Mockups。您可以免费(在网络上)使用其软件,但某些功能受到限制,包括保存您的工作。可以轻松地将作品“导出”和“导入”。就是说,任何想要使用几乎功能齐全的免费版本的高中生都可以这样做,甚至可以完成一些工作。学生还是不会买。但是,一个认真的设计师会珍惜他们的时间和便利性,因此可以购买。

作为另一个非常成功的例子,我当然会使用MS Windows。


我希望现在更加清楚。这个想法是“让每个人都尽力而为,真正感兴趣的报酬”。
2013年

5

这并不难。这实际上取决于您要付出多少努力。

请记住,试用版的目的是增加销量。从理论上讲,可安装软件的所有试用版方案都可以通过某种方式解决,即使要付出很大的努力,因为代码是在本地执行的,因此可以用十六进制编辑器进行编辑。该答案是基于以下假设而做出的:原始海报正在询问有关此业务问题的实际解决方案,而不是理论上的问题。

正如其他海报中提到的那样,重点是要确保解决试用版计划所涉及的工作超过了时间和精力上的成本,而不是购买软件上的成本。专门的“盗版者”将只使用BitTorrent下载预破解版本的软件。不必担心它们,因为它们无论如何都不是客户。下面的方法已经被无数的软件公司采用了数十年,并且只要您对这样的系统在理论上必须是完美的这一概念没有感到失望,您就会发现它们在现实世界中表现良好。

在最简单的级别上,您可以简单地将开始日期/结束日期时间“窗口”保留在注册表中(加密)。每次程序运行时,您都要检查系统时间是否在这两个日期之间,并更新该日期的“开始”部分。这样可以防止临时用户简单地将时钟设置回以允许访问试用版。

您可以通过在几个位置(在注册表中和应用程序的数据文件夹中)跟踪该时间窗口,并确保每次启动时它们都匹配,来扩展此时间窗口。这样可以防止人们无所事事-他们必须确切地知道它们在哪里以及如何对数据进行解密/加密。

还有很多其他方法可以解决问题,我相信您在开始开发试用功能时会遇到这些方法。

如果您不想自己做所有这些事情,那么有很多第三方库可以提供这种功能。

关于实际删除文件的注意事项:如果您的应用程序尝试删除文件,则用户的防病毒软件可能会将其标记为恶意软件。如今,防病毒软件非常激进。如果他们的防病毒程序弹出警报,许多最终用户将确信您的软件中存在病毒。


很好奇为什么这样做会失败,因为我已经在商业软件中成功使用了这项技术很多年了。
2013年

为什么这个答案被否决?我想看看推理。
theGreenCabbage

您能告诉我更多有关如何实施此方法以及其效果如何的信息吗?违反更改日期的条件时您怎么办?它是否“禁用”或“杀死”功能/ theApp本身?
theGreenCabbage

2
只需在原始计算机过期后将程序安装在新计算机/ VM上,就可以解决此问题。
丹·里昂斯

7
我以事实的准确性为由拒绝投票,因为您声称不可能的事情实际上“并不难”。
梅森惠勒2013年

1

这取决于您要使潜在客户规避自禁用功能(听起来比“自毁”更好)的难度。假设您的潜在客户不会尝试操纵程序代码本身(其中一些会尝试,请相信我),那么您可以选择以下选项:

  • 将初始日期时间存储在安装软件的计算机上(隐藏)在某个位置(隐藏):这样的缺点是客户可以轻松地规避它,例如,通过在虚拟机中安装程序,然后在试用期过后卸载它,将VM重置为其原始状态

  • 确保您的程序的每个下载副本都有单独的硬编码下载时间,隐藏在程序的二进制代码中。这将需要您进行更多的管理工作,并且您仍然不能确定在试用期过后(也许使用其他身份)同一个人不会从您的服务器下载该程序的新副本。

  • 仅在存储试用期结束的地方提供带有“加密狗”的试用版。这仅对于具有少量潜在客户且价格远高于加密狗价格的程序才可行。

  • 将事物变成Web应用程序或Web应用程序的一部分,或者只是与Web连接的应用程序。在这种情况下,您可以将初始日期存储在服务器上,但是您必须识别和区分正在使用软件的人员(例如,通过设置Cookie或创建登录名)。但同样,您不能百分百地确定人们不会改变自己的身份。


“您被拧”,“您被拧”和“您被非常拧”?我觉得这没有任何真正的解决方案。为什么不使用需要登录才能使用该程序且日期存储在服务器端的DRM ish模型?
伊莱亚斯

2
@Elias我正在制作的软件是Revit的综合材料分析插件,该插件将很快与Autodesk自己的应用程序商店一起实现。我目前不确定Autodesk的应用程序商店将向我们提供哪种遥测,控制或用户信息,因此,在安装/使用网络身份验证时,我认为这是不可行的。
theGreenCabbage 2013年

1
@Elias:感谢您的提示,但是在服务器上“登录”意味着进行身份检查,并且可以更改身份。
布朗

@DocBrown,在某些情况下可以更改它们,但是我假设在Revit \ Autodesk的Application Store中,该产品的每个客户都有唯一的登录名。尽管根据GreenCabbage的评论,很可能根本无法获得此数据,这使我的原始评论是错误的。
伊莱亚斯2013年

0

无论您做什么,都要确保非常仔细地测试在到期日期之后发生的情况。我曾经在一家公司工作,该公司以与您所描述的试用方案非常相似的方式分发软件。区别在于到期日期是将来的固定日期。

在接到大量愤怒客户的电话后,当他们合法购买的版本也于该日期停止工作后,我们立即取消了该计划。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.