こんにちは、エクスチュアの權泳東(権泳東/コン・ヨンドン)です。
今回はAdobe AnalyticsのAppMeasurement.jsにおけるs.Util.getQueryParam をいい感じに実装するTipsです。
Omniture時代からSiteCatalystを使い続ける諸兄はご存知であるはずですが、旧s_code.jsで使っていた s.getQueryParam は複数のパラメータを同時に取得する事が出来ました。
/* * s.getQueryParam(p, d, u) * URL: example.com/?cid=123&iid=abc * 結果: 123|abc */ s.campaign = s.getQueryParam('cid,iid','|');
しかし、AppMeasurement.jsにデフォルトで含まれる s.Util.getQueryParam ではそういかず、デリミタは元のURLを区切るために指定するものとして使います。
/* * s.Util.getQueryParam(p, u, d, f) * URL: example.com/?hoge=123|fuga=abc * 結果: abc */ s.campaign = s.Util.getQueryParam('fuga', '', '|');
で、s_code.jsからAppMeasurement.jsに乗り換えた時にこのs.Util.getQueryParamの挙動の違いに違和感があるので、これをいい感じに旧s.getQueryParamっぽく使えるように実装したらこうなりました。
/* * s.getQueryParam for AppMeasurement (旧s.getQueryParam互換) * Usage: s.getQueryParam(p, d, u) * p = パラメータ * d = デリミタ * u = 対象URL */ s.getQueryParam = function(p, d, u) { var iarr = []; var oarr = []; if (p) { iarr = p.split(','); for (var i=0; i<iarr.length; i++) { if (!u) { var utmp = (s.pageURL ? s.pageURL : location.href); u = utmp.split("#")[0]; } oarr.push(s.Util.getQueryParam(iarr[i], u)); } } var dlm = d ? d : ''; return oarr.join(dlm); };
使い方は、旧s_code.js時代のs.getQueryParamと同じです。
当ブログでも実装済みです。
気になる方はソースコード見て真似してください。
※2019年8月21日現在、弊社ブログは未だにAdobe Dynamic TagManagerのままなので、そのうちAdobe Launchに乗り換えます。。
以上、s.Util.getQueryParam をいい感じに古き良きs.getQueryParam互換のプラグイン風に実装する方法についてでした。
弊社はデジタルマーケティングからビッグデータ分析まで幅広くこなすデータ分析のプロ集団です。
AdobeAnalyticsのコンサルティング/導入支援についてのお問合わせはこちらからどうぞ。
ブログへの記事リクエストはこちらまでどうぞ。