カスタムチャネルの基本を学ぶ gs-custom-channel
Adobe Campaignでは、カスタムの外部チャネルまたは API チャネルをサードパーティと統合して作成できます。 その後、これらのチャネルに基づいて配信を調整および実行できます。
配信の作成と送信は、クライアントコンソールと web UI の両方で実行できます。ただし、カスタムチャネル設定は、クライアントコンソールでのみ実行されます。
カスタムチャネルに基づいて配信を作成して送信する方法については、この ページ を参照してください。
クライアントコンソールで新しいカスタムチャネルを設定する手順を以下に示します。 次の手順は、カスタム外部チャネルと API チャネルに共通です。
カスタム API チャネルには、追加の設定が必要です。詳細情報
スキーマの設定 configure-schema
まず、スキーマを設定して、使用可能なチャネルのリストに新しいチャネルを追加する必要があります。
-
Campaign エクスプローラーから、管理/設定/データスキーマを選択します。
-
スキーマ拡張を作成して、新しいチャネルで messageTypeenumeration を拡張します。
例:
code language-none <enumeration basetype="byte" default="mail" label="Channel" name="messageType"> <value desc="My Webpush" img="ncm:channels.png" label="My Webpush" name="webpush" value="122"/> </enumeration> {modal="regular"}
新しい外部アカウントの作成 create-ext-account
次に、新しいルーティング外部アカウントを作成する必要があります。
-
Campaign エクスプローラーから、管理/プラットフォーム/外部アカウントを選択します。
-
新しい外部アカウントを作成します。
-
チャネルを選択して、配信モードを変更します。 カスタム外部チャネルの場合は「外部」を選択し、カスタム API チャネルの場合は「一括」を選択します。
{modal="regular"}
新しい配信テンプレートの作成 create-template
次に、新しいチャネルに関連付ける新しいテンプレートを作成します。
-
Campaign エクスプローラーから、リソース/テンプレート/配信テンプレートを選択します。
-
新しいテンプレートを作成します。
-
「プロパティ」をクリックし、適切なフォルダーとルーティングを選択します。
{modal="regular"}
新しいチャネルが使用できるようになりました。このチャネルに基づいて配信を作成および実行できます。
カスタム API の追加設定 api-additional
カスタム API チャネルを設定するための主な追加手順を以下に示します。
スキーマの拡張 api-additional-schema
クライアントコンソールから、カスタムチャネルに必要なすべての追加プロパティと共に 配信 スキーマを拡張します。
スキーマ拡張について詳しくは、この ページ を参照してください。
カスタム画面定義の設定 api-additional-screen
Campaign web UI で、カスタム画面定義を設定します。
プレビューの設定 api-additional-preview
この設定はオプションです。 Web UI のプレビューをアクティブにする場合、配信シミュレーション画面で、クライアントコンソールに専用の JSSP を設定する必要があります。
Web UI の配信シミュレーション画面で「プレビューを開く」をクリックすると、URL で次のパラメーターが渡されます。
https://adobe.campaign.adobe.com/cus/webPushMessagePreview.jssp?deliveryId=%40ToPzTurO9aGzQxYcMArBbA%3D%3D&id=%40oF8Fi17txuLmtiOFj4OIjQ%3D%3D
deliveryId:配信識別子id:プロファイル識別子
クライアントコンソールで、管理/設定/動的JavaScriptページ を選択し、新しい JSSP を作成します。 取得する必要のあるパラメーターの例を次に示します。
<%@ page import="xtk:shared/nl.js"
%><%
NL.require("/nl/core/shared/core.js")
.require('/nl/core/jsspcontext.js')
.require('/nl/core/shared/dataTypes.js')
.require('/nl/core/schema.js');
//response.setContentType("text/plain");
var parameters = request.parameters;
var deliveryId = decryptString(parameters.deliveryId);
var oldUserContext = logonEscalation("neolane")
var delivery = xtk.queryDef.create(<queryDef schema="nms:delivery" operation="getIfExists">
<select>
<node expr="[WebpushParameters/@richMediaOptions]" alias="@richMediaOptions"/>
<node expr="[WebpushParameters/@mediaUrlInfo]" alias="@mediaUrlInfo"/>
<node expr="[WebpushParameters/@WebpushMessageType]"/>
</select>
<where>
<condition expr={"@id = " + NL.XTK.toXTKString(deliveryId)}/>
</where>
</queryDef>).ExecuteQuery();
// Restore previous context
logonWithContext(oldUserContext)
%>
<!DOCTYPE html ...
技術的実装 api-additional-technical
カスタムチャネルに応じて、外部アカウント、ターゲットマッピング、API 用 JavaScript コードなど、アプリケーションの他の部分を設定する必要があります。