brainCloud 6.0.1 is live!
brainCloud 6.0.1 is a bigger release than the version number suggests.
This release includes a comprehensive set of analytics for the new LiveOps Campaign feature. It also includes configuration improvements for Apple Push Notifications, the ability to deploy individual Custom Entity collections, key authentication-related security improvements, and more.
This is a server-side update only. No changes to client libs or client APIs.
Compatibility Notes
We prioritize preserving stability and backward compatibility for existing apps. App compatibility flags are located under App > Design > Core App Info > Advanced Settings; each is enabled to preserve existing behavior for existing apps, but disabled by default for new apps.
New compatibility flags in 6.0.1 [all default to enabled for existing apps]:
- [x] Support legacy Google OpenID authentication (less secure, not recommended) - retains the older, less secure authentication path. Highly recommended that all apps disable.
- [x] Support legacy Facebook Limited authentication (less secure, not recommended) - retains the older, less secure authentication path. Highly recommended that all apps disable.
- [x] Support legacy Nintendo authentication (less secure, not recommended) - retains the older, less secure authentication path. Highly recommended that all apps disable. IMPORTANT - requires Nintendo Client ID to be set on App > Design > Core App Info > Application IDs page, Nintendo tab.
Compatibility flags already present from 6.0.0 [all default to enabled for existing apps]
- [x] Support legacy Game Center authentication (less secure, not recommended) - retains the older Game Center auth path. Note - requires client changes and the brainCloud 6.0 client libs.
- [x] Support legacy Steam authentication (uses deprecated Steam ticket API - less secure) - Retains the older Steam authentication path as we move to the modern, non-deprecated Steam APIs. Note that the new modern API requires devs to configure a new Steam Identity field on the App > Design > Core App Info > Application IDs page. Does not require updated brainCloud Client Lib.
- [x] Support legacy
segmentIdsin Cloud Code Script APIs - Enabled by default, so existing scripts keep working; disable it to require segment codes in your Cloud Code scripts and reject numeric IDs.
Release Highlights
LiveOps Campaign Analytics
The primary purpose of 6.0.1 is to provide the LiveOps Campaign Analytics screen, which was missing in the initial 6.0 release.
The screen can be found under App > Reports > Analytics > LiveOps Campaigns and has some great features:
It summarizes the campaign activity and provides charts for:
- Active Participants
- New Participants
- Purchasers
- Total Revenue
- Total Playtime
- Item Sales
- Cash Product Sales
- Session Duration
- Daily Playtime
- Revenue per active User
- Retention
- When valid, the system mathematically assesses changes against the control scenario (or B and C against the A scenario if control is absent) to determine the statistical significance of those changes.
- Significance tests default to 95% - but 80, 85, 90, and 99% tests are available as well.
- If there isn’t enough data to be confident about significance, the system advises how many more days of data are required.
- brainCloud also allows the portal user to store Notes against the campaign - for instance, how and why a scenario was chosen as the winner in an a/b test.
- The Optimize Campaign button allows the developer to reallocate all future participants to the “winning” scenario to optimize performance for the remainder of the campaign.
brainBot Changes
brainBot has been enhanced to understand LiveOps Campaign analytics. brainBot is especially useful when you want to take a deep dive into the numbers of an a/b test campaign.
brainBot can even write a report that can be placed in the Notes section of a campaign to summarize the results of your a/b campaign.
Note that we are also turning off the Super! power mode for brainBot. Our tests show that within brainCloud the Smart mode (which uses Sonnet) performs as well as Super! (which uses Opus) - but is 5x cheaper!
Authentication Security Improvements
We have improved the security checks performed by Google OpenID, Facebook Limited, and Nintendo authentication.
In theory, you should be able to disable the associated compatibility flags and automatically benefit from these improvements [except for Nintendo authentication, which requires the Nintendo Client ID to be filled in the Nintendo section of the App > Design > Core App Info > Application IDs page].
Provided your app is already sending the correct parameters during authentication, no changes to the game client should be required.
We recommend that devs do a quick test in the development version of their apps first, though - better safe than sorry!
Apple Token Based (.p8) Push Notifications
We now support Apple’s token-based (.p8) signing keys as an alternative to .p12 certificates. The advantage is that these don’t expire every 12 months!
To move to the new Token Based push notification settings:
- Navigate to the App > Design > Notifications > Settings page
- If necessary, Unlock your app
- Select Apple platform - and click [View…] and then [Edit]
- Select Token Based (.p8) for Authentication Type
- Fill in the required fields
- Hit [Save]
Custom Entity-only Deployments
The Deployment screen now includes a new tab for deploying individual custom entity collections. The standard Deployment still automatically migrates all custom entity collections configured as migrateable, but this new feature lets developers refresh selected custom entity collections in the downstream environment WITHOUT doing a FULL deploy.
This support has also been added to the Builder API.
Other Improvements
Additional improvements:
- Signin with Apple improvements - now supports sign-in over non-Apple devices, by allowing devs to configure a comma-delimited list of Services IDs.
- Campaign attribution for Cash Product Purchases
- New User Item and LiveOps Campaign DataStream Events
- SysRecordTransaction was incorrectly recording the “given” price as the “regularPrice” – which is misleading when promotions are active. Fixed.
- New App Alerts - new alerts trigger if apps are exceeding the DAU and Account maximums for limited plans (i.e. Dev and Dev+).
Portal Changes
In addition to the new LiveOps Reporting, there have been a number of other improvements to the Portal:
- App > Calendar - improved calendar display and navigation to related service screens
App > Design > Core App Info > Application IDs
- Apple tab - new Signin Services IDs field, which supports Signin for Apple on non-Apple devices
- Nintendo tab - new client ID field for improved authentication security
- App > Design > Admin Tools > Deployment - new Custom Entities Only deployment tab.
- App > Design > Files > Global Files - we now support importing and exporting individual file folders.
- App > Design > LiveOps > LiveOps Campaigns - improved screen and list presentation - and added ability to easily clone campaigns.
- App > Design > Notifications > Settings - support for Apple Token-based Push Notification configuration
- App > Reports > Analytics > LiveOps Campaigns - the new LiveOps Campaign Analytics
- User > User Browser - added support to browse for users in LiveOps Campaigns
- User > Data > Attributes - improved usability of the screen
We also made a bunch of improvements to charts across the system:
- Improved presentation of dates on the x-axis
- Added “stacked” toggle option for many of the bar charts
API Changes
We have added the following new cloud-code-only APIs to the system:
- AppStore - new
SysRecordTransactionAdvanced()call supports inclusion of campaign info. - Campaign - added two new sys calls for updating the custom JSON configurations for campaigns and scenarios:
SysUpdateCampaignJson()andSysUpdateScenarioJson() - RedemptionCode - new
SysTestRedeemCode()call allows testers to redeem against a future-dated Redemption campaign without moving the start date