Skip to main content

App Analytics データの取得と自動化

学習の目的

この単元を完了すると、次のことができるようになります。

  • App Analytics を使用するためにライセンス管理組織 (LMO) を設定する。
  • App Analytics クエリ要求を作成してデータを取得する。
  • Apex を使用して App Analytics クエリ要求を自動化する。

App Analytics を使用するための準備

“”

Robert は App Analytics のデータ種別について十分に理解しました。次は、Salesforce CLI を使用して App Analytics データを取得します。そのために、まず必要な設定タスクを完了します。皆さんも LMO で手順を実践してみてください。

前提条件を満たす

Robert と同じように、AppExchange でソリューションを提供している AppExchange パートナーであれば、組織の準備はできていると思います。その場合でも、この前提条件のリストを確認しておくことをお勧めします。LMO を設定する必要がある場合は、このプロセスに従ってください。 

  1. ライセンス管理組織 (LMO) を使用して、管理パッケージをインストールしたすべての Salesforce ユーザーを追跡します。通常、AppExchange パートナーは、LMO としてパートナービジネス組織 (PBO) を使用します。
  2. LMA を LMO にインストールします。LMO として PBO を使用している場合は、これで作業は完了です。LMA は自動的にインストールされます。LMA をインストールする必要がある場合は、「Get Started with the License Management App (ライセンス管理アプリケーションの使用開始)」を参照してください。
  3. セキュリティレビューに合格した管理パッケージを LMA に登録します。まだ登録していない場合は、「Associate a Package with the License Management App (ライセンス管理アプリケーションへのパッケージの関連付け)」の手順に従ってください。
  4. LMO で、AppAnalyticsQueryRequest オブジェクトに対する「作成」アクセス権と「参照」アクセス権を含む「App Analytics 管理者」権限セットを作成します。この権限を、App Analytics 要求を作成する必要がある管理者以外のユーザーに割り当てます。説明が必要な場合は、「権限セットの作成」を参照してください。
  5. 『Salesforce CLI 設定ガイド』を使用して、CLI を設定します。

App Analytics データを要求して取得する

App Analytics データを取得して視覚化するには、次の順序で行います。

  1. Salesforce CLI を使用して App Analytics クエリ要求を作成し、CSV ファイルを取得します。
  2. Apex トリガーを使用して要求を自動化します。
  3. CRM Analytics で App Analytics データと LMA データを統合します。
  4. 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 が使用するステップバイステップのプロセスは次のとおりです。皆さんもこのプロセスを使用できます。

  1. 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 コードでは App Analytics データを LMA パッケージデータに結合しますが、さまざまな技術的な理由により、LMA ライセンス情報には結合されません。こちらの GitHub リポジトリにサンプルデータフローがあります。LMA データを App Analytics データと統合する方法についての詳細は、「Get App Smart: How to Use AppExchange App Analytics — Part 2 (アプリケーションを賢く使う: AppExchange App Analytics の使用方法 — パート 2)」を参照してください。

  1. 要求が完了し、ファイルをダウンロードする準備が整ったら起動する Apex トリガーを作成します。
  2. リモートサイトの設定を作成して、LMO で Apex を使用してデータを取得できるようにします。
  3. パッケージ利用状況概要データを保持するカスタムオブジェクトとカスタム項目を作成します。
  4. CSV ファイルを取得してデータを挿入する Apex コードを記述します。

ここまで順調に進んでいます。Robert は App Analytics クエリ要求のダウンロードを自動化しました。Apex コードであと必要なのは、スケジュール済み Apex を使用して LMO 内の各パッケージに対する要求を送信する部分です。皆さんも LMO で手順を実践してみてください。

  1. 設定 をクリックして [Setup (設定)] をクリックします。
  2. [Quick Find (クイック検索)] ボックスで [Apex Classes (Apex クラス)] を検索して選択します。
  3. [New (新規)] をクリックします。
  4. 次のコードをコードエディターにコピーして貼り付けます。
    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; }
  5. [Save (保存)] をクリックします。
  6. [Apex Classes (Apex クラス)] をクリックします。
  7. [Schedule Apex (Apex をスケジュール)] をクリックします。
  8. ジョブ名に ThirdDaySummaries と入力します。
  9. Apex クラスの横にあるルックアップボタンをクリックして、Scheduled と入力します。検索結果で、ScheduledRequestSubmitter をクリックします。
  10. 頻度で [Monthly (毎月)] を選択し、毎月 [3] 日に設定します。
  11. 開始日と終了日、適切な開始時刻を選択します。
  12. [Save (保存)] をクリックします。

これで、毎月 3 日に前月のログが自動的にダウンロードされてカスタムオブジェクトに保存されます。

この単元では、CLI を使用して App Analytics クエリ要求を作成してデータを取得する方法を学習しました。また、Apex コードを使用してデータの要求と取得を自動化する方法も学習しました。ここまでお疲れ様でした。あともうひと踏ん張りです。次の単元に進み、CRM Analytics で App Analytics データと LMA データを統合し、レンズとダッシュボードを作成する方法を学習しましょう。

リソース

無料で学習を続けましょう!
続けるにはアカウントにサインアップしてください。
サインアップすると次のような機能が利用できるようになります。
  • 各自のキャリア目標に合わせてパーソナライズされたおすすめが表示される
  • ハンズオン Challenge やテストでスキルを練習できる
  • 進捗状況を追跡して上司と共有できる
  • メンターやキャリアチャンスと繋がることができる