JANetに反映されているCVデータを、Squad beyondのレポート上にも反映させることが可能です。
Squad beyond上の設定
- アフィリエイトリンクの設置
JANetより取得したアフィリエイトリンクを
配信ページのCTAボタンに設置し
計測機能付きリンク(レポート計測する)に変更します。
- タグの設置
該当ページの「タグ設定」>「JS(head / body)」に連携用JS(本ページ最下部記載)を設置し、右上の「更新」 をクリックします。
- 編集内容を配信ページに反映
Version編集画面の「更新」をクリックします。

JANet 側の設定
上記Squad beyond上の設定が完了しましたら、
JANetのご担当者様へ、以下2点を共有してください。
- Squad beyond への ポストバック設定を実施したい旨
- 上記設定が完了した beyond 配信ページの URL
JANetご担当者様にてCVテストを実施していただきます。
疎通テスト完了後の確認
JANetご担当者様から
疎通テスト完了の連絡がありましたら、
2〜3時間程度待って、Squad beyondのレポート上にCVデータが反映されているかをご確認ください。
CVデータが反映されない場合
CVデータが3時間以上経過しても反映されない場合は、
以下の情報をJANetご担当者様から取得の上、フリーチャットよりお問い合わせください。
- テスト実施日時
- テスト実施時の squadbeyond_uid
- (u= パラメータの値)
- HTTP ステータスコード
連携用JS
▼タグ設定>JS headに以下を設置
<script>
class sbParams {
constructor(selector = 'a[href^=http') {
const linklist = document.body.querySelectorAll(selector);
this.toLinkTargets = Array.prototype.slice.call(linklist, 0);
this.url = new URL(location.href);
this.params = new URLSearchParams(this.url.search);
this.aid = document.querySelector('.js-a-id') ? document.querySelector('.js-a-id').dataset.value || null : null;
this.vid = null;
if (window.sb_visitor_id) {
this.vid = window.sb_visitor_id;
} else if (document.querySelector('.js-v-id') && document.querySelector('.js-v-id').dataset.value) {
this.vid = document.querySelector('.js-v-id').dataset.value;
} else if (this.getCookie('_sb_tu')) {
this.vid = this.getCookie('_sb_tu');
}
}
static async init(selector = 'a[href^=http') {
const SB = new sbParams(selector);
SB.vid = await this.getDatasetVid();
return SB;
}
static async getDatasetVid() {
return new Promise(async (resolve, reject) => {
const el = document.querySelector('.js-v-id');
if (!el) {
reject('.js-v-id missing');
} else {
let vid = el.dataset.value;
if (!vid || vid == "") {
const observer = new MutationObserver((_mutationList, observer) => {
vid = el.dataset.value;
if (vid && vid != "") {
observer.disconnect();
resolve(vid);
}
});
observer.observe(el, {
attributes: true,
attributeFilter: ['data-value']
})
} else {
resolve(vid);
}
}
});
}
getCookie(name) {
const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
if (match) return match[2];
}
assignParams(base, extend) {
const baseParams = [...base.entries()]
.reduce((obj, e) => ({ ...obj, [e[0]]: e[1] }), {});
const extendParams = [...extend.entries()]
.reduce((obj, e) => ({ ...obj, [e[0]]: e[1] }), {});
const joinParams = Object.assign({}, extendParams, baseParams);
return new URLSearchParams('?' + Object.entries(joinParams).map((e) => `${e[0]}=${e[1]}`).join('&'));
}
parameterToLink(fn = ((href) => { return href })) {
this.toLinkTargets.forEach((element) => {
if (element.href.includes('tel:')) return
const href = fn(new URL(element.href));
element.href = href.toString();
});
}
addParameter(href, list) {
list = new URLSearchParams(list);
href.search = this.assignParams(list, href.searchParams).toString();
return href;
}
addParameterToLink(list) {
this.parameterToLink((href) => this.addParameter(href, list));
}
/* Squad beyond test251224_*/
}
</script>
▼JS bodyに以下を設置
<script>
window.addEventListener('load', () => {
const SB = new sbParams();
(async () => {
const SB = await sbParams.init();
SB.addParameterToLink({
'u': SB.vid
});
})();
}, false);
</script>
関連FAQ
▼ Squad beyondのソケット連携仕様書
https://knowledge.squadbeyond.com/improve-ad-effect/integrate-tool/tool#flow5
▼外部ツールのCVをSquad beyondに反映する
https://knowledge.squadbeyond.com/improve-ad-effect/integrate-tool/tool