Maximize your Android app's global revenue by automatically pricing in-app purchases and subscriptions based on local Purchasing Power Parity (PPP).
Fair Playstore Pricing is an automation tool designed for Android developers to solve a critical monetization problem.
Instead of letting Google Play apply blind currency exchange rates (which makes your app unaffordable in developing countries), Fair Playstore Pricing automatically calculates, formats, and updates your regional prices based on the World Bank's Purchasing Power Parity (PPP) metrics.
It ensures your app is affordable in price-sensitive markets (like Pakistan, India, Brazil, and Indonesia) to boost paid conversions, while simultaneously maintaining premium pricing in high-income countries (like the US, UK, and Switzerland) to maximize revenue.
👉 Read more about why PPP pricing can boost your sales by 3x-5x.
- Python 3.8 or higher.
- A Google Play Developer account.
- A Google Cloud Service Account JSON Key with Play Console access.
- Don't have one? Follow our 5-minute step-by-step API Key setup guide.
# Clone the repository
git clone https://github.com/hammadbawara/FairPlaystorePricing.git
cd FairPlaystorePricing
# Create a virtual environment (optional but recommended)
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install the required dependencies
pip install -r requirements.txtSet your Service Account JSON key path as an environment variable so the tool can communicate with Google Play APIs.
Mac / Linux:
export PLAY_CONSOLE_KEY_FILE="/path/to/your/service_account_key.json"Windows (Command Prompt):
set PLAY_CONSOLE_KEY_FILE=C:\path\to\your\service_account_key.jsonWindows (PowerShell):
$env:PLAY_CONSOLE_KEY_FILE="C:\path\to\your\service_account_key.json"Fair Playstore Pricing includes a beginner-friendly interactive wizard, as well as powerful command-line arguments for CI/CD automation.
Simply run the CLI without any arguments to launch the step-by-step wizard. It will guide you through generating prices, reviewing them, and uploading them.
python play_pricing_cli.pyUpdate an In-App Purchase (One-Time Product):
python play_pricing_cli.py \
--package-name "com.example.myapp" \
--sku "premium_lifetime" \
--product-type "onetime" \
--base-price 19.99Update a Subscription (Base Plan):
python play_pricing_cli.py \
--package-name "com.example.myapp" \
--sku "pro_sub" \
--product-type "subscription" \
--base-plan-id "monthly" \
--base-price 4.99Safety First: Want to test the waters? Add the
--dry-runflag to any command to calculate prices and view them in a table without actually uploading anything to Google Play!
To keep this README clean, we've moved advanced topics, architecture details, and FAQs to their own files. Dive deeper here:
- 📈 The Business Case for PPP Pricing: Learn how exchange rates fail and why PPP maximizes revenue.
- 🏗️ Architecture, Workflow, & FAQ: Understand the decoupled 2-stage upload process and the JSON output format.
- 🔑 Google Play API Key Setup: A complete guide to setting up your Google Developer Service Account.
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
This project is Apache 2.0 licensed.