こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。
今回も、かつて個人ブログで書いた記事をこちらに転載します。
アプリ計測で使う、Mobile SDK 4.xについてです。
4.xよりも前のSDKでは、SiteCatalyst時代からおなじみの、s.変数に直接値を入れるやり方で実装出来ました。
s.pageName = "top"; s.prop1 = "main"; s.eVar1 = "man"; s.events = "event1"; s.track();
ところが、SDK4.xからは、Context Dataに入れた値をProcessing Rule(処理ルール)でレポートに入れるというメンドクサイ方法になりました。
Context Data and Adobe Mobile Analytics: Change is Good
こんな風です。
HashMap cdata = new HashMap<String, Object>(); cdata.put("my.section", "main"); cdata.put("my.gender", "man"); cdata.put("my.action", "login"); Analytics.trackState("top", cdata);
みたいに実装して、Processing RulesでContext Dataからそれぞれ任意のレポートに値をコピーする、と。
この方がより直感的だ、と言われてるそうですが、昔ながらのSiteCatalystのインプリに慣れてるので、心地悪い。
あと、Processing RuleだとビーコンをCharlesやBloodhoundで見て目視、という確認がやりづらい。
従来のs変数に直接値を入れるやり方がもう出来ないのか?という訳でもありませんでした。
Processing Rulesがサポートしていないproducts変数や、events変数のシリアライゼーションは”&&”を付けて直接値を代入するやり方です。
Products Variable – Android SDK 4.x for Marketing Cloud Solutions
cdata.put("&&products", "Category;Product;Quantity;Price");
見慣れたproducts変数の構文です。
Event Serialization – Android SDK 4.x for Marketing Cloud Solutions
cdata.put("&&events", "event1:12341234");
お馴染みのイベントシリアライゼーションの書き方です。
というわけでビーコンパラメータ名(変数名ではない)に、”&&”を付けることで、Context Dataではなく、通常のパラメータとして処理されるようです。
Adobe Summit 2016の中の、Mobile App Ninjaのセッションでも裏技として紹介されてましたね。
パラメータ名だとこうなります。
prop1 → c1
eVar1 → v1
HashMap cdata = new HashMap<String, Object>(); cdata.put("&&c1", "main"); cdata.put("&&v1", "man"); cdata.put("&&events", "event1"); Analytics.trackState("top", cdata);
pageNameはtrackStateの第一引数なので仕方ないけどこのまま。
で、ビーコンをログで見るとちゃんとパラメータに入ってますね。
&c. から &.c の間に入るとContext Data扱いになり、Context DataはProcessing Rulesで拾わない限りレポートには出てきません。
で、”&&パラメータ名”という書式でセットすれば、&c. ~ &.c の外につくので、Context Dataにならない。
そのため、Processing Rulesを使わなくても、直接値をセット出来る、という仕組みです。
この”&&パラメータ名”の仕組みを使って直接値をセットすれば、”D=”のDynamic Variablesも使えるので
cdata.put("&&c1", "foobar"); cdata.put("&&v1", "D=c1");
という書式でprop1の値をeVar1にコピーする、おなじみのインプリも可能です。
events変数に数値を入れるカウンタ型を使う時も
cdata.put("&&events", "event2=5");
この書き方で対応します。
弊社ではAndroid/iOSアプリへのAdobe Mobile SDKの実装支援サービスを行っております。
お問い合わせはこちらから
ブログへの記事リクエストはこちらまで