Google Cloud Storage
Google Cloud Storage連携を有効にすると、サブスクリプションイベントとペイウォール訪問データを一か所、つまりGoogle Cloud Storageバケットに安全に保存できます。
毎日UTC午前4時に、Adaptyは前日のデータを含む.csvファイルをバケットにアップロードします。イベントデータ、ペイウォール訪問データ、または両方を受け取るかどうかを選択できます。また、任意の期間のデータをいつでも手動でエクスポートすることもできます。
連携を設定するには、Google Cloud コンソールでバケットアクセスキーを生成し、Adaptyの設定に追加します。
アップロードスケジュールと所要時間
AdapyはUTC 04:00に24時間ごとにGoogle Cloud Storageへデータをアップロードします。
ファイルには前の暦日(UTC)に作成されたイベントのデータが含まれます。3月8日にアップロードされるファイルには、3月7日の00:00:00〜23:59:59 UTCに作成されたすべてのイベントが含まれます。
キュー内のファイルの総数やご自身がリクエストしたデータ量によっては、処理に数時間かかる場合があります。初回アップロードに過去のデータが含まれる場合、以降の毎日のアップロードより時間がかかります。
Google Cloud Storage連携の設定
書き込みアクセス権を持つ有効なGoogle Cloudサービスアカウントキーが必要です。生成方法については、認証情報の作成セクションの手順に従ってください。
イベントとペイウォール訪問に対して、それぞれ異なるバケットと認証情報を使用できます。ただし、いずれかの認証情報が無効な場合、両方のアップロードが失敗します。
Integrations -> Google Cloud Storage に移動し、必要なタブ(Events または Paywall visits)を開きます。連携を有効にします。
Google Cloudサービスアカウントキーを含むファイルをアップロードします。対象のバケットとフォルダーを指定します。変更を保存します。
イベントデータのオプション設定
レポートに含めるイベントを指定したり、イベントにカスタム名を設定したりできます。利用可能なイベントの全一覧はイベントの記事をご覧ください。
| 名前 | デフォルト | 説明 |
|---|---|---|
| Exclude historical events | true | AdaptySDKをアプリに統合する前に発生したイベントの情報を除外します。 アナリティクスプラットフォームがAdapty導入前にサブスクリプションイベントを受け取っていた場合、このオプションによって重複イベントの受信を防げます。 実際の例ユーザーが1月10日に月次サブスクリプションを購入しました。3月1日のアプリアップデートが初めてAdapty SDKを含むものでした。 |
| Include events without profile | false | ユーザープロファイルに紐付いていない、または特定ユーザーにすぐに関連付けられないトランザクションを含めます。Adapty SDK導入前の購入や、サーバー通知経由で受け取ったトランザクションが該当します。 |
| Send user attributes | false | カスタムユーザー属性(ユーザーデータやアプリ使用データなど)を含めます。OneSignalのプランが10個以上のタグをサポートしている場合にこのオプションを選択してください。タグ上限を超えるとエラーが発生する場合があります。 |
Google Cloud Storageの認証情報の作成
このガイドでは、Google Cloud Platform コンソールで必要な認証情報を作成する方法を説明します。
Adaptyが指定のバケットに生データレポートをアップロードするには、サービスアカウントのキーと、対応するバケットへの書き込みアクセス権が必要です。サービスアカウントのキーを提供してバケットへの書き込みアクセスを付与することで、AdaptyがプラットフォームからストレージEnvironmentへ生データレポートを安全かつ効率的に転送できるようになります。
サービスアカウントのHMACキー認証のみをサポートしています。Google Cloud Storageへの適切なアクセスを有効にするため、サービスアカウントのHMACキーに「Storage Object Viewer」「Storage Legacy Bucket Writer」「Storage Object Creator」のロールが追加されていることを確認してください。
- まず、Google CloudアカウントのIAMセクション(IAM)に移動し、関連するプロジェクトを選択するか、新しいプロジェクトを作成します。
-
次に、「+ CREATE SERVICE ACCOUNT」ボタンをクリックしてAdapty用の新しいサービスアカウントを作成します。
-
最初のステップのフィールドに入力します(アクセス権は後の段階で付与されます)。このページの詳細については、こちらのドキュメントをご覧ください。
-
プライベートJSONキーを作成してダウンロードするには、KEYSセクションに移動し、「ADD KEY」ボタンをクリックします。
-
DETAILSセクションで、作成したサービスアカウントに紐付くEmail値を見つけてコピーします。この情報は、アカウントを認証してバケットへの書き込みを許可するための後続手順で必要になります。
-
次に、Google Cloud StorageのBucketsページに移動し、既存のバケットを選択するか、AdapyのイベントまたはVisitsデータレポートを保存するための新しいバケットを作成します。次にPERMISSIONSセクションに移動し、GRANT ACCESSオプションを選択します。
-
PERMISSIONSセクションで、手順5で取得したサービスアカウントのEmailを入力し、Storage Object Creatorロールを選択します。最後にSAVEをクリックして変更を適用します。
バケット名は後で使用するので控えておいてください。
手動データエクスポート
Google Cloud Storageへの自動イベントデータエクスポートに加えて、Adaptyでは手動ファイルエクスポート機能も提供しています。この機能を使用すると、イベントデータの特定の時間範囲を選択して、GCSバケットに手動でエクスポートできます。エクスポートするデータとタイミングをより細かく制御できます。
指定した日付範囲は、日付A 00:00:00 UTCから日付B 23:59:59 UTCまでに作成されたイベントのエクスポートに使用されます。
データ構造
Adaptyはデータを表形式でエクスポートするために.csvファイルを使用します。
イベントの内容は、Adaptyまたは連携している3rd partyが新しいデータを追加することで増えることがあります。処理するコードは特定のフィールドに依存させ、構造全体に依存しないよう十分に堅牢にしてください。
イベント
レポートに含めるイベントの一覧は変更可能です。
| カラム | 説明 |
|---|---|
| profile_id | AdapyユーザーID。 |
| event_type | 小文字のイベント名。イベントタイプについてはEventsセクションを参照してください。 |
| event_datetime | ISO 8601形式の日時。 |
| transaction_id | 購入や更新などのトランザクションの一意の識別子。 |
| original_transaction_id | 元の購入のトランザクション識別子。 |
| subscription_expires_at | サブスクリプションの有効期限。通常は未来の日時。 |
| environment | SandboxまたはProductionのいずれか。 |
| revenue_usd | USD換算の収益。空の場合があります。 |
| proceeds_usd | USD換算の受取額。空の場合があります。 |
| net_revenue_usd | USD換算の純収益(税引後の収入)。空の場合があります。 |
| tax_amount_usd | USD換算の税金控除額。空の場合があります。 |
| revenue_local | 現地通貨での収益。空の場合があります。 |
| proceeds_local | 現地通貨での受取額。空の場合があります。 |
| net_revenue_local | 現地通貨での純収益(税引後の収入)。空の場合があります。 |
| tax_amount_local | 現地通貨での税金控除額。空の場合があります。 |
| customer_user_id | 開発者のユーザーID。ユーザーのUUID、メールアドレス、その他のIDを設定できます。設定していない場合はNull。 |
| store | app_storeまたはplay_storeのいずれか。 |
| product_id | Apple App Store、Google Play Store、またはStripeでのプロダクトID。 |
| base_plan_id | Google Play StoreのベースプランID、またはStripeの価格ID。 |
| developer_id | トランザクションが発生したペイウォールの開発者(SDK)ID。 |
| ab_test_name | トランザクションが発生したA/Bテストの名前。 |
| ab_test_revision | トランザクションが発生したA/Bテストのリビジョン。 |
| paywall_name | トランザクションが発生したペイウォールの名前。 |
| paywall_revision | トランザクションが発生したペイウォールのリビジョン。 |
| profile_country | IPアドレスに基づいてAdapyが判定したプロファイルの国。 |
| install_date | インストールが発生したISO 8601形式の日時。 |
| idfv | iOSデバイスのidentifierForVendor |
| idfa | iOSデバイスのadvertisingIdentifier |
| advertising_id | Androidオペレーティングシステムが広告主向けに割り当てる、デバイスを一意に識別するための広告ID |
| ip_address | デバイスのIPアドレス(IPv4またはIPv6、利用可能な場合はIPv4優先)。デバイスのIPが変わるたびに更新されます |
| cancellation_reason | ユーザーがサブスクリプションをキャンセルした理由。 使用可能な値: iOS & Android — voluntarily_cancelled, billing_error, refund iOSのみ — price_increase, product_was_not_available, unknown, upgraded Androidのみ — new_subscription_replace, cancelled_by_developer |
| android_app_set_id | AppSetId — 非収益化広告用途向けの、デバイスごと・開発者アカウントごとにリセット可能な一意のID。 |
| android_id | Android 8.0(APIレベル26)以降では、アプリの署名キー、ユーザー、デバイスの組み合わせごとに一意な64ビットの数値(16進数文字列として表現)。詳細はAndroidデベロッパードキュメントを参照してください。 |
| device | エンドユーザーに表示されるデバイスモデル名。 |
| currency | トランザクションの3文字通貨コード(ISO-4217)。 |
| store_country | Apple/Google Storeが判定したプロファイルの国。 |
| attribution_source | アトリビューションソース。 |
| attribution_network_user_id | アトリビューションソースがユーザーに割り当てたID。 |
| attribution_status | organic、non_organic、unknownのいずれか。 |
| attribution_channel | マーケティングチャネル名。 |
| attribution_campaign | マーケティングキャンペーン名。 |
| attribution_ad_group | アトリビューションの広告グループ。 |
| attribution_ad_set | アトリビューションの広告セット。 |
| attribution_creative | アトリビューションのクリエイティブキーワード。 |
| attributes | カスタムユーザー属性のJSON。モバイルアプリから送信するよう設定したカスタム属性が含まれます。送信するには、Integrations -> WebhooksページでSend User Attributesオプションを有効にしてください。 |
| integration_ids | プロファイルに関連付けられたすべての連携ID。ディクショナリ形式。例:{‘mixpanel_user_id’: ‘mixpanelUserId-test’, ‘facebook_anonymous_id’: ‘facebookAnonymousId-test’} |
ペイウォール訪問
| カラム | 説明 |
|---|---|
| profile_id | AdapyユーザーID。 |
| customer_user_id | 開発者のユーザーID。ユーザーのUUID、メールアドレス、その他のIDを設定できます。設定していない場合はNull。 |
| profile_country | Apple/Google Storeが判定したプロファイルの国。 |
| install_date | インストールが発生したISO 8601形式の日時。 |
| store | app_storeまたはplay_storeのいずれか。 |
| paywall_showed_at | ペイウォールが顧客に表示された日時。 |
| developer_id | トランザクションが発生したペイウォールの開発者(SDK)ID。 |
| ab_test_name | トランザクションが発生したA/Bテストの名前。 |
| ab_test_revision | トランザクションが発生したA/Bテストのリビジョン。 |
| paywall_name | トランザクションが発生したペイウォールの名前。 |
| paywall_revision | トランザクションが発生したペイウォールのリビジョン。 |
トラブルシューティング
Adaptyはアップロードを開始する前にアクセスキーの有効性を確認します。Google Cloud Storageのキーが1つでも無効な場合、Adaptyはアップロードを中断してエラーをスローします。
アップロードが中断されないよう、キーの有効期限が切れる前に更新してください。イベントのキーを更新した場合は、ペイウォール訪問のキーも忘れずに更新してください(逆も同様です)。