URLをパラメータ化しておくと、対象となるパラメータ数が多い場合に時間を大幅に節約できます。またこれが、ページデータを分析できる唯一の現実的な選択肢になることもあります。
パラメータ化しておくと、PendoのUIを使用して、特定のページルールの上位100個のパラメータと、対応するページ閲覧数を表示できます。パラメータの数が100を超える場合も、弊社のアグリゲーションエンドポイントを使用すれば、全パラメータを表示できます。
この記事では、APIを使用してページパラメータを分析する方法を説明します。
要件
以下のガイドラインに進む前に、次のことを確認してください。
- APIアクセスはPendoの契約に含まれています。ご不明な点があれば、Pendoの担当者までお問い合わせください。
- Pendoのインテグレーションキーを保有していること。これはPendoのインストールスクリプトに表示されるキーではありません。また、管理者のみがインテグレーションキーを作成できます。Pendo Engageでインテグレーションキーを作成するには、[設定(Settings)]>[インテグレーション(Integrations)]>[インテグレーションキー(Integration Keys)]に移動し、[インテグレーションキーを追加(Add Integration Key)]を選択します。
- [書き込みアクセスを許可(Allow Write Access)]を選択すれば、そのキーでPendoにデータを正しくプッシュできます。
ヒント:ページパラメータの概念をよくご存じない方は、ページのタグ付けを行うURLを確認されることをお勧めします。
ガイドライン
当社のアグリゲーションエンドポイントのPageEvents ソース(https://app.pendo.io/api/v1/aggregation)では、時間単位または日単位で集計されたさまざまなページパラメータの詳細を確認できます。
まず、[x-pendo-integration-key]の横にあるAPIコールの[ヘッダー(Headers)]セクションにインテグレーションキーを追加します。以下にPostmanを使用した例を示します。
次に、求める成果に基づいてリクエストの本文を入力します。以下に例をいくつか示しますので、必要に応じてコピーしてお使いください。
特定のページや特定の期間のイベントを表示する
以下は、特定のページの前日のイベントをリクエストするコールの例です。ページIDは次のようなページURLで確認できます:https://app.pendo.io/s/SUBSCRIPTION-ID/pages/PAGE-ID。
{
"response": {},
"request": {
"name": "ExampleAggregation",
"pipeline": [
{
"source": {
"pageEvents": {
"pageId": "ENTER PAGE ID"
},
"timeSeries": {
"period": "dayRange",
"first": "now()",
"count": -1
}
}
}
],
"requestId": "ExampleAggregation"
}
}
上記のコールに対する応答例を以下に抜粋します。同じ訪問者が複数のページパラメータにアクセスした場合、複数の応答が返されることがあります。
{
"startTime": 1647475200000,
"results": [
{
"accountId": "XXX",
"appId": -323232,
"day": 1647475200000,
"pageId": "XXX",
"numEvents": 1,
"numMinutes": 1,
"remoteIp": "XXX",
"server": "XXX",
"userAgent": "XXX",
"visitorId": "XXX",
"parameters": {
"parameter": "XXX"
}
},
{
"accountId": "XXX",
"appId": -323232,
"day": 1647475200000,
"pageId": "XXX",
"numEvents": 1,
"numMinutes": 1,
"remoteIp": "XXX",
"server": "XXX",
"userAgent": "XXX",
"visitorId": "XXX",
"parameters": {
"parameter": "XXX"
}
}
]
}
特定のページの特定のパラメータに対するフィルタリング
特定のページの特定のパラメータをフィルタリングして応答数を制限したい場合は、以下のコールの例を参照してください。
{
"response": {},
"request": {
"name": "ExampleAggregation",
"pipeline": [
{
"source": {
"pageEvents": {
"pageId": "ENTER PAGE ID"
},
"timeSeries": {
"period": "dayRange",
"first": "now()"
"count": -1
}
}
},
{
"filter": "parameters.parameter == `ENTER PARAMETER`"
},
{
"limit": 1
}
],
"requestId": "ExampleAggregation"
}
}
応答の例を以下に示します。
{
"startTime": 1647475200000,
"results": [
{
"accountId": "XXX",
"appId": -323232,
"day": 1647475200000,
"pageId": "XXX",
"numEvents": 1,
"numMinutes": 1,
"remoteIp": "XXX",
"server": "XXX",
"userAgent": "XXX",
"visitorId": "XXX",
"parameters": {
"parameter": "XXX"
}
}
]
}
結果を表形式で分析する場合は、以下の部分を変更します。
{
"response": {},
…
}
上記を次のように変更します。
{
"response": {
"location": "request",
"mimeType": "text/csv"
}
…
}
これで結果をCSV形式のファイルでダウンロードできます。
上位パラメータの表示
Pendo UIでページの詳細を表示する際に、上位パラメータのリストと対応するページ閲覧数を取得することもできます。
コールの例を以下に示します。
{
"response": {
"location": "request",
"mimeType": "text/csv"
},
"request": {
"name": "TopPageParameters",
"pipeline": [
{
"source": {
"pageEvents": {
"pageId": "ENTER PAGE ID",
"blacklist": "apply"
},
"timeSeries": {
"period": "dayRange",
"first": "now()",
"count": -30
}
}
},
{
"identified": "visitorId"
},
{
"filter": "!isNull(parameters.parameter) && parameters.parameter != \"\""
},
{
"group": {
"group": [
"pageId",
"parameters.parameter"
],
"fields": [
{
"numEvents": {
"sum": "numEvents"
}
}
]
}
},
{
"sort": [
"-numEvents"
]
},
{
"limit": 100
}
],
"requestId": "TopPageParameters"
}
}
CSV形式の応答の例を以下に示します。
numEvents,pageId,parameters
67,mNZtq33uzglPEMxv1_emyn-ytig,"{""parameter"":""index.html""}"
27,mNZtq33uzglPEMxv1_emyn-ytig,"{""parameter"":""login.html""}"
9,mNZtq33uzglPEMxv1_emyn-ytig,"{""parameter"":""buttons.html""}"
3,mNZtq33uzglPEMxv1_emyn-ytig,"{""parameter"":""tables.html""}"
2,mNZtq33uzglPEMxv1_emyn-ytig,"{""parameter"":""charts.html""}"
1,mNZtq33uzglPEMxv1_emyn-ytig,"{""parameter"":""cards.html""}"
1,mNZtq33uzglPEMxv1_emyn-ytig,"{""parameter"":""utilities-color.html""}"