8 イベントトラッキングのカスタマイズ
イベントトラッキングは、SDK 内部で記録しているイベントのほかに、組み込み側で定義したカスタムイベントも記録することができます。
イベントの キー名 と、キーに対する 値(クエリ文字列形式)を記録できます。
8.1 カスタムイベントを記録したい
カスタムイベントを記録する場合、PopinfoReceiver クラスの trackEvent:value: メソッドを利用します。このメソッドの引数は、イベントのキー名と、キーに対する値(クエリ文字列に対応する NSDictonary)です。
以下の例では、キー名が keyName、キーに対する値が testName1=testVal1&testName2=testVal2 で記録されます。
[[PopinfoReceiver sharedReceiver] trackEvent:@"keyName" value:@{@"testName1":@"testVal1", @"testName2":@"testVal2"}];
PopinfoReceiver.shared.trackEvent("keyName", value: ["testName1":"testVal1", "testName2":"testVal2"])
キー名のみを記録したい場合は、以下のような記述となります。
[[PopinfoReceiver sharedReceiver] trackEvent:@"keyName" value:@{}];
PopinfoReceiver.shared.trackEvent("keyName", value: [:])
イベントの文字制限
カスタムイベントには、以下の制限があることにご注意ください。
- キー名は、英数字(
[a-zA-Z0-9])、アンダースコア(_)、ピリオド(.)、ハイフン(-)のみ使用できます。 - キー名の先頭にアンダースコア(
_)は使用できません。 - キー名が
nilや空文字の時は記録できません。 - 文字数制限は、キー名が 32 文字、キーに対する値はトータルで 512 文字 です。
8.2 イベントトラッキングの値にアプリ側定義値を付加
イベントトラッキングの値にアプリ側で定義した値を 常に 付加したい場合は、PopinfoReceiver クラスの addEventTrackingExtraName:value: メソッドを利用してください。
このメソッドを実行すると、引数に与えられた name と value が &name=value という形で展開され、全てのイベントトラッキングの値の末尾に付加 されます。
値が付加されるタイミングは、 popinfoSDK がサーバーに対してイベントトラッキングを送信するときとなります。
[[PopinfoReceiver sharedReceiver] addEventTrackingExtraName:@"name1" value:@"value1"];
PopinfoReceiver.shared.addEventTrackingExtraName("name1", value: "value1")
複数の定義値の付加
以下のように、メソッドを重ねて実行することもできます。この場合は、&name1=value1&name2=value2 と展開されて値が付加されるようになります。
[[PopinfoReceiver sharedReceiver] addEventTrackingExtraName:@"name1" value:@"value1"];
[[PopinfoReceiver sharedReceiver] addEventTrackingExtraName:@"name2" value:@"value2"];
PopinfoReceiver.shared.addEventTrackingExtraName("name1", value: "value1")
PopinfoReceiver.shared.addEventTrackingExtraName("name2", value: "value2")
ただし、iOS の仕様上、複数の key-value の組に対してはその順序が保証されないため、&name2=value2&name1=value1 と展開される可能性があります。
アプリ側定義値の文字制限
アプリ側定義値の付加に関しては、以下の制限があることにご注意ください。
- name には、
nil、空文字、popinfo 予約語(pModel、pOsVer、pPopinfoVer)を使用することはできません。 - value が
nilのときは、空文字に変換されます。 - 付加可能な最大文字数(上記例の
name1=value1&name2=value2部分の最大文字数)は、1024 文字 です 。- 超過した場合、本来付加すべき文字列は 破棄 され、かわりに
&OmittedValues=文字数が付加されます。
- 超過した場合、本来付加すべき文字列は 破棄 され、かわりに
- すでに設定した name に対して異なる value を設定してメソッドを実行すると、value が 上書きされます 。
実行した addEventTrackingExtraName:value: を無効化したい場合は、PopinfoReceiver クラス の removeEventTrackingExtra メソッドをコールしてください。
これにより、本 SDK 内部でキャッシュされたアプリ側定義値に関する name や value 値が全てクリアされます。
[[PopinfoReceiver sharedReceiver] removeEventTrackingExtra];
PopinfoReceiver.shared.removeEventTrackingExtra()