Skip to content

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

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

eコマースの推奨イベントについては、eコマースイベントを記録するを参照してください。

カスタムイベントのログ記録

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

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

1
braze.logCustomEvent("YOUR_EVENT_NAME");

代わりにGoogle Tag Managerを使用する場合は、カスタムイベントタグタイプを使用してlogCustomEventメソッドを呼び出し、カスタムイベントをBrazeに送信できます。オプションでカスタムイベントプロパティを含めることも可能です。手順は以下のとおりです。

  1. 変数を使用するか、イベント名を直接入力してイベント名を入力します。
  2. 行を追加ボタンを使用してイベントプロパティを追加します。

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!