開発者コンソール

[更新版] 新しいGoogle Play請求サービス対応Appstore SDKを使用して収益化を加速

Diana Stansfield Mar 15, 2023
Share:
Launch
Blog_Header_Post_Img

 

更新日:2023年10月31日

Amazonアプリストアでは、Google Playのアプリ内課金対象定期購入型アイテムをご利用の場合、既存のコードをリファクタリングせずにアプリを配信できるようになりました。

これにより消費型アイテム、非消費型アイテムに加え、定期購入型アイテムも、Appstore請求サービス対応SDKを使用してユーザーに提供することが可能になりました。SDKを使用することで、並列APIアプローチによって請求フローが効率化され、AndroidからAmazon Fire OSへ移植する際の労力を軽減できます。

 

機能の比較一覧

次の表は、Google Play Billing Library、Appstore SDK、Appstore請求サービス対応SDKの機能を比較したものです。

Parallel API approach to streamline billing flows

アプリに定期購入型アイテムを追加するには、開発者コンソールで定期購入型アイテムのプランを作成する必要があります。詳細については、テクニカルドキュメントを参照してください。

 

※下記2023年3月15日に公開された投稿

既存のAndroidアプリでGoogle Playアプリ内課金を利用している場合、 Google Play請求サービス対応Appstore SDKを使用すると、Google Play Billing Library(IAB)の要件が適用されるアプリの移植が容易になります。消費型アイテムおよび非消費型アイテムのアプリ内課金をGoogle Play経由で提供するアプリであれば、コードをリファクタリングすることなく、すぐにAmazonアプリストアへの移植を開始できます。

最小限の労力でアプリ内課金を統合

Amazonアプリストア向けのアプリ開発が初めての場合、Fire OSのAmazonユーザー向けに、Google Play請求サービス対応Appstore SDKをAndroidアプリに統合できます。

SDKを比較すると、Google Playアプリ内課金(IAB)APIとAmazonアプリ内課金(IAP)APIにはいくつかの違いがあります。Amazonアプリストアへの移植に費やす時間と労力を軽減するために、Amazonでは、IABをFire OSに移植するためのソリューションとして、Google Play請求サービス対応Appstore SDKを開発しました。アプリにGoogle Play Billing Libraryが既に統合されている場合、最小限の変更でアプリをAmazonアプリストアに移植できます。

請求フローを効率化する並列APIアプローチ
請求フローを効率化する並列APIアプローチ

APIの署名や機能の違いを緩和するために、Amazonは、Googleアプリ内課金(IAB)と同様に機能するAPIを開発しました。エンドポイントは同じパラメーターを処理し、予期された値と請求機能を返します。課金ライブラリ名をIABからIAPに変更すれば、アプリがすべての機能にアクセスできるようにすることを目標としています。具体的には、アプリのコードベースでAppstore SDKのインポートを使用するようにGoogle Play請求サービスのインポートをすべて更新します。そのためには、使用されているcom.android.billingclient.apiプレフィックスをすべて検索し、com.amazon.device.iap.billingclient.apiプレフィックスに置き換えます。

次のコード例は、BillingResponseReceiverをAppstore SDK用のAndroidManifest.xmlファイルに追加する方法を示しています。

Copied to clipboard
<application>
...
    <activity android:name="com.amazon.sample.iap.entitlement.MainActivity"
              android:label="@string/app_name" android:exported="true" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    
    <receiver android:name="com.amazon.device.iap.billingclient.api.BillingResponseReceiver" android:exported="true"
              android:permission="com.amazon.inapp.purchasing.Permission.NOTIFY">
        <intent-filter>
            <action android:name="com.amazon.inapp.purchasing.NOTIFY" />
        </intent-filter>
    </receiver>
...
</application>

 

SDK依存関係をインポートしたら、BillingClientインスタンスを初期化します。

 

Copied to clipboard
private PurchasesUpdatedListener purchasesUpdatedListener = new PurchasesUpdatedListener() {
    @Override
    public void onPurchasesUpdated(BillingResult billingResult, List<Purchase> purchases) {
        // 実装します
    }
};

private BillingClient billingClient = BillingClient.newBuilder(context)
    .setListener(purchasesUpdatedListener)
    .enablePendingPurchases()
    .build();

これにより、課金フローを開始したときに、アプリストア間でAPIの互換性が確保されます。

1. querySkuDetailsAsync() - QuerySkuDetailsAsync APIは、Amazon開発者コンソールからSKUのタイプに加えてアイテムを取得します。

2. launchBillingFlow() - Appstore SDKは、アプリのメインスレッドでの1回のアプリ内課金リクエストにつき1つの商品の購入をサポートしています。

3. queryPurchasesAsync() - 購入済みアイテムのリストを返します。

4. consumeAsync() - 消費型アイテムをマークするためのメソッドです。acknowledgePurchase()は非消費型アイテムの配信を追跡します。

作業の進め方

Google Play請求サービス対応Appstore SDK(Appstore SDK JARファイルとAPIドキュメントが含まれています)をダウンロードし、手順に従ってください。

関連リソース

関連記事

最近の投稿

日本語版ブログの一覧は、こちらからご覧ください。

日本語の投稿の中には、英語版から翻訳されたものが含まれます。翻訳元のブログを参照したい方は、ページ下部の言語切替バーから [英語] を選択してください。