Skip to content

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

Braze SDKを通じてカスタムイベントを記録する方法を説明します。

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

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

標準のWeb SDK実装では、以下のメソッドを使用できます。

1
braze.logCustomEvent("YOUR_EVENT_NAME");

代わりにGoogle Tag Managerを使用したい場合は、カスタムイベントタグタイプを使用して、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");

logCustomEvent APIは以下を受け付けます:

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

プロパティ値には、string(最大255文字)、numericboolean、配列、またはネストされた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");

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

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

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

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. イベントユーザーログを更新して、カスタムイベントと渡されたイベントプロパティの値を確認します。

カスタムイベントのトラブルシューティング

以下のシナリオを使用して、SDK全体でのカスタムイベントロギングのトラブルシューティングを行います。

カスタムイベントトリガーの検証

カスタムイベントが表示されない場合、アプリでトラッキングされているアクションがテストしているアクションと一致していない可能性があります。

  • 開発者チームに、どのアプリアクションがカスタムイベントをトリガーするかを確認してください。
  • SDKアップグレード後に非推奨のコードパスがないか確認してください。例えば、brazeではなくappboyへの参照がないか確認します。

カスタムイベントが匿名プロファイルに記録される

カスタムイベントを記録する前にユーザーを識別しない場合、Brazeはそのイベントを匿名プロファイルに関連付ける可能性があります。

  • カスタムイベントを実行する前にchangeUser()を呼び出して、Brazeが識別済みのユーザープロファイルにイベントを記録するようにしてください。
  • 識別済みのテストユーザーでテストし、イベントユーザーログを確認してください。

カスタムイベントロギングの設定を検証する

カスタムイベントが期待通りに表示されない場合、開発者チームが正しいアプリアクションに対してカスタムイベントロギングを実装しているか確認してください。

  • 開発者チームに、イベントが正しくログに記録され、期待されるユーザーアクションからトリガーされていることを確認するよう依頼してください。
  • チームがBrazeサポートにチケットを開く際は、詳細ログと関連するコードスニペットを含めてください。
  • アプリがSwiftまたはAndroidを使用している場合、開発者チームはSDKデバッガーの前提条件を使用して詳細ログの生成を支援できます。
  • 開発者チームが問題を特定できない場合は、Brazeサポートチケットを開いてください。
New Stuff!