自动抓取Appstore connect 运营数据

# Fastlane Spaceship 数据采集 Demo

以下是通过 **Fastlane Spaceship** 自动获取 App Store Connect 销售数据的完整指南:

---

## 环境准备
### 1. 安装 Fastlane
```bash
# 需要 Ruby 2.5 或更高版本
gem install fastlane -NV

脚本实现

2. 创建 appstore_data_demo.rb

require 'spaceship'
require 'date'
require 'json'

# 配置凭证(建议使用环境变量)
APPLE_ID = ENV['APPSTORE_ID'] || "your_apple_id@example.com"
PASSWORD = ENV['APPSTORE_PWD'] || "your_app_specific_password"

def login
  Spaceship::Tunes.login(APPLE_ID, PASSWORD)
  Spaceship::Tunes.select_team if Spaceship::Tunes.client.teams.count > 1
end

def fetch_sales_data(date)
  start_date = Date.parse(date)
  end_date = start_date

  all_apps = Spaceship::Tunes::Application.all
  app = all_apps.first

  analytics_data = Spaceship::Tunes.client.get_analytics_data(
    app_id: app.apple_id,
    start_date: start_date.strftime("%Y-%m-%d"),
    end_date: end_date.strftime("%Y-%m-%d"),
    measures: ['installs', 'sales', 'refunds', 'iap'],
    frequency: 'DAILY'
  )

  JSON.parse(analytics_data.body)['results'] || []
end

begin
  login
  target_date = (Date.today - 3).strftime("%Y-%m-%d") # 数据延迟 2 天
  sales_data = fetch_sales_data(target_date)

  if sales_data.empty?
    puts "⚠️ No data for #{target_date}"
  else
    File.write("sales_#{target_date}.json", JSON.pretty_generate(sales_data))
    puts "✅ Saved #{sales_data.size} records to sales_#{target_date}.json"
  end
rescue => e
  puts "❌ Error: #{e.message}"
end

运行说明

3. 执行脚本

# 直接运行
ruby appstore_data_demo.rb

# 使用环境变量(推荐)
APPSTORE_ID="your_id" APPSTORE_PWD="your_pwd" ruby appstore_data_demo.rb

数据处理示例

4. 解析 JSON 输出

import json

with open('sales_2023-10-01.json') as f:
    data = json.load(f)

for item in data:
    print(f"Date: {item['date']}")
    print(f"App: {item['appName']}")
    print(f"Revenue: ${item['developerProceeds']:.2f}")
    print(f"Refunds: {item['refunds']}\n")

关键配置项

参数 说明
measures 指标类型:installs/sales/refunds
frequency 数据粒度:DAILY/HOURLY
start_date 数据开始日期(YYYY-MM-DD)
app.apple_id 目标应用的唯一标识符

注意事项

  1. ⚠️ 权限要求
    需在 App Store Connect 中分配 SalesAnalytics 权限

  2. ⚠️ 数据延迟
    当日(T)数据需在 T+3 日获取(例如 10/1 数据 10/4 可用)

  3. ⚠️ 接口稳定性
    此脚本依赖苹果未公开 API,重大更新后可能失效

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容