如何在不影响新用户的情况下处理旧用户的内容“更新”?

时间:2011-09-22 20:57:10

标签: iphone ios ipad

主题太模糊了 - 让我解释一下:

我有一个应用程序,其中包含一个导航图表。如果有人在2011年购买了该应用程序,他们就会获得2011版的导航图表。

如果有人在2012年购买该应用程序,他们将获得2012年航海图。

但是 - 在2011年购买该应用程序的人应该能够以付费方式升级他们的图表(到2012年图表)。

我如何可靠地实现这个目标?

此外,如果有人在2011年购买了应用程序,他们应该能够简单地卸载应用程序并重新加载(从AppStore)并免费获取更新的图表。

这不像直接的“应用内购买”那么简单 - 因为新买家已经收到了更新。

P.S。在你通过“惩罚”他们评论我对现有用户等的不公平之前 - 请注意事实并非如此。与任何和所有导航图表一样,购买一个(电子或纸质)并不一定免费为您提供所有未来的权利。此外,有图表提供商,我需要为更新支付版税。

7 个答案:

答案 0 :(得分:2)

如果您希望将此基于单个可升级的应用程序,我认为您应该为了客户的连续性,那么您可能需要维护自己的服务器,该服务器根据通过In-购买的内容来管理权利。应用程序购买,以及何时购买。

Apple的应用程序内购买文档中概述了此过程。

答案 1 :(得分:1)

  

此外,如果有人在2011年购买了该应用,则不应该这样做   能够简单地卸载应用程序并重新加载它(从   AppStore)并免费获取更新的图表。

您需要运行自己的权利服务器的建议听起来可能是正确的,并且是技术最强大的方法。但是,这依赖于能够唯一地识别您的服务器的用户,并且正如JustSid所指出的那样,开发人员无法使用UDID。在任何情况下,UDID都会识别唯一的设备,而购买则基于AppleID,因此我不确定这是否真的有效。然而,最不愉快的部分是需要为此维护自己的服务器,如果有另一种方法,则会增加复杂性。

这部分取决于您的定价。如果新图表的价格小于或等于您当前的应用价格,那么您可以使用一种简单的方法,如果您可以接受的话。当2012年图表可用时,使用2011年地图发布应用程序,按2012年图表的价格降低应用程序的价格,并将2012年图表作为所有用户的应用程序内购买。

我不知道您的应用是多少,但这是一个例子:

  

目前
  应用2011年图表:10美元。

     

2012年图表可用
  新购买者的应用价格:5美元。 (船舶与2011年图表)。
  2012年应用程序内购买图表:5美元   总计:10美元

     

为现有客户更新应用的价格:$ 0   2012年应用程序内购买图表:5美元   总计:5美元

新客户支付与以前相同的总价格,现有客户可以比直接购买应用程序获得50%的折扣更新。如果您打算这样做,您需要在应用程序商店中明确表示5美元的购买是针对为您提供遗留图表的平台,并且需要5美元的应用程序内购买才能获得2012年图表,因为客户不习惯在购买付费应用后立即进行应用内购买。

或者,您可能不想区分升级和新购买者。在这种情况下,只需将应用程序商店中2011年应用程序的应用程序价格设置为0美元,购买2012年图表即可获得10美元的应用内购买。就个人而言,我非常喜欢这种方法,因为下载了一个免费的应用程序,人们将更加了解需要立即进行应用内购买以获得完整的功能。

  

这不像直接的“应用内购买”那么简单 -   因为较新的购买者已经收到了更新。

这是一个棘手的问题。我上面概述的场景并不能完全满足您的需求。

我并未声称对于应用内购买的可能性有明确的说法,但我能看到您可以实现此目的的唯一方法是为2012年购买者销售新应用,同时提供2012年图表作为2011年应用程序内的早期客户的应用程序内购买。应用商店中有两个应用。不确定Apple会不会喜欢它。

后来
如果可以以编程方式访问当前用户的应用程序的原始购买日期(而不是下载日期),则可以实现理想的结果,就像您可以获取有关应用程序的详细信息一样已经发生的购买。然后你可以说像(伪代码):

if ((purchaseDate > 1-Dec-2011) || (hasPurchased2012ChartInApp == YES)) {  
    // give access to 2012 charts  
}  
else {  
    // only give access to 2011 charts  
}  

但是......到目前为止,我还没有办法找到原来的购买日期。

答案 2 :(得分:0)

问题在于您是否拥有付费应用,而不是完全依赖于应用内购买的应用?

你应该可以给他们一张免费的图表购买。收取下一个费用。

答案 3 :(得分:0)

如果您可以动态设置应用内购买的价格,您可以尝试在首次打开应用时恢复用户购买,如果没有要恢复的购买,请免费为他们提供当前购买。这将确保只有尚未收到任何内容的用户,无论是通过初始下载还是应用内购买,都可以免费获得新地图。

实现类似功能的一种方法是使其成为免费的应用程序(可能带有演示内容),并为每个图表提供非消费类应用内购买。在较新的更新中,您可以制作它,以便您只能购买新版本,但仍然可以恢复购买并以此方式获取旧版本。

答案 4 :(得分:0)

您可以在用户首次打开应用程序时向您的服务器发送消息。获取设备标识UUID/UDID并将其发布到您的服务器。我知道对于用户而言,它可能看起来像是“窃取”他的身份(他们说这是一件坏事,但仍然使用谷歌)。您可以说“嘿,此应用程序现在将检查您是否可以获得免费图表”是/否这甚至会让他们选择不发送设备数据。
在服务器端,您可以检查它是否是新设备,然后将ID写入数据库或其他任何内容。现在,即使用户重新加载应用程序并再次联系服务器,您也会注意到您的数据库中已存在该ID。

答案 5 :(得分:0)

为了实现这一目标,我假设一旦2011年通过,就没有必要获得2011年航海图(你在问题中用斜体升级,这是我做这个假设的基础)你将不会支付任何费用旧地图的特许权使用费(我猜它仍会适用于这些费用,但您获得的利润更少,在这种情况下将其作为最后手段使用)。

目前,您正在销售2011年导航图表,这些图表在您购买应用时免费提供。获得2012年图表后,您将保持应用程序大致相同,但您会将2012年图表添加为新版本的应用程序内购买。一旦你进行了更新(2012年初),你也可以免费提供应用程序,并将2011年的图表保留为样本(但也许有人依赖它,所以留在那里;苹果要求应用程序有用一次已下载,并且不需要应用内购买有用)。

这样,如果有人在2011年购买应用程序,他就不会免费获得2012年的图表,除非他们通过应用内购买进行升级,在这种情况下,您可以获得资金。他/她也不会感到沮丧的是,曾经定价的地图变得免费,因为它已经过去了2012年已经没用了。在2012年免费下载​​应用程序的人不会免费获得地图,他会将2011年的图表视为样本,给人留下深刻的印象(希望如此)并购买2012年的图表。

在以后的几年中,只需添加2013年图表,2014年图表等作为应用内购买,并保持其余部分相同。你在评论中说,你不想留下空白,所以留下以前的地图。希望这会有所帮助。

答案 6 :(得分:0)

我想为此做些什么,在以下步骤中提到:

  • 我会在服务器端维护应用程序的版本信息(仅限某些日期或年份)。
  • 我会通过推送通知发送日历的更新信息。
  • 当用户注册推送通知时,我会将应用程序版本与设备UDID和设备令牌一起存储在数据库中。 (你也可以通过一些网络服务这样做,但我只是建议我的方式。)
  • 因此,我可以随时通过用户的应用程序版本和设备UDID信息来检查是否向用户收费。
  • 如果用户删除了他的应用并重新加载并再次注册自己的推送通知,我将不会更新他的应用版本信息。

我希望它有所帮助。

谢谢,

Madhup