Google Play应用内结算可免费提供商品

时间:2013-04-26 11:35:31

标签: android mobile in-app-purchase google-play in-app-billing

我已经在Google Play商店发布了完全免费的应用。

由于应用程序比我想象的更受欢迎,因此我决定在使用之前锁定一些功能并要求应用内结算。但是,我希望所有现有用户都能继续享受免费的高级功能。

所以,我想到了以下几点:

  • 免费上传具有应用内结算功能的版本,以便现有用户使用 将免费“购买”。
  • 经过一定时间后开始为物品充电,但从那以后 他现有的用户已经拥有了他们不会拥有的优质商品 伤。

有没有办法授予某些用户“免费”项目?在应用内结算文档中写道,所有应用内结算项目都必须有价格。

4 个答案:

答案 0 :(得分:3)

谷歌没有直接的办法。您将有2个测试用例: -

  1. 现有用户
  2. 新用户 您必须在服务器上存储唯一的user-id,并且当您在应用程序中实现应用程序内部时,请将此用户ID发送到您的服务器。
  3. 案例1: - 如果服务器匹配id返回成功消息,您的服务器将与现有数据库匹配。

    案例2: - 对于新用户以及此用户ID,您的应用应将购买令牌发送到您的服务器进行验证,并在验证购买后,您的服务器应发送成功消息。

    常见任务: - 当您的应用程序启动时,您应始终调用restoreTransaction(),之后您将从google获取包含已购买项目信息的列表,您将解锁该内容。 确保您在应用中实施了服务器验证。

答案 1 :(得分:2)

以下是如何在不使用服务器的情况下部分完成您的需求:

  1. 使用将为SharedPreferences写入唯一值的新版本更新您的应用。此值应该是设备唯一的ID的哈希值(或者至少是其他设备不会共享的ID)。值应该相对唯一的原因是为了防止它在后来的用户之间共享。如果您希望它在重新安装后继续存在,您也可以将其写入用户外部存储器的一个区域,该区域在安装您的应用程序时不会被删除。

  2. 等待足够长的时间,以便大多数现有用户都已更新到新版本。在此过程中,此阶段的任何新用户也将在其SharedPreferences中获得唯一值。

  3. 发布写入唯一ID的新版本,如果,则启用您只想 的功能该ID已存在,或者如果用户已通过应用内结算付款。

  4. 这并不完美,但它可以允许您当前用户的大多数继续访问这些功能。

    我不知道这是否会违反您与Google Play的协议,您需要自行检查该问题。您向现有用户提供的应用程序是免费的,现在希望对其某些功能收费,这一事实可能被视为虚假陈述,除非您的祖父在您的现有用户中,并且我刚刚概述的方法并不能保证将成功授予所有现有用户访问权限。

    请注意,在另一个需要使用您自己的服务器的答案中提交的方法似乎也存在同样的问题,因为您需要发布一个新版本的应用程序,其中包含与您的服务器通信的代码,并且没有强制当前用户在特定时间间隔内更新到新版本的方法。否则,您将如何收集识别服务器数据库中当前用户的唯一ID,因为开发人员通常不知道免费应用程序的用户?

    更简洁的方法是添加功能,这些功能与现有功能紧密集成,使其更有价值,并且还使用输入任何内容旧的功能更有价值。您可以继续免费提供现有功能,但需要为新功能付费。

    通过采用这种方法,当前用户不会被剥夺功能,您还可以向当前用户(而不仅仅是新用户)收取增值功能。使用这种方法不仅可以使您的用户更加满意,而且还可能为您带来更多的报酬,因为您可以将您当前的整个用户群作为潜在的付费客户。

    此外,您可能会认为您的应用目前的受欢迎程度可能是由于您现在想要收取的功能。因此,一旦这些功能不再免费,您可能无法吸引新用户。

答案 2 :(得分:1)

虽然对于拥有大量下载量的应用程序不可行,但截至2016年1月,您每季度每个应用最多可以授予500个促销代码。

答案 3 :(得分:0)

我看到这是一个非常老的话题,而且可接受的答案已经过时了。现在有一个官方解决方案。

几年前Google推出了Promotional Codes,这正是您所需要的。 您可以在Play控制台的Your App -> User Acquisition -> Promotion下创建促销代码。

  

您可以使用促销向用户免费提供带有促销代码的付费应用或应用内产品。您可以创建促销活动来奖励忠实粉丝,获得新用户并与以前的用户重新建立联系。 Learn more