Hosted Content for Unity 3D

Unibill hosted content is a Unity integrated, cross platform solution for selling downloadable content, such as Asset Bundles, to your paying users, and only your paying users.

Hosted Content for Unibill is a complete solution for selling downloadable content; from In App Purchase through to content download; Unibill manages the whole process for you with a single, Unified cross platform API.

Watch this introductory video for a quick overview, or get started at Unibiller.com


 

Featuring

  • Cross platform, unified API
  • Server side verification of purchase receipts
  • Fast downloads; edge caching across the US, Europe and Asia
  • Resumable Content downloads
  • Automatic download verification and unpacking
  • Full Editor support; test everything without leaving the Editor

Unibill Content is fully integrated with Unibill and handles the complete checkout process; from In App Purchase process through to content delivery;

Unibiller.onDownloadComplete += (purchasableItem, directory) => {
  // Use your content!
};

Unibiller.onPurchaseComplete += (purchasableItem) => {
  if (Unibiller.hasDownloadableContent(purchasableItem)) {
    Unibiller.downloadContentFor(purchasableItem);
  }
}

Whether you’re serving a handful of users or a top 10 app, Unibill Content is built to scale to your needs.

Supported Platforms

Hosted Content is currently available for Google Play, Amazon Apps and iOS.

Pricing

Hosted content starts from $75 a month.

Charges are accrued per GB of data transferred according to the following tiers; the more you use, the cheaper it becomes.

Note that the pricing varies depending on the geographic location of your users; it costs more to serve users in the Asia Pacific region than it does users in the US and EU.

Monthly Usage Network transfer – US/EU (per GB) Network transfer – Asia/Pacific (per GB)
First 100 GB Included (shared Asia/Pacific) Included (shared US/EU)
Next 5000 GB $0.42 $0.51
Next 5000 GB $0.30 $0.39
Additional transfer $0.18 $0.23

Sign Up

Sign up, configure and upload your content at unibiller.com

Configuration

Create your App at unibiller.com and fill in the following configuration sections for each relevant platform you are publishing to.

Editor Settings

These settings apply when running from within the editor.

Allow Editor Downloads When selected, your content can be downloaded from the Unity Editor. It is recommended to keep this switched off when you are not testing, and certainly once your App has shipped, since it allows downloading content with minimal verification.
Version to serve to Editor Select which version of your content is served to the editor, eg the version for Google Play or iOS, etc.

Google Play

Google Play Public Key Enter your App’s Google Play public key, to enable Unibill Content to validate the purchase receipts provided by your users.
Google Play App Bundle Id Enter your App’s bundle identifier which is typically, though not necessarily, identical across all platforms.

iOS

iOS App Bundle Id Enter your Application bundle identifier which is typically, though not necessarily, shared across platforms
iOS Receipt Verification Environment Select the environment that receipts should be sent to for verification. Apple provide a sandbox environment that should be used during development. Once your app is pending review you should switch to the live environment. Note that if this is misconfigured Unibill will detect the error and route the receipt to the correct environment, but at a cost of higher download latency.
If Apple’s validation service is unavailable Choose what to do if Apple cannot be contacted for receipt verification, or is otherwise unavailable.You can opt to allow downloads, or prevent downloads until such time Apple is available. It is recommended that you select ‘allow downloads’.

Amazon

Support is provided for Amazon’s In App Purchase tester, so you can test your downloads on a device prior to submitting your application to Amazon for publication.

It is recommended that you keep Sandbox downloads disabled unless you are actively testing, since the sandbox does not provide strong proof of purchase of your content.

Amazon Developer Secret Enter your Application bundle identifier which is typically, though not necessarily, shared across platforms
Allow Amazon Sandbox Downloads Enables testing of downloadable content on a device that is running Amazon’s IAP testing App.You should disable this when not testing, since using the Amazon sandbox is not a proof of purchase.
If Amazon’s validation service is unavailable Choose what to do if Amazon cannot be contacted for receipt verification, or is otherwise unavailable.You can opt to allow downloads, or prevent downloads until such time Amazon is available. It is recommended that you select ‘allow downloads’.

Defining your Downloadable Content

This section defines what files are served to your users for each associated In App Purchase.

Screen Shot 2014-07-23 at 11.17.07

Click ‘Add’ to create a new content bundle, and configure as follows.

Id Product Id File Upload
This identifier is assigned by Unibill Content. It should be pasted into the inventory editor, in the ‘Downloadable Content Id’ field. Enter the item’s platform specific product identifier for each platform. Upload your content in zip format. Directory structure is preserved when unpacked by Unibill.

Note – Only non consumable items can be associated with downloadable content.

You now need to tell the Unibill plugin about your downloadable content. Paste the “Id” column from the web interface into the ‘DLC id’ field of each purchasable item.

Screen Shot 2014-07-23 at 11.40.37

Content Updates

It is possible to update your downloadable content once your app is published, even while it is being served to users.

When the Unibill client downloads content, it downloads a specific version of that content.

When you upload a new version of your content the new version is available immediately, but the old version(s) of your content are still available to be served to existing downloaders.

You upload a new version using the same ‘File Upload’ section as used to upload the original content. As soon as the upload completes your content will be served.

Service status

Uptime Report for Unibill Content Delivery: Last 30 days

API Reference

Downloading Content

///
/// Downloads the content for the specified PurchasableItem
/// if Unibill is not configured to download it automatically.
///
void Unibiller.DownloadContentFor(PurchasableItem item);

Download notifications

///
/// Occurs when the specified Downloadable Content finishes downloading.
/// The DirectoryInfo may be browsed using standard IO functions.
///
public static event Action<PurchasableItem, DirectoryInfo> onDownloadCompletedEvent;
///
/// Occurs when a Download progresses.
///
/// The int parameter ranges from 0-99%, since
/// the onDownloadCompletedEvent fires once the content is verified and unpacked.
///
public static event Action<PurchasableItem, int> onDownloadProgressedEvent;
///
/// Occurs when a Download fails permanently.
///
/// This will ONLY occur if the user is not entitled to the content,
/// ie. they do not have a valid receipt.
///
/// Network drops, App restarts, etc, do not cancel downloads.
///
public static event Action<PurchasableItem, string> onDownloadFailedEvent;

Checking for scheduled downloads

///
/// Determine if content is scheduled for download.
/// Returns false once content has been successfully downloaded.
///
public static bool IsDownloadScheduled(PurchasableItem item);

Checking for finished downloads

///
/// Determine if content is downloaded and available for the specified item.
///
public static bool IsContentDownloaded(PurchasableItem item);

Accessing Downloaded Content

///
/// Get the downloaded content for a PurchasableItem.
/// The content must have downloaded successfully,
/// which can be checked with a call to IsContentDownloaded.
///
/// The Directory containing the content, or NULL.
public static DirectoryInfo GetDownloadableContentFor(PurchasableItem item);

Deleting downloaded content

///
/// Deletes locally downloaded content for the PurchasableItem.
///
public static void DeleteDownloadedContent(PurchasableItem item);

FAQ

Is there a file size limit?

No, your downloadable content can be of any size (subject to available space on your users’ devices).

Will this scale to my requirements?

Your content is hosted on a Content Delivery Network (CDN).

It is designed for high availability (meaning your users can download your content reliably) and high speed (meaning your users can download your content quickly).

Depending on the location of your users your content will be replicated in a number of different geographic regions automatically, to ensure consistently fast downloads wherever they are.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: