Adobe Analytics

Adobe Analytics: Legacy s_code.jsからAppMeasurement.jsに乗り換える

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

今まで個人ブログで技術メモを兼ねた記事を書いてましたが、今後は公式ブログに投稿します。

まずは、過去に個人ブログにも書いた、AppMeasurement.jsへの乗り換えについてです。

やった事:

ファイル名はs_code.jsのままで、”DO NOT ALTER BELOW THIS LINE”のコメント行配下の本体を、AppMeasurement.jsの本体に貼りかえるというのが基本。

あと、Mediaモジュールで動画を計測してるので、モジュールをAppMeasurement_Module_Media.js + AppMeasurement_Module_Integrate.jsの内容に貼りかえます。

次にプラグインの互換性についてはここで調べておきます。
https://marketing.adobe.com/resources/help/ja_JP/sc/implement/plugins_support.html

getPageName プラグインが対応していると書いてあるので、そのまま試しましたが、
s.wdがないとかs.flがないなどエラーが出てきて怒られるので、下記のように一部を変更。

  • s.wd を window に置き換える。(もしくはプラグインより上にs.wd=window;という記述を追加する。)
  • s_code.js から s.fl と s.pt を持って来る。

するとこのようになります。

s.getPageName=new Function("u",""
+"var s=this,v=u?u:''+location.href,x=v.indexOf(':'),y=v.indexOf('/',"
+"x+4),z=v.indexOf('?'),c=s.pathConcatDelim,e=s.pathExcludeDelim,g=s."
+"queryVarsList,d=s.siteID,n=d?d:'',q=z<0?'':v.substring(z+1),p=v.sub"
+"string(y+1,q?z:v.length);z=p.indexOf('#');p=z<0?p:s.fl(p,z);x=e?p.i"
+"ndexOf(e):-1;p=x<0?p:s.fl(p,x);p+=!p||p.charAt(p.length-1)=='/'?s.d"
+"efaultPage:'';y=c?c:'/';while(p){x=p.indexOf('/');x=x<0?p.length:x;"
+"z=s.fl(p,x);if(!s.pt(s.pathExcludeList,',','p_c',z))n+=n?y+z:z;p=p."
+"substring(x+1)}y=c?c:'?';while(g){x=g.indexOf(',');x=x<0?g.length:x"
+";z=s.fl(g,x);z=s.pt(q,'&','p_c',z);if(z){n+=n?y+z:z;y=c?c:'&'}g=g.s"
+"ubstring(x+1)}return n");
s.fl=function(x,l){return x?(''+x).substring(0,l):x};
s.pt=function(x,d,f,a){var s=this,t=x,z=0,y,r;while(t){y=t.indexOf(d);
y=y<0?t.length:y;t=t.substring(0,y);r=s[f](t,a);if(r)return r;
z+=y+d.length;t=x.substring(z,x.length);t=z<x.length?t:''}return ''};

あと、 s.getQueryParam じゃなくて、 s.Util.getQueryParam を使うとヘルプに書いてあるので、
とり急ぎ、 s.Util.getQueryParam を旧 s.getQueryParam にコピーしておきます。

s.getQueryParam = s.Util.getQueryParam;

ただしこのやり方では問題が残ります。
旧 s.getQueryParam は、1番目の引数がクエリパラメータ名、2番目がデリミタ、3番目がURLです。
しかし、新 s.Util.getQueryParam は、1番目の引数は同じですが、2番目の引数がURLで、3番目がデリミタです。

そのため、旧s.getQueryParamの第2引数と第3引数を使っている場合は、引数の順番を入れ替える処理を別途実装してやる必要がある、というのを覚えておいてください。
さらに、従来のs.getQueryParamのように、複数の引数をカンマ区切りで同時にセットする事も出来ません。
そこらへんも直す必要があります。
getQueryParam versus Util.getQueryParam

あと、クッキー読み書き関数のs.c_rとs.c_wは、いまのところAppMeasurementでも動くので、そのままにしておいてもOKです。

他のプラグインなどでもs.wdが見つからないというエラーが出てくる事がありますが、s.wdをwindow に置換するなどで回避出来ます。

結論からして、旧s_code用プラグイン類は、FormAnalysis以外は諸々修正すればAppMeasurementでも動作します。

FormAnalysisはDTMのイベントルール設定でForm Submitをトリガーとする事で、似たような実装をする事も出来ます。

弊社ではAppMeasurement乗り換え支援サービスを提供しておりますので、この機会にぜひお問い合わせください。

AppMeasurement.jsアップグレードお問い合わせはこちら

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

ピックアップ記事

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

関連記事

  1. Adobe Analytics

    AdobeAnalyticsの分類インポーターでFTP専用ソフトを使わずFTPインポートする方法

    こんにちは。エクスチュアの杉山です。今回は、AdobeAna…

  2. Adobe Analytics

    PV(ページビュー)とは-Adobe Analyticsの指標説明

    今回はPV(ページビュー)について説明いたします。PV (ページビュ…

  3. Adobe Analytics

    Adobe Analytics: AppMeasurement.jsの実装開発作業に使うツール Ja…

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

  4. Adobe Analytics

    Adobe Analytics:自動で分析してくれる貢献度分析(異常値検出)機能

    こんにちは、CEOの原田です。今回は随分前から公開されてるのに…

  5. Adobe Analytics

    Metabase: カスタムマップで日本地図を追加する

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

  6. Adobe Analytics

    Adobe Analyticsを学ぶ

    Adobe Analyticsを学ぶ -エクスチュアのツール紹介-Ad…

最近の記事

  1. Streamlit in SnowflakeによるStrea…
  2. Streamlitを使った簡単なデータアプリケーション作成ガ…
  3. 生成AI機能を活かしたデータカタログ製品「Secoda」を試…
  4. 回帰分析はかく語りき Part2 重回帰分析
  5. 第14回関西DB勉強会-Snowflake Summit参加…
  1. Mouseflow

    Mouseflowのフィルター機能が変わりました!
  2. ブログ

    インドネシアのデジタルマーケティング
  3. Google Apps Script(GAS)

    GoogleスプレッドシートのデータをGASで整理する【setValue・set…
  4. Tableau

    Tableau Tips〜データソースの置換〜
  5. Adobe Analytics

    adobe analytics Report Builder
PAGE TOP