Things have been quiet for the Play Store for the last few months, but a pair of updates to v11.5 and v11.6 began rolling out with some interesting clues hidden under the hood. Two new features appear to be in the works. The first is a loyalty program called Play Points, which works a bit like rewards points on a credit card that can be used for in-app purchases and Google Play credit. The second feature is a new voting system where users can play a role in picking favorites.

New variant of the dialog for special permissions

The runtime permission system introduced in Android 6.0 Marshmallow was great for eliminating the permission requests that used to pop up with app installations in the Play Store. However, there are still some permissions that require those dialogs, like the one for in-app purchases. It looks like the Play Store is doing some A/B testing on moving that dialog pop-up to a bottom card style of layout. As the screenshots show, there's no functional change, but this is probably a little more comfortable on taller phones. This is definitely a limited test and there's no particular version that forces this switch. – Thanks, Pranjal.

Teardown

Disclaimer: Teardowns are based on evidence found inside of apks (Android's application package) and are necessarily speculative and usually based on incomplete information. It's possible that the guesses made here are wrong or inaccurate. Even when predictions are correct, there is always a chance that products could change or may be canceled. Much like rumors, nothing is certain until it's officially announced and released.

The features discussed below are probably not live yet, or may only be live for a small percentage of users. Unless stated otherwise, don't expect to see these features if you install the apk. All screenshots and images are real unless otherwise stated, and images are only altered to remove personal information.

Loyalty program called Play Points

Google is working on a loyalty program for the Play Store, going by the name of Play Points. With the v11.5 update, tons of new text and layouts were added that reveal some of the pertinent details about the system.

To begin with, Play Points is described as earning points on everything you buy, and those can be used as currency for special in-app items or Google Play credit. It's interesting that a distinction is made for the ways the points can be used. I take it to mean that Google intends to incentivize customers to use their points on limited-time IAP offers, or to offer them a general discount for using the points on IAPs rather than turning them into Google Play credit (which can be used more freely throughout the store). Afterall, the overall cost for licensing and bandwidth on products like movies and TV shows is higher than with apps, games, and especially IAPs.

strings
<string name="loyalty_signup_interstitial_title">Introducing Google Play Points</string>
<string name="loyalty_signup_interstitial_body">Earn points on everything you buy. Use points for special in-app items or Google Play credit.</string>
<string name="loyalty_signup_interstitial_body_jp">Earn points on everything you buy. Use points for special in-app items or Google Play credit.</string>
<string name="loyalty_signup_interstitial_secondary_button_label">Not now</string>
<string name="loyalty_points_balance_content_description">You have %1$d points</string><string name="play_points">Play Points</string><string name="loyalty_help_menu">Help</string>
<string name="loyalty_side_nav_new">New</string>
<string name="loyalty_side_nav_content_description">%1$s. %2$s</string>
<string name="loyalty_signup_error_dialog_generic_text">Something went wrong. Try joining Play Points again.</string>
<string name="loyalty_terms_of_service">Terms of Service</string>

Benefits of the program are broken up into seperate levels, though the details of the levels aren't available. It's possible that point rewards gain slightly higher percentage increases as you spend more, or maybe bonus points are handed out as you cross milestones.

<string name="loyalty_tiers_page_title">Levels</string>
<string name="loyalty_level_benefits_menu">Level Benefits</string>

One thing to be aware of is that points can have an expiration date on them. It's not entirely clear from the text if all points can expire or if it's only going to be points gained through special promotions or rewards. There's also nothing here to indicate if the expiration dates are sliding as you make new purchases or if each batch of points gained will have a hard deadline for use. Fortunately, there will also be a history page for keeping track of points you've earned and used.

<string name="loyalty_home_points_expiry_content_description">Points expire on %1$s</string>
<string name="loyalty_home_points_expiry">Exp %1$s</string><string name="points_history">Points History</string>
<string name="points_history_empty_view_description">This is where you can track the points you earn and use</string>
<string name="points_history_empty_view_title">Nothing here yet</string>

All of these details were added in the 11.5 update, which came out a mere couple of hours before the v11.6 update followed. While there wasn't much more to see in that release, it did update a much older string that I've been curious about for a while. A line intended for Japanese users was the first to reveal a reward program, but it gave no details and originally appeared to be linked to a regional payment method. Now as the Play Points program appears, this line has been updated to give a specific conversion rate: 1 point per ¥100.

<string name="loyalty_signup_interstitial_body_jp">Earn 1 point per ¥100 on everything you buy. Use points for special in-app items or Google Play credit.</string>

At today's conversion rate, that's about 90 cents USD ($1.19 CAD, 0.78 Euro), but as programs like this typically go, the final rate for each country where Play Points are available will probably be set to nice round numbers.

Extra stuff
Exceprt from /res/menu/actions.xml
<item android:id="@+id/loyalty_points_balance" android:visible="false" android:title="@null" finsky:actionLayout="@layout/loyalty_points_balance_action_view" finsky:showAsAction="always"/>
<item android:id="@+id/points_history_button" android:visible="false" android:title="@string/points_history" finsky:showAsAction="never"/>
<item android:id="@+id/level_benefits_button" android:visible="false" android:title="@string/loyalty_level_benefits_menu" finsky:showAsAction="never"/>
<item android:id="@+id/loyalty_help_button" android:visible="false" android:title="@string/loyalty_help_menu" finsky:showAsAction="never"/>
<item android:id="@+id/loyalty_tos_button" android:visible="false" android:title="@string/loyalty_terms_of_service" finsky:showAsAction="never"/>/layout/loyalty_cluster_header.xml
/layout/loyalty_home_default_header.xml
/layout/loyalty_home_tab.xml
/layout/loyalty_home_transactional_header.xml
/layout/loyalty_home.xml
/layout/loyalty_points_balance_action_view.xml
/layout/loyalty_progress_bar.xml
/layout/loyalty_promotion_card.xml
/layout/loyalty_signup_benefit_view.xml
/layout/loyalty_signup_bottom_notification_bar.xml
/layout/loyalty_signup_fragment.xml
/layout/loyalty_signup_image_cluster.xml
/layout/loyalty_signup_interstitial.xml
/layout/loyalty_signup_landing_cluster_description_view.xml
/layout/loyalty_signup_landing_cluster.xml
/layout/loyalty_signup_text_cluster_paragraph_view.xml
/layout/loyalty_signup_text_cluster.xml
/layout/loyalty_signup_tier_card.xml
/layout/loyalty_signup_tiers_cluster.xml
/layout/loyalty_signup_toolbar_background.xml
/layout/loyalty_signup_toolbar.xml
/layout/loyalty_tab_empty_view.xml
/layout/loyalty_tier_benefit_row.xml
/layout/loyalty_tier_info_cluster.xml
/layout/loyalty_tier_summary_cluster.xml
/layout/loyalty_tiers_fragment.xml
/layout/loyalty_tiers_tab.xml/layout/points_history.xml
/layout/points_transaction_card.xml

Voting

The v11.5 update brought clues for another feature likely to show up in the Play Store, but much less is available to examine for this one. This appears to be a system for casting votes for some purpose, but there's nothing to indicate just what that might be.

The only somewhat unusual detail to be seen in here is that this system allows for more than one vote per user. This likely means users can select multiple options in a list for multiple winners, but as a fan of alternate voting systems, I can't help but wonder if this might also be an implementation of a more advanced voting system like instant run-off. Doubtful.

strings
11.3
<string name="voting_winner">Winner</string>11.5
<string name="vote">VOTE</string>
<string name="voting_dialog_cta_title">SEE OTHER GROUPS</string>
<string name="voting_dialog_dismiss_title">DONE</string>
<string name="voting_remaining_number_of_votes">You can vote for %1$d more</string>
<string name="voting_thanks">Thanks for voting</string>/layout/voting_button_layout.xml
/layout/voting_card_view.xml
/layout/voting_thank_you_dialog.xml
/layout/voting_winner_view.xml
/layout/voting_header_text_panel.xml

The very first string related to voting actually turned up back in v11.3, but it was just a single line with the word "Winner" and a single container layout where the text was used.

I'm curious if the voting system will be used for promotional purposes like picking which games go on sale during special events, something Steam has had great success with. It may also be something developers can pose to their users as a poll to decide things like which features to implement next. We might not even see it used for apps, but rather for crowdsourcing a list of favorite movies and TV shows.

We'll keep watching for new details to evolve from here.

Download

The APK is signed by Google and upgrades your existing app. The cryptographic signature guarantees that the file is safe to install and was not tampered with in any way. Rather than wait for Google to push this download to your devices, which can take days, download and install it just like any other APK.