Skip to content

カスタムイベントをログに記録する

Braze SDKを通してカスタムイベントを記録する方法を学習する。

カスタムイベントをログに記録する

カスタムイベントを記録するには、以下のイベントロギングメソッドを使用します。

標準のWeb SDK 実装では、以下の方法を使用できます。

1
braze.logCustomEvent("YOUR_EVENT_NAME");

代わりにGoogle Tagマネージャーを使用したい場合は、カスタムイベントタグタイプを使用して、logCustomEvent メソッドを呼び出し、カスタムイベントプロパティをオプションで含めて、カスタムイベントをBrazeに送信することができる。これを行う方法:

  1. 変数を使用するか、イベント名を入力して、Event Nameを入力します。
  2. イベントプロパティを追加するには、Add Row ボタンを使用します。

Braze アクションタグ構成設定を示すダイアログボックス。設定項目には「タグタイプ」(カスタムイベント)、「イベント名」(ボタンクリック)、「イベントプロパティ」が含まれる。

ネイティブ Android の場合は、次の方法を使用できます。

1
Braze.getInstance(context).logCustomEvent(YOUR_EVENT_NAME);
1
Braze.getInstance(context).logCustomEvent(YOUR_EVENT_NAME)
1
AppDelegate.braze?.logCustomEvent(name: "YOUR_EVENT_NAME")
1
[AppDelegate.braze logCustomEvent:@"YOUR_EVENT_NAME"];
1
braze.logCustomEvent('YOUR_EVENT_NAME');

Braze Cordovaプラグインメソッドを使う:

1
BrazePlugin.logCustomEvent("YOUR_EVENT_NAME");

このlogCustomEventAPIは以下を受け付ける:

  • eventName (必須の文字列):最大255文字まで使用できる。名前を . $で始めてはいけない。英数字と句読点を使え。
  • eventProperties (オプションのオブジェクト):イベントメタデータ用のキーと値のペアを追加する。キーは最大255文字まで使用し、キーを . $で始めてはいけない。

プロパティ値には、文字列(最大255文字)、numeric数値boolean、配列、またはstringネストされたJSONオブジェクトを使用する。

実装の詳細については、Braze Cordova SDK のソースを参照すること。

Infillion Beacons を Android アプリに統合している場合は、オプションで visit.getPlace() を使用して位置情報固有のイベントをログに記録できます。requestImmediateDataFlush を使用すると、アプリがバックグラウンドで動作している場合でも、イベントが確実に記録されることが確認されます。

1
2
Braze.getInstance(context).logCustomEvent("Entered " + visit.getPlace());
Braze.getInstance(context).requestImmediateDataFlush();
1
2
Braze.getInstance(context).logCustomEvent("Entered " + visit.getPlace())
Braze.getInstance(context).requestImmediateDataFlush()
1
Braze.logCustomEvent("YOUR_EVENT_NAME");
1
m.Braze.logEvent("YOUR_EVENT_NAME")
1
AppboyBinding.LogCustomEvent("YOUR_EVENT_NAME");

メタデータプロパティを追加する

カスタムイベントを記録する際、そのイベントにプロパティオブジェクトを渡すことで、そのカスタムイベントに関するメタデータを追加する選択肢がある。プロパティはキーと値のペアとして定義されています。キーは文字列であり、値はオブジェクトDate、配列numeric、またはネストされたJSONbooleanオブジェクトであるstring

メタデータプロパティを追加するには、以下のイベントロギングメソッドを使用します。

1
2
3
4
5
6
7
8
9
10
braze.logCustomEvent("YOUR-EVENT-NAME", {
  you: "can", 
  pass: false, 
  orNumbers: 42,
  orDates: new Date(),
  or: ["any", "array", "here"],
  andEven: {
     deeply: ["nested", "json"]
  }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Braze.logCustomEvent("YOUR-EVENT-NAME",
    new BrazeProperties(new JSONObject()
        .put("you", "can")
        .put("pass", false)
        .put("orNumbers", 42)
        .put("orDates", new Date())
        .put("or", new JSONArray()
            .put("any")
            .put("array")
            .put("here"))
        .put("andEven", new JSONObject()
            .put("deeply", new JSONArray()
                .put("nested")
                .put("json"))
        )
));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Braze.logCustomEvent("YOUR-EVENT-NAME",
    BrazeProperties(JSONObject()
        .put("you", "can")
        .put("pass", false)
        .put("orNumbers", 42)
        .put("orDates", Date())
        .put("or", JSONArray()
            .put("any")
            .put("array")
            .put("here"))
        .put("andEven", JSONObject()
            .put("deeply", JSONArray()
                .put("nested")
                .put("json"))
        )
))
1
2
3
4
5
6
7
8
9
10
11
12
13
AppDelegate.braze?.logCustomEvent(
  name: "YOUR-EVENT-NAME",
  properties: [
    "you": "can",
    "pass": false,
    "orNumbers": 42,
    "orDates": Date(),
    "or": ["any", "array", "here"],
    "andEven": [
      "deeply": ["nested", "json"]
    ]
  ]
)
1
2
3
4
5
6
7
8
9
10
11
[AppDelegate.braze logCustomEvent:@"YOUR-EVENT-NAME"
                       properties:@{
  @"you": @"can",
  @"pass": @(NO),
  @"orNumbers": @42,
  @"orDates": [NSDate date],
  @"or": @[@"any", @"array", @"here"],
  @"andEven": @{
    @"deeply": @[@"nested", @"json"]
  }
}];
1
2
3
4
5
braze.logCustomEvent('custom_event_with_properties', properties: {
    'key1': 'value1',
    'key2': ['value2', 'value3'],
    'key3': false,
});

プロパティオブジェクトを使ってカスタムイベントをログに記録する:

1
2
3
4
5
var properties = {};
properties["key1"] = "value1";
properties["key2"] = ["value2", "value3"];
properties["key3"] = false;
BrazePlugin.logCustomEvent("YOUR-EVENT-NAME", properties);

プロパティをインラインで渡すこともできる:

1
2
3
4
BrazePlugin.logCustomEvent("YOUR-EVENT-NAME", {
  "key": "value",
  "amount": 42,
});

公式のCordovaサンプルアプリには、文字列、数値、ブール値、配列、およびネストされたオブジェクトのプロパティが含まれている。

サンプルプロジェクトの抜粋:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var properties = {};
properties["One"] = "That's the Way of the World";
properties["Two"] = "After the Love Has Gone";
properties["Three"] = "Can't Hide Love";
BrazePlugin.logCustomEvent("cordovaCustomEventWithProperties", properties);
BrazePlugin.logCustomEvent("cordovaCustomEventWithoutProperties");
BrazePlugin.logCustomEvent("cordovaCustomEventWithFloatProperties", {
  "Cart Value": 4.95,
  "Cart Item Name": "Spicy Chicken Bites 5 pack"
});
BrazePlugin.logCustomEvent("cordovaCustomEventWithNestedProperties", {
  "array key": [1, "2", false],
  "object key": {
    "k1": "1",
    "k2": 2,
    "k3": false,
  },
  "deep key": {
    "key": [1, "2", true]
  }
});

APIとネイティブブリッジの詳細については、以下を参照のこと:

1
2
3
4
5
Braze.logCustomEvent("custom_event_with_properties", {
    key1: "value1",
    key2: ["value2", "value3"],
    key3: false,
});
1
m.Braze.logEvent("YOUR_EVENT_NAME", {"stringPropKey" : "stringPropValue", "intPropKey" : Integer intPropValue})
1
AppboyBinding.LogCustomEvent("event name", properties(Dictionary<string, object>));

ベストプラクティス

カスタムイベントのプロパティが期待通りに記録されるようにするには、次の3つの重要な確認事項を実施する必要がある:

カスタムイベントがログに記録されるたびに、複数のプロパティーがログに記録されます。

イベントを検証する

どのイベント・プロパティがトラッキングされているかを開発者に確認する。すべてのイベント・プロパティは大文字と小文字を区別することに留意してほしい。カスタム・イベントのトラッキングに関する追加情報については、プラットフォーム別に以下の記事を参照されたい:

ログを確認する

イベント・プロパティが正常に追跡されていることを確認するには、カスタム・イベント・ページからすべてのイベント・プロパティを見ることができる。

  1. [データ設定] > [カスタムイベント] に移動します。
  2. リストからカスタムイベントを探す。
  3. イベントについては、[プロパティの管理]を選択すると、そのイベントに関連付けられたプロパティの名前が表示される。

値を確認する

テストユーザーとしてユーザーを追加した後、以下のステップで値を確認する:

  1. アプリ内でカスタムイベントを実行する。
  2. データがフラッシュされるまで約10秒待ちます。
  3. イベントユーザーログを更新して、渡されたカスタムイベントとイベントプロパティの値を表示します。
New Stuff!