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. Adobe Analytics

    Adobe AEP SDKをTypeScriptで開発したReactNativeアプリに実装する

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

  2. Adobe Analytics

    Adobe AEP SDK: リバースプロキシを使ったアプリ計測検証方法

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

  3. Adobe Analytics

    Adobe Summit 2020レポート: Customer Journey Analytics:…

    こんにちは。エクスチュアインターン生の畝川(せがわ)です。今回…

  4. Adobe Analytics

    Azure DatabricksでAdobe AnalyticsのDatafeedを分析する

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

  5. Adobe Analytics

    Adobe AnalyticsとGoogle Analyticsの違い③ カスタム計測のされ方の違い…

    こんにちは。CEOの原田です。今回もAAとGAの違いを述べていきま…

  6. Adobe Analytics

    Adobe Analytics: DatafeedをGoogle BigQueryにロード(2019…

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

最近の記事

  1. databricksのnotebookを使ってみよう その1…
  2. databricks:GCPで利用を開始する
  3. KARTE「オフラインデータをオンライン接客に活用する」
  4. ELB (ALB・NLB・CLB) をサクッと学ぶ
  5. Direct Connect vs Site to Site…
  1. Adobe Analytics

    Adobe AnaltyicsとGoogle Analytics の「生Webビ…
  2. Google BigQuery

    Treasure DataからBigQueryにデータを移動させる方法
  3. Google Cloud Platform

    Looker: LookerbotをGoogle Cloud Platformで…
  4. Adobe Analytics

    Adobe Analytics:セグメントの落とし穴:滞在時間がおかしくなる
  5. Adobe Analytics

    Adobe AnalyticsからDWHレポートをGoogle Cloud St…
PAGE TOP