Appian

Appian SDK

アプリケーションのインストルメンテーションを開始する前に、アプリを作成してappKeyがあることを確認してください。

インストール

Appian AppMarketからPyze Ananytics Componentをインストールし、プラグインのリストで有効になっていることを確認します。

初期化

アプリケーションでは、アプリケーションのページからこのコンポーネントに簡単にアクセスできるようにするために、Pyze Analytics Component用の共通の式ルール(例:PDPyze)を作成します。

次のコードを Expression Rule Component の中に貼り付けます。

/*Get pyze app key from https://growth.pyze.com */
{
   pyze(
      pyzeAppKey: "YOUR_PYZE_APP_KEY",
      methodName: ri!methodName,
      eventName: ri!eventName,
      attributes: ri!attributes,
      userId: ri!userId,
      pyzeProfileAttributes: ri!pyzeProfileAttributes,
      customProfileAttributes: ri!customProfileAttributes,
      /*randomString: (rand()-0.5)/500*/
   )
}

入力変数methodName、eventName、attributes、userId、pyzeProfileAttributes、customProfileAttributesを以下のように作成します。

initializeの呼び出しは、トラッキングしたいページごとに必要です。

これにより、ページがロードされたときに初期化メソッドが起動され、pyze SDKがデータの収集を開始します。

local!methodName : "initialize",
local!eventName : "",
local!attributes : {},
local!userId:"",
local!pyzeProfileAttributes:{},
local!customProfileAttributes:{},

アプリケーションの各インターフェースに表現ルールを追加します。

rule!PDPyze(
   methodName: local!methodName,
   eventName:  local!eventName,
   attributes: local!attributes,
   userId: local!userId,
   pyzeProfileAttributes: local!pyzeProfileAttributes,
   customProfileAttributes: local!customProfileAttributes
)

オプションとして、そのページでバリブルを使用しない場合は省略することができます。例: プロファイル API を呼び出さない場合、上記のスニペットは次のようになります。

/*
* Local variables
*/
local!methodName : "initialize",
local!eventName : "",
local!attributes : {},

...

/*
* Component with fewer variables.
*/
rule!PDPyze(
   methodName: local!methodName,
   eventName:  local!eventName,
   attributes: local!attributes
)

カスタムイベント

イベントを利用することで、アプリ内でのユニークなユーザーアクションを簡単に追跡することができます。

saveIntos内のローカル変数を更新することでPyze APIを呼び出します。

イベント

// Custom Event without Attributes
saveInto: {
   a!save(local!methodName,"postCustomEvent"),
   a!save(local!eventName, "YOUR_EVENT_NAME")
}

これにより、ユーザーがいつアクションを実行したかを追跡し、そのイベントがどれくらいの頻度で発生しているかを簡単にカウントすることができます。

属性を持つイベント

属性とは、イベントにアタッチできるキーと値のペアのことです。どのイベントでも最大99個の属性を持つことができます。ベスト・プラクティスを遵守し、アトリビュートに大きく依存して、インストルメンテーションを可能な限り最小限にして有用にすることを強くお勧めします。典型的なアプリケーションでは、イベントよりも多くの属性を持つべきです。

// Custom Event with Attributes
// Create an object with key value pairs of custom attributes and post with postCustomEventWithAttributes

saveInto: {
   a!save(local!methodName,"postCustomEventWithAttributes"),
   a!save(local!eventName, "YOUR_EVENT_NAME"),
   a!save(local!attributes, {attr1:value1, attr2:123})
}

タイムドイベント

ユーザーがアクションを完了するまでにかかる時間を計ることは、Pyze の一般的な使用例です。SDkには、タイマーを開始し、アクションの完了時にカスタムイベントを送信できるようにすることで、これを処理する機能が組み込まれています。

  • startTimerForEvent - 名前を指定してタイマーを開始する
  • postTimedEvent - 同じ名前を参照してタイマーを終了します。ミリ秒単位の時間が自動的にこのイベントに添付されます。また、以下の例のように、追加のパラメタとして属性を渡すこともできます。

//Start timer for event
saveInto: {
   a!save(local!methodName,"startTimerForEvent"),
   a!save(local!eventName, "YOUR_EVENT_NAME")
}

//Post timed event. 
//Note : The event name attribute for the `startTimerForEvent` and  `postTimedEvent` should match.
saveInto: {
   a!save(local!methodName,"postTimedEvent"),
   a!save(local!eventName, "YOUR_EVENT_NAME")
}

//Post timed event API when you want to send additional attributes
saveInto: {
   a!save(local!methodName,"postTimedEventWithAttributes"),
   a!save(local!eventName, "YOUR_EVENT_NAME"),
   a!save(local!attributes, {attr1:value1, attr2:123})
}

寸法

ディメンジョンは、セッション内のすべてのイベントにアタッチできる属性です。これは、時間の経過とともに変化する属性の標準セットを持っていると便利であり、この目標を達成するための単なるヘルパーです。

ディメンジョンは、初期化コールにアタッチするキーと値のペアです。これらのキーペアまたは json オブジェクトを含むように initialize 呼び出しを修正してください。

dimensions: {"dim1":"val1"}

##プロフィール

プロファイルは、Pyzeにユーザーに関するデータを追加するための強力な方法です。プロファイルを使用して、ある時点(イベント)に固有のデータではなく、特定のユーザーに関連付けられたデータを追加することができます。

ユーザーがアプリにログインしたら、setUserProfileを呼び出してPyzeにユーザーを識別します。ユーザーが識別された後に発生したイベントはすべて、このユーザーに帰属します。このメソッドは、セッションの最初のログイン時に一度だけ呼び出す必要があります。

オプションでプロファイル属性を含めることができます。

Pyzeの組み込みプロファイル属性はpyze UIで特別な扱いを受けますが、受信したデータに基づいてカスタム属性のデータ型を判別しようとします。ビルトイン属性とカスタム属性の間には、適用されるフォーマット以外の違いはありません。

//Create Pyze Profile Attributes object
saveInto: {
   a!save(local!methodName,"setUserProfile"),
   a!save(local!userId, "USER_UNIQUE_IDENTIFIER"),
   a!save(local!pyzeProfileAttributes, {first_name:John),
   a!save(local!customProfileAttributes, {city:XYZ)
}

Pyzeのプロフィール属性

Pyze ユーザープロファイル フィールド名 データの種類/説明
background (文字列) ユーザーの背景、経歴または履歴データ
country (文字列) 国コードは ISO-3166-1 alpha-2 規格で 送信する必要があります。
current_location (オブジェクト) フォーマッ ト。{“longitude”. -33.991894, “緯度”. 25.243732}
date_of_first_use (ユーザーが最初にアプリを使用した日付) ISO 8601形式またはyyyy-MM-dd’T’HH:mm:ss.SSZ形式の文 字列。
date_of_last_use (ユーザーが最後にアプリを使用した日付) ISO 8601形式の文字列、またはyyyy-MM-dd’T’T’HH:mm:ss.SSZ形 式の文字列。
date_of_birth (生年月日) “YYYY-MM-DD"形式の文字列。
email_id (文字列) 電子メール ID
email_subscribe 文字列) 使用可能な値 は、“opt_in”(メールメッセージの受信を明示的に承認)、“opt_out”(メールメッセージの受信を明示的に拒否)、“subscribed”(オプトインもオプトアウトもしていない)です。
email_hard_bounced ハードバウンスが発生した場合に自動的に更新されます (true またはfalse)
email_spam_reported ユーザーがISP経由でメールをスパムとしてマークした場合、自動的に更新されます(trueまたはfalse)
facebook_id (文字列) facebook ID
first_name (文字列) ユーザのファーストネーム
gender 文字列)「M」、「F」、「O」(その他)、「N」(該当しない)、「P」(言いたくない)、「U」(不明
home_city (文字列) ユーザーの出身地
image_url (文字列) ユーザーに関連付けられる画像の URL
language (文字列) ISO-639-1 標準で送信する言語を要求します。
last_name (文字列) ユーザの姓
marked_email_as_spam_at (文字列) ユーザーの電子メールがスパムとしてマークされた日付。ISO 8601形式、またはyyyy-MM-dd’T’HH:mm:ss.SSSZ形式でなければなりません。
phone (文字列) 電話番号
push_subscribe (文字列) 利用可能な値 は、“opted_in”(明示的にプッシュ メッセージを受信するように登録され ている)、“unsubscribed”(明示的にプッシュメッセージをオプトアウトしている)、“subscribed”(オプトインもオプトアウトもしていない)です。
push_tokens app_id とトークン文字列を持つオブ ジェクトの配列。オプションで、この トークンが関連付けられているデバ イスの device_id を指定することがで きます。アプリ識別子、“token”. “abcd”, “device_id”. “optional_field_value”}]。device_id が 指定されていない場合は、ランダム に生成されます。
time_zone (文字列) タイムゾーンはIANAタイム ゾーンデータベース(例: “America/New_York “や “Eastern Time (US & Canada)")に従って送信 されなければなりません。有効な値 のみが尊重されます。
twitter_id (文字列)Twitter ID

既存のユーザープロファイルの更新

既に設定されているユーザプロファイルの属性を更新するには、以下のAPIを使用します。

注意 : setUserProfileを呼び出す前にこのAPIを呼び出さないでください。

saveInto: {
   a!save(local!methodName,"updateUserProfile"),
   a!save(local!pyzeProfileAttributes, {first_name:John),
   a!save(local!customProfileAttributes, {city:XYZ)
}

ユーザーのログアウト

ユーザがログアウトした際にこの API を呼び出します。このコールの後に送信されるイベントには ID は付与されず、匿名のユーザに帰属します。

saveInto: {
   a!save(local!methodName,"resetUserProfile")
}

ユーザーのプライバシー

Pyzeは、エンドユーザーがデータ収集からオプトアウトしたり、ユーザーのデータを忘れるようにPyzeシステムに指示したりするためのAPIを提供しています。

setUserOptOut

エンドユーザーがデータ収集からオプトアウトできるようにします。オプトアウトはTrueかFalseかを切り替えることができます。

saveInto: {
   a!save(local!methodName,"setUserOptOutToTrue")
}

ユーザーデータの収集を再開するには、値を false に設定します。

削除ユーザー

エンドユーザがデータ収集からオプトアウトし、Pyzeシステム内のユーザを削除することができます。一度削除したユーザーは元に戻すことができませんので、確認することをお勧めします。

saveInto: {
   a!save(local!methodName,"deleteUser")
} 

最終更新 2021-01-07