mcpField
D
dx-app-analytics-use

dx-app-analytics-use

github.com/forcedotcomデータ・データベース1.1k146 回インストール1 日前に更新
リポジトリ

dx-app-analytics-use について

ISV パートナー向けの Salesforce App Analytics スキルで、管理パッケージの利用データを取得します。非同期クエリ、設定、ダウンロード形式、時間フィルター、ライフサイクルの問題診断を扱います。

主な機能

  1. 01分析リクエストの作成とポーリング
  2. 02分析データ型の選択
  3. 03シミュレーションとオプトアウトの設定
  4. 04時間とパッケージ ID による絞り込み
  5. 05ファイル形式と圧縮方式の選択
  6. 06クエリ状態の問題診断

活用シーン

  1. 01管理パッケージ利用状況の概要取得
  2. 02分析データの差分取得
  3. 03サンプル利用ログでのクエリテスト
  4. 04期限切れまたは失敗したダウンロードの診断

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/forcedotcom/sf-skills --skill dx-app-analytics-use

インストール後、Claude Code で/dx-app-analytics-useを入力して読み込まれたか確認します。

詳細

アプリ分析

このスキルがタスクを担当する場合

次の作業には、dx-app-analytics-use を使用します。

  • REST/sObject API を使用して AppAnalyticsQueryRequest レコードを作成する
  • Metadata API を使用して AppAnalyticsSettings を設定する(シミュレーションモード、オプトアウト)
  • クエリのライフサイクルを把握する:New → Pending → Complete → Expired → Failed
  • dataType の値を選択する:PackageUsageSummary、PackageUsageLog、SubscriberSnapshot
  • 分析データのダウンロードに関するファイル形式と圧縮オプション
  • startTime、endTime、availableSince を使用した時間範囲のフィルタリング
  • 失敗または期限切れになった分析クエリのトラブルシューティング

次の場合は、ほかのスキルに委任します。

  • 標準の CRM SOQL クエリを実行する → querying-soql
  • Data Cloud SQL または DMO を扱う → retrieving-datacloud
  • 標準オブジェクトのレポート/ダッシュボードを作成する → reporting skills
  • 一般的なメタデータ XML をデプロイまたは取得する → deploying-metadata / retrieving-metadata

利用可能な型

AppAnalyticsQueryRequest(REST/sObject API)

ISV パートナーが、管理パッケージの利用状況分析データを ISV Intelligence Data Lake から取得するために使用する非同期クエリリクエストです。レコードは POST /services/data/vXX.0/sobjects/AppAnalyticsQueryRequest で作成し、GET /services/data/vXX.0/sobjects/AppAnalyticsQueryRequest/<id> でポーリングします。システムがクエリを処理し、完了時に署名付きダウンロード URL を提供します。

フィールド(14 個のプロパティ):

フィールド型説明
DataTypestring(フィルター可能)分析データの種類。値:PackageUsageSummary、PackageUsageLog、SubscriberSnapshot
RequestStatestring(フィルター可能)処理ステータス。値:New、Pending、Complete、Expired、Failed、NoData、Delivered
StartTimestringリクエストしたデータの時間範囲の開始時刻
EndTimestring時間範囲の終了時刻。時刻の境界に設定してください
AvailableSincestringこの時刻以降にインデックスされたデータにクエリを制限します(指定時刻を含む)。増分取得に使用します
PackageIdsstring管理パッケージ ID(033 プレフィックス)のカンマ区切りリスト
OrganizationIdsstring結果のフィルタリングに使用する購読者組織 ID のカンマ区切りリスト
DownloadUrlstring結果をダウンロードするための署名付き URL。RequestState が Complete になると設定されます
DownloadSizelong結果データファイルのサイズ(バイト単位)
DownloadExpirationTimestringダウンロード URL の有効期限
FileTypestring(フィルター可能)出力形式。値:csv、parquet
FileCompressionstring(フィルター可能)圧縮方式。値:none、gzip、snappy
QuerySubmittedTimestringクエリが Data Lake に送信された時刻
ErrorMessagestringクエリが失敗した場合の診断メッセージ
AppAnalyticsSettings(Metadata API)

シミュレーションモードとオプトアウトの動作を制御する、ISV App Analytics の設定です。Metadata API(sf project deploy)または Tooling API を使用してデプロイします。

フィールド(2 個のプロパティ):

フィールド型説明
enableSimulationModeboolean(フィルター可能)true の場合、実際の購読者データを使わずに、統合テスト用のサンプル利用ログをクエリできます
enableAppAnalyticsOptOutboolean(フィルター可能)true の場合、この購読者組織は AppExchange App Analytics のデータ収集からオプトアウトします

リクエストのライフサイクル

New → Pending → Complete → (download within expiration window)
                         → Expired (download URL no longer valid)
                         → Delivered (download confirmed received)
         → Failed (check errorMessage)
         → NoData (no matching records for the criteria)

よくあるパターン

Package Usage Summary のクエリ(過去 7 日間)

REST API を使用してレコードを作成します。

POST /services/data/v60.0/sobjects/AppAnalyticsQueryRequest
Content-Type: application/json

{
  "DataType": "PackageUsageSummary",
  "StartTime": "<7-days-ago>T00:00:00Z",
  "EndTime": "<today-on-hour-boundary>T00:00:00Z",
  "PackageIds": "033XXXXXXXXXXXX",
  "FileType": "csv",
  "FileCompression": "gzip"
}

RequestState が Complete になるまで GET でレコードをポーリングし、その後 DownloadUrl からダウンロードします。

増分データの取得

最後に成功したクエリの完了時刻を AvailableSince に設定し、取得済みのデータを再ダウンロードしないようにします。

テスト用のシミュレーションモードを有効にする

Metadata API を使用し、enableSimulationMode: true を設定して AppAnalyticsSettings をデプロイすると、実際の購読者を使わずにサンプルデータをクエリできます。

注意すべき重要なポイント

  • AppAnalyticsQueryRequest はsObjectです。レコードの作成とポーリングには、REST Data API(/sobjects/AppAnalyticsQueryRequest)を使用してください。Metadata API XML デプロイメントは使用しないでください。
  • AppAnalyticsQueryRequest には Apex トリガーがなく、カスタムオブジェクトやフローを経由することもありません。
  • ダウンロード URL は有効期限が切れます。ダウンロードを試みる前に、必ず DownloadExpirationTime を確認してください。
  • 一貫した結果を得るには、EndTime を毎時の境界に設定してください。
  • AvailableSince は開始時刻を含みます。正確にそのタイムスタンプでインデックスされたデータも含まれます。
  • PackageIds には 04t(パッケージバージョン)ID ではなく、033 で始まる ID を使用します。
  • データは ISV Intelligence Data Lake インフラストラクチャによって非同期で処理されます。同期クエリのオプションはありません。
  • 大規模なデータセットでは、FileType: parquet と FileCompression: snappy の組み合わせが最適なパフォーマンスを実現します。

出力形式

Analytics task: <query / configure / troubleshoot>
Data type: <PackageUsageSummary / PackageUsageLog / SubscriberSnapshot>
Package IDs: <033-prefixed IDs>
Time range: <startTime> to <endTime>
File format: <csv|parquet> / <none|gzip|snappy>
Request state: <current state>
Next step: <poll for completion / download / investigate failure>

コメント