概要
Piano Publisher Hub For PMP とは、賛同企業様を横断したゼロパーティデータ(会員データ)・1stパーティデータ(行動データ・コンテンツデータ)を主軸としたPMP商品を作成するための枠組みとなります。
本項は、賛同企業様がサイトにタグを実装する際のガイドとなります。
設定の流れ
-
セグメント取得用のPersisted Queryの作成
-
サイトへの実装
セグメント取得用のPersisted Queryの発行
-
セグメントを取得する /profile/user/segment APIをサイト上で実行可能とするためのPersisted Query Idを発行します。
※こちらのIDは個人のアカウントではなく、グループアカウントで作成することを推奨します。異動や退職に伴ってアカウントを削除した場合、誤ってアカウントを削除した場合にこのIDも削除されてしまうためです。
※こちらを発行するためにはそのための機能権限が必要です。Piano Insight ユーザー管理 | ロールと機能 にて権限付与方法をご案内していますので、ユーザー管理者の方に権限付与をご依頼下さい。
Persisted Query IDはAdmin GUI上、もしくはcx.pyコマンドで発行できます。どちらか片方で発行してください。
また、Persisted Query Idを発行するためにはSiteGroup IDが必要となります。SiteGroup IDはInsightにログイン後、貴社の対象サイトが全て含まれるサイトグループを選択後、サイトグループ表示部分横のアイコンをクリックしていただくことでサイトグループIDが表示されます。
-
Admin GUIでの作成方法
Insightにログインし、左上のPiano Insightをクリックし、Adminをクリックします。
APIタブをクリックし、Create a new persisted requestをクリックします。
以下を設定し、Save Changesをクリックします。
Path: /profile/user/segment を選択
Request Data: 以下テキストの<SiteGroup ID>を貴社サイトグループIDに置き換えて入力{ "identities": [{"id": "0", "type": "cx"}], "siteGroupIds": ["<SiteGroup ID>"] }Mutable Fields: “identities“と入力し、右のAddをクリックします。すると下にFieldとしてidentitiesが追加されます
しばらく待つと、Persisted Query一覧にPersisted Query IDが表示されます。
-
cx.py での作成方法
cx.py(コマンドラインツール)を利用できる場合には、以下のコマンドの<SiteGroup ID>を貴社サイトグループIDに置き換えて実行すると、Persisted Query IDが作成されます。
リクエスト:Bash% python cx.py /persisted/create '{ "path": "/profile/user/segment", "request": { "identities": [{"id":"0","type":"cx"}], "siteGroupIds": ["<SiteGroup ID>"] }, "mutable": { "identities": true } }'
レスポンス:"id"の後ろの文字列がPersisted Query ID{ "id": "dc5000a8022e3d29afa36b017faaaaaaaaaaaaaaa" }
サイトへの実装
以下のタグの<PMPセグメント取得用Persisted Query ID>を上記で取得したPersisted Query IDに置き換えて貴社サイトの<head>に挿入してください。
下記<script>タグは必ずpbjs.setConfigよりも上に配置してください。
getUserSegmentIdsForPMP()関数をコールすると、セグメントIDがリスト形式で返却されます。
<script type="text/javascript">
var cX = window.cX = window.cX || {}; cX.callQueue = cX.callQueue || [];
var persistedQueryIdforPMP = "<PMPセグメント取得用Persisted Query ID>";
cX.callQueue.push(["getUserSegmentIds", {persistedQueryId: persistedQueryIdforPMP}]);
function getUserSegmentIdsForPMP() {
return ((window.localStorage.getItem("_cX_segmentInfo")||"").split("/").filter(function(i){return i.indexOf(persistedQueryIdforPMP)==0})[0]||"").replace(/.+_/,"").split(".").filter(function(i){return i.length>0});
}
</script>