App Analytics データの取得と自動化
学習の目的
この単元を完了すると、次のことができるようになります。
- App Analytics を使用するためにライセンス管理組織 (LMO) を設定する。
- App Analytics クエリ要求を作成してデータを取得する。
- Apex を使用して App Analytics クエリ要求を自動化する。
App Analytics を使用するための準備
Robert は App Analytics のデータ種別について十分に理解しました。次は、Salesforce CLI を使用して App Analytics データを取得します。そのために、まず必要な設定タスクを完了します。皆さんも LMO で手順を実践してみてください。
前提条件を満たす
Robert と同じように、AppExchange でソリューションを提供している AppExchange パートナーであれば、組織の準備はできていると思います。その場合でも、この前提条件のリストを確認しておくことをお勧めします。LMO を設定する必要がある場合は、このプロセスに従ってください。
-
ライセンス管理組織 (LMO) を使用して、管理パッケージをインストールしたすべての Salesforce ユーザーを追跡します。通常、AppExchange パートナーは、LMO としてパートナービジネス組織 (PBO) を使用します。
- LMA を LMO にインストールします。LMO として PBO を使用している場合は、これで作業は完了です。LMA は自動的にインストールされます。LMA をインストールする必要がある場合は、「Get Started with the License Management App (ライセンス管理アプリケーションの使用開始)」を参照してください。
- セキュリティレビューに合格した管理パッケージを LMA に登録します。まだ登録していない場合は、「Associate a Package with the License Management App (ライセンス管理アプリケーションへのパッケージの関連付け)」の手順に従ってください。
- LMO で、AppAnalyticsQueryRequest オブジェクトに対する「作成」アクセス権と「参照」アクセス権を含む「App Analytics 管理者」権限セットを作成します。この権限を、App Analytics 要求を作成する必要がある管理者以外のユーザーに割り当てます。説明が必要な場合は、「権限セットの作成」を参照してください。
-
『Salesforce CLI 設定ガイド』を使用して、CLI を設定します。
App Analytics データを要求して取得する
App Analytics データを取得して視覚化するには、次の順序で行います。
- Salesforce CLI を使用して App Analytics クエリ要求を作成し、CSV ファイルを取得します。
- Apex トリガーを使用して要求を自動化します。
- CRM Analytics で App Analytics データと LMA データを統合します。
- CRM Analytics でダッシュボードとレンズを作成します。
ステップ 1 と 2 についてはこの単元で、ステップ 3 と 4 については次の単元で説明します。
最初に要求を作成します。Robert は 3 か月間のパッケージ利用状況概要データを必要としています。次のクエリを使用します。
項目 |
説明 |
---|---|
DataType=PackageUsageSummary |
取得するデータ種別を指定する |
StartTime=2021-01-01T00:00:00Z |
データセットの開始を指定する |
EndTime=2021-04-01T00:00:00Z |
データセットの終了を指定する |
OrganizationIds=<blank> |
含める組織 ID を特定する すべての組織 ID を取得する場合は空白のままにする |
PackageIds=033XXXXXXXXXXXX |
含めるパッケージ ID を定義する すべてのパッケージ ID を取得する場合は空白のままにする App Analytics クエリ要求の場合は、PackageIds を 033 で始める必要があります。 |
Robert が使用するステップバイステップのプロセスは次のとおりです。皆さんもこのプロセスを使用できます。
- Salesforce CLI コマンドを使用して LMO にログインします。
sf org login web -a YourPBO
次のような出力が表示されます。
Successfully authorized robert.bullard@getcloudyconsulting.com with org ID 00DXXXXXXXXXXXXXXX
2.AppAnalyticsQueryRequest
SOAP API オブジェクトを使用して、クエリ要求レコードを挿入します。LMO で実践している方は、各自のパッケージ ID を使用してください。ハンズオン組織で実践している方は、パッケージ ID として 033xx00SIMsmall
を使用してください。
sf data create record -s AppAnalyticsQueryRequest -v "StartTime=2021-01-01T00:00:00Z EndTime=2021-04-01T00:00:00Z DataType=PackageUsageSummary PackageIds=033xx00SIMsmall" -o YourPBO
3.CLI によって返された AppAnalyticsQueryRequest ID を保存します。
Successfully created record: 0XI1U000000XdrAWAS
4.クエリの状況を監視します。
sf data get record -s AppAnalyticsQueryRequest -i 0XI1U000000XdrAWAS -o YourPBO
次のような出力が表示されます。
Getting Record... done attributes: type: "AppAnalyticsQueryRequest" url: "https://pa-production-pickup..../c72c98bb-70fb-42f7-ad01-2863a6984aef_results.csv?/services/data/v50.0/sobjects/AppAnalyticsQueryRequest/0XI1U000000XdrAWAS" Id: "0XI1U000000Xe3zWAC" IsDeleted: null Name: "AAQR-53754" CreatedDate: "2021-04-15T20:36:05.000+0000" CreatedById: "0051U0000089WFkQAM" LastModifiedDate: "2021-04-15T20:36:36.000+0000" LastModifiedById: "0051U000000yUSJQA2" SystemModstamp: "2021-04-15T20:36:36.000+0000" LastViewedDate: "2021-04-15T20:36:05.000+0000" LastReferencedDate: "2021-04-15T20:36:05.000+0000" DataType: "PackageUsageSummary" StartTime: "2021-01-01T00:00:00.000+0000" EndTime: "2021-04-01T00:00:00.000+0000" RequestState: "Pending" DownloadUrl: null DownloadExpirationTime: null ErrorMessage: null PackageIds: "033xx00SIMsmall" OrganizationIds: null DownloadSize: null
DownloadUrl
項目は、クエリの処理中は null
になります。クエリが完了すると、数分以内に入力されます。DownloadUrl
項目は要求ごとに異なり、データを安全に取得する方法を提供します。ただし、有効期限は 60 分であるため、速やかに取得するようにしてください。
5.DownloadUrl
をコピーしてブラウザーに貼り付け、CSV ファイルをダウンロードします。DownloadUrl
はコードの行が多くて長くなるため、全体をコピーするように注意してください。
6.PackageSummaries3Months.csv ファイルの名前を変更し、ローカルドライブに保存します。
Apex を使用して App Analytics 要求を自動化する
データを視覚化するために、組織にデータを取り込む 1 つの方法として CSV ファイルを CRM Analytics にアップロードすることができますが、手動処理はもはや時代に即していません。このプロセス全体を自動的に処理するコードを作成してみましょう。
Robert には、次のようにさまざまな自動化オプションがあります。
- REST または SOAP API コールを使用したカスタム API インテグレーション
- CLI を使用した Salesforce DX の自動化
- Salesforce フロー
- Apex トリガー
Robert は、CRM Analytics にスムーズに統合できる Apex を選択します。また、Apex であれば、Cloudy Health の LMA データと App Analytics データは Salesforce エコシステム内に保存されるため、Salesforce のすべての最先端ツールからデータにアクセスできます。さらに、Apex は Robert が必要とする集計データともうまく連動します。後から他のデータ種別にアクセスする場合や、ログデータの量が増えた場合、Robert は変化するクエリのニーズに適応する別のタイプのカスタムインテグレーションを定義できます。
Robert が作成する Apex コードは、新しいクエリ要求レコードの検索と監視を行い、データを取得し、そのデータを LMO のカスタムオブジェクトに保存します。便利ですね! さらに、このコードのおかげで手間が省けるため、データの取得ではなく、データの分析と視覚化に集中することができます。Robert が App Analytics 要求を自動化する手順の概要を次に示します。皆さんも LMO で手順を実践してみてください。
- 要求が完了し、ファイルをダウンロードする準備が整ったら起動する Apex トリガーを作成します。
-
リモートサイトの設定を作成して、LMO で Apex を使用してデータを取得できるようにします。
- パッケージ利用状況概要データを保持するカスタムオブジェクトとカスタム項目を作成する。
- CSV ファイルを取得してデータを挿入する Apex コードを記述します。
ここまで順調に進んでいます。Robert は App Analytics クエリ要求のダウンロードを自動化しました。Apex コードであと必要なのは、スケジュール済み Apex を使用して LMO 内の各パッケージに対する要求を送信する部分です。皆さんも LMO で手順を実践してみてください。
-
をクリックして [Setup (設定)] をクリックします。
- [Quick Find (クイック検索)] ボックスで [Apex Classes (Apex クラス)] を検索して選択します。
-
[New (新規)] をクリックします。
- 次のコードをコードエディターにコピーして貼り付けます。
global with sharing class ScheduledRequestSubmitter Implements Schedulable { global void execute(SchedulableContext ctx) { List<AppAnalyticsQueryRequest> aaqrList = new List<AppAnalyticsQueryRequest>(); Date s = Date.today().addMonths(-1).toStartOfMonth(); Date e = Date.today().toStartOfMonth().addDays(-1); for (sfLma__Package__c p: [select sfLma__Package_ID__c from sfLma__Package__c]) { AppAnalyticsQueryRequest aaqr = new AppAnalyticsQueryRequest(); aaqr.DataType = 'PackageUsageSummary'; aaqr.StartTime = (Datetime) s; aaqr.EndTime = (DateTime) e; aaqr.PackageIds = p.sfLma__Package_ID__c; aaqrList.add(aaqr); } insert aaqrList; }
-
[Save (保存)] をクリックします。
-
[Apex Classes (Apex クラス)] をクリックします。
-
[Schedule Apex (Apex をスケジュール)] をクリックします。
- ジョブ名に
ThirdDaySummaries
と入力します。
- Apex クラスの横にあるルックアップボタンをクリックして、
Scheduled
と入力します。検索結果で、ScheduledRequestSubmitter をクリックします。
- 頻度で [Monthly (毎月)] を選択し、毎月 [3] 日に設定します。
- 開始日と終了日、適切な開始時刻を選択します。
-
[Save (保存)] をクリックします。
これで、毎月 3 日に前月のログが自動的にダウンロードされてカスタムオブジェクトに保存されます。
この単元では、CLI を使用して App Analytics クエリ要求を作成してデータを取得する方法を学習しました。また、Apex コードを使用してデータの要求と取得を自動化する方法も学習しました。ここまでお疲れさまでした。あともうひと踏ん張りです。次の単元に進み、CRM Analytics で App Analytics データと LMA データを統合し、レンズとダッシュボードを作成する方法を学習しましょう。
リソース
- 開発者ドキュメント: Salesforce CLI 設定ガイド
- 開発者ドキュメント: Apex 開発者ガイド
- ブログ投稿: Get App Smart: How to Use AppExchange App Analytics (アプリケーションを賢く使う: AppExchange App Analytics の使用方法)
- ブログ投稿: Get App Smart: How to Use AppExchange App Analytics Part 2 (アプリケーションを賢く使う: AppExchange App Analytics の使用方法パート 2)
- ブログ投稿: Automate AppAnalytics—AWS Stack (AppAnalytics の自動化 — AWS スタック)
- Salesforce ヘルプ: CSV ファイルのアップロードによるデータセットの作成