接客サービスとサポートアクションの間で同時配信制御を行う方法
接客サービスとサポートアクションにはそれぞれ施策の同時配信を制御する機能がありますが、これは接客サービス内・サポートアクション内でのみ有効となります。
そのため、接客サービスAとサポートアクション1を同じページに対して「同時配信を許可しない」設定で配信している場合でも、接客サービスAとサポートアクション1は両方表示されてしまいます。
この記事では、設定を調整することで接客サービスとサポートアクションの間で同時配信制御を行う方法を記載します。
任意の接客サービスを優先して配信する場合の方法
任意の接客サービスが配信されている場合、サポートアクションを強制的に終了することで接客サービスのみが画面上にでている状態を作ります。
以下の手順で設定が可能です。
- 優先したい接客サービスを作成する
- 作成の際の設定は任意のものを記載してください
- 接客サービスのキャンペーンIDをコピーする
- 接客サービス編集画面のURLが「https://admin.karte.io/p/xxxxxx/service/64dxxxxxxxxxxxxxxx/wizard 」とした時の、「64dxxxxxxxxxxxxxxx」の部分がキャンペーンIDに該当します
- サポートアクションを作成する
- 作成の際の設定は任意のものを記載してください
- 配信開始ステップのみ、接客サービスより先に出ないよう秒数経過で2~3秒遅延を入れることを推奨します
- 配信開始ステップに接客サービス配信時に終了する設定を追加する
- 接客サービスを表示(message_open)→message.campaign_id→等しい、で2でコピーしたIDを記載
- 接客サービスを表示(message_open)→message.campaign_id→等しい、で2でコピーしたIDを記載
この設定により、該当の接客サービスが配信された場合にサポートアクションが強制的に終了されます。
これにより、接客サービスを優先した同時配信制御が可能になります。
任意のサポートアクションを優先して配信する場合の方法
接客サービスには配信を途中で終了する機能がないため、Javascriptでの制御を行う必要があります。
以下の手順で対応が可能です。
方法①:サポートアクションの「配信しないユーザー」を利用するケース
- 優先したいサポートアクションを作成する
- 作成の際の設定は任意のものを記載してください
- この際に配信しないユーザーの割合を任意に設定します
- サポートアクションのアクションIDをコピーする
- サポートアクション編集画面のURLが「https://admin.karte.io/rightsupport/support-actions/editor?project=xxx&actionId=yyy 」とした時の、「yyy」の部分がアクションIDに該当します
- 接客サービスを作成する
- 作成の際の設定は任意のものを記載してください
- 配信トリガーの設定を行う
- 以下2つの設定をANDで行います
- サポートアクション配信(rt_sa_delivery)→sa_id→等しい:2のアクションIDを記載
- サポートアクション配信(rt_sa_delivery)→is_conrtol→等しい:false
これにより、サポートアクションの配信しないユーザーに合致したユーザーにのみ接客を配信することが可能です。
別な方法として「サポートアクションが配信されたユーザーをセグメントに入れ、そのセグメントを接客の除外条件に追加する」方法もありますが、この場合配信トリガーがサポートアクション配信後に発火するように調整する必要があります。
方法②:Javascriptを利用するケース
※以下の方法はJavascriptを操作できることが前提となります
- 優先したいサポートアクションを作成する
- 作成の際の設定は任意のものを記載してください
- この際にステップまで作成が必要です
- サポートアクションのアクションID・ステップIDをコピーする
- サポートアクション編集画面のURLが「https://admin.karte.io/rightsupport/support-actions/editor?project=xxx&actionId=yyy 」とした時の、「yyy」の部分がアクションIDに該当します
- ステップIDはステップの3点リーダーからコピーが可能です
- 接客サービスを作成する
- 作成の際の設定は任意のものを記載してください
- 配信トリガー等も任意の設定で構いません
- 接客サービスのアクション編集画面からカスタマイズ→スクリプトで以下のJavascriptを設置する
※設置すべき箇所は接客サービスにより異なる場合があります
widget.hide();
// アクションIDとステップID部分にそれぞれコピーした値を入れます // ex. アクションID: xxx, ステップID: yyyの場合、'#karte-issues-action-root-xxx-yyy'
var shadowRootId = `karte-issues-action-root-アクションID-ステップID'; var waitShadowDOMOfSupportAction = setTimeout(function(){ var ShadowDOMOfSupportAction = document.getElementById(shadowRootId); if (!ShadowDOMOfSupportAction) { widget.show(); return; } idOfSupportAction = ShadowDOMOfSupportAction.shadowRoot.querySelector('#rs_sa'); if (!idOfSupportAction || !idOfSupportAction.innerText) { widget.show(); } }, 1 * 1000);// 配信後1秒経ったら表示判定を実施
これにより、接客サービスは常時配信しているが画面上は非表示になっており、サポートアクションが配信されていなかった場合表示されるという挙動を実現できます。