Adobe Analytics

Adobe Analytics: Mobile SDK 4.x でアプリ計測する際の小技

こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。

今回も、かつて個人ブログで書いた記事をこちらに転載します。
アプリ計測で使う、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の第一引数なので仕方ないけどこのまま。
で、ビーコンをログで見るとちゃんとパラメータに入ってますね。
sdk4log
&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の実装支援サービスを行っております。
お問い合わせはこちらから

ブログへの記事リクエストはこちらまで

夏休みのまとめ前のページ

東南アジアのデジタルマーケティング次のページ

ピックアップ記事

  1. 最速で理解したい人のためのIT用語集

関連記事

  1. Adobe Analytics

    Adobe AnalyticsとGoogle Analyticsの違い① セグメントのコンテナの違い…

    こんにちは。CEOの原田です。今回は良く話題に出ながらも情報がまと…

  2. Adobe Analytics

    Adobe AnaltyicsとGoogle Analytics の「生Webビーコン」をBigQu…

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  3. Adobe Analytics

    Adobe Analytics: レガシーs_code.jsのリミッターを解除してeVar76以上を…

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  4. Adobe Analytics

    Adobe Analytics: ランドスケイプの「企業ログ解析データベースAPI」と連携する

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

  5. Adobe Analytics

    購入とは-Adobe Analyticsの指標説明

    今回は購入について説明します。「購入」の下には「購入回数」「購入点数…

  6. Adobe Analytics

    Adobe AnaltyicsとGoogle Analytics の「生Webビーコン」をBigQu…

    こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。…

カテゴリ
最近の記事
  1. dbt Fusion使ってみた
  2. Manusを使ってみたうえでManusに感想ブログを書かせて…
  3. SquadbaseとStreamlitでお手軽アプリ開発
  4. [Snowflake Summit 2025] Snowfl…
  5. [Snowflake新機能]AI_AGGを試してみた
  1. IT用語集

    SQL・クエリ(Query)って何?
  2. プログラミング

    Node.jsでCSVファイル内のダブルクオートで囲まれたカラム内のカンマを除去…
  3. ヒートマップ

    ヒートマップを画像としてキャプチャする
  4. Google Cloud Platform

    Google Compute Engine のLinuxVMにVNC接続する
  5. IT用語集

    DWH(Data Warehouse)、データマート(Data Mart)って何…
PAGE TOP