ヘルパー gs-helpers
デフォルトのフォールバック値 default-value
Default Fallback Value ヘルパーは、属性が空または null の場合にデフォルトのフォールバック値を返すために使用されます。 このメカニズムは、プロファイル属性とジャーニーイベントで機能します。
構文
Hello {%=profile.personalEmail.name.firstName ?: "there" %}!
この例では、このプロファイルの firstName 属性が空または null の場合、there という値が表示されます。
条件 if-function
if ヘルパーは、条件付きブロックを定義するために使用されます。
式の評価がtrueを返した場合、ブロックはレンダリングされ、そうでない場合はスキップされます。
構文
{%#if contains(profile.personalEmail.address, ".edu")%}
<a href="https://www.adobe.com/academia">Check out this link</a>
if ヘルパーに続いて、else ステートメントを入力して、同じ条件がfalseの場合に実行するコードブロックを指定できます。elseif ステートメントは、最初のステートメントがfalseを返すかどうかをテストするための新しい条件を指定します。
形式
{
{
{%#if condition1%} element_1
{%else if condition2%} element_2
{%else%} default_element
{%/if%}
}
}
例
-
条件式に基づいて異なるストアのリンクをレンダリングする
code language-sql {%#if profile.homeAddress.countryCode = "FR"%} <a href="https://www.somedomain.com/fr">Consultez notre catalogue</a> {%else%} <a href="https://www.somedomain.com/en">Checkout our catalog</a> {%/if%} -
メールアドレスの拡張子の判断
code language-sql {%#if contains(profile.personalEmail.address, ".edu")%} <a href="https://www.adobe.com/academia">Checkout our page for Academia personals</a> {%else if contains(profile.personalEmail.address, ".org")%} <a href="https://www.adobe.com/orgs">Checkout our page for Non Profits</a> {%else%} <a href="https://www.adobe.com/users">Checkout our page</a> {%/if%} -
条件付きリンクの追加
次の操作では、メールアドレスが「.edu」のプロファイルについては web サイト「www.adobe.com/academia」へのリンク、メールアドレスが「.org」のプロファイルについては「www.adobe.com/org」へのリンク、その他のすべてのプロファイルについてはデフォルトの URL「www.adobe.com/users」へのリンクを追加します。
code language-sql {%#if contains(profile.personalEmail.address, ".edu")%} <a href="https://www.adobe.com/academia">Checkout our page for Academia personals</a> {%else if contains(profile.personalEmail.address, ".org")%} <a href="https://www.adobe.com/orgs">Checkout our page for Non Profits</a> {%else%} <a href="https://www.adobe.com/users">Checkout our page</a> {%/if%} -
オーディエンスメンバーシップに基づく条件付きコンテンツ
code language-sql {%#if profile.segmentMembership.get("ups").get("5fd513d7-d6cf-4ea2-856a-585150041a8b").status = "existing"%} Hi! Esteemed gold member. <a href="https://www.somedomain.com/gold">Checkout your exclusive perks </a> {%else if profile.segmentMembership.get("ups").get("5fd513d7-d6cf-4ea2-856a-585150041a8c").status = "existing"%} Hi! Esteemed silver member. <a href="https://www.somedomain.com/silver">Checkout your exclusive perks </a> {%/if%}
Unless unless
unless ヘルパーを使用して、条件ブロックを定義します。 if ヘルパーとは異なり、式の評価結果が false の場合にブロックがレンダリングされます。
構文
{%#unless unlessCondition%} element_1 {%else%} default_element {%/unless%}
例
メールアドレスの拡張子に基づいてコンテンツをレンダリングする。
{%#unless endsWith(profile.personalEmail.address, ".edu")%}
Some Normal Content
{%else%}
Some edu specific content
{%/unless%}
Each each
each ヘルパーは、配列の反復処理に使用されます。
ヘルパーの構文は{{#each ArrayName}} YourContent {{/each}}です。
ブロック内のキーワード thisを使用して、個々の配列項目を参照できます。配列の要素のインデックスは、{{@index}}を使用してレンダリングできます。
構文
{{#each profile.productsInCart}}
<li>{{this.name}}</li>
{{/each}}
例
{{#each profile.homeAddress.city}}
{{@index}} : {{this}}<br>
{{/each}}
例
ユーザーが買い物かごに入れた商品のリストをレンダリングする。
{{#each profile.products as |product|}}
<li>{{product.productName}} {{product.productRating}}</li>
{{/each}}
each ヘルパーを使用して、カスタムアクション応答から返された配列を繰り返し処理することもできます。 カスタムアクション応答からネストされた配列を繰り返し処理する例について詳しくは、ネイティブチャネルでのカスタムアクション応答の使用を参照してください。With with
with ヘルパーを使用して、template-part の評価トークンを変更します。
構文
{{#with profile.person.name}}
{{this.firstName}} {{this.lastName}}
{{/with}}
with ヘルパーは、ショートカット変数を定義する場合にも使用できます。
例
with は、長い変数名に短い別名を付ける場合にも使用できます。
{{#with profile.person.name as |name|}}
Hi {{name.firstName}} {{name.lastName}}!
Checkout our trending products for today!
{{/with}}
Let let
let 関数を使用すると、式を変数として保存し、後からクエリで使用できます。
構文
{% let variable = expression %} {{variable}}
例
次の例では、買い物かご内の価格が 100~1000 の製品の合計価格を計算できます。
{% let sum = 0%}
{{#each profile.productsInCart as |p|}}
{%#if p.price>100 and p.price<1000%}
{%let sum = sum + p.price %}
{%/if%}
{{/each}}
{{sum}}
中止 abort
abort ヘルパーは、レンダリング中にメッセージ配信に到達すると、メッセージ配信を停止します。
ヘルパーの実行時間を制御するには、{%#if%}などの条件付きブロックを使用します。 abortが実行されると、配信は中止されます。
構文
パラメーター
codedescription例
この例では、emailが存在する場合にレンダリングが続行されます。 条件が一致すると、指定されたcodeおよびdescriptionで配信が中止されます。
JSONを解析 parse-json
parseJson ヘルパーはJSON文字列を解析し、解析されたオブジェクトをテンプレート変数に格納して、パーソナライゼーション式でフィールドに直接アクセスできるようにします。
構文
パラメーター
jsonStrresult例
パスの値 value-at-path
valueAtPath ヘルパーは、データパスの値をテンプレート変数に割り当てます。 オプションとして、インデックスを使用して、配列またはコレクションから特定の要素を抽出できます。
構文
パラメーター
pathidxresult例
URL url
url ヘルパーは、リンクの追跡、URLの短縮、SMS メッセージのコンテンツへのディープリンクの挿入に使用されます。
構文
{{url originalUrl='<your_url>' type='<DEEPLINK>' action='CLICK'}}
パラメーター
originalUrltypeDEEPLINK を使用して、モバイルアプリで特定の画面を開きます。actionCLICK を使用して、リンク上のクリックを追跡します。例
{{url originalUrl='https://www.mybusiness.com/offers/summer-sale' type='DEEPLINK' action='CLICK'}}
データセットの参照 dataset-lookup
datasetLookup ヘルパー関数を式フラグメント内で使用できます。 アクセス権を取得するには、アドビ担当者にお問い合わせください。datasetLookup ヘルパーは、パーソナライゼーション中に Adobe Experience Platform レコードデータセットからデータを取得するので、プロファイルまたはイベントペイロードに保存されていないフィールド値を使用できます。
構文
{{datasetLookup datasetId="datasetId" id="key" result="store" required=false}}
取得されたフィールドは {{result.fieldId}} で参照します。ここで result は result パラメーターに渡す値です。
データセットの有効化、パラメーターの詳細、例、テストについて詳しくは、パーソナライゼーション用の Adobe Experience Platform データの使用を参照してください。
実行メタデータ execution-metadata
executionMetadata ヘルパーを使用すると、カスタムのキーと値のペアを動的にキャプチャして、メッセージ実行コンテキストに保存できます。
- 実行メタデータ関数は、カスタムアクションやインバウンドチャネル(web、コードベースのエクスペリエンス、アプリ内メッセージ、コンテンツカード)ではサポートされていません。
- コンテンツ自体が表示される場合、実行メタデータ関数は表示されません。
構文
{{executionMetadata key="your_key" value="your_value"}}
この構文では、key はメタデータ名を参照し、value は保持するメタデータです。
ユースケース
この関数を使用すると、キャンペーンやジャーニーの任意のネイティブアクションにコンテキスト情報を追加できます。 これにより、トラッキング、分析、パーソナライゼーション、ダウンストリーム処理などの様々な目的で、リアルタイム配信のコンテキストデータを外部システムに書き出すことができます。
例えば、実行メタデータヘルパーを使用して、各プロファイルに送信される各配信に特定の ID を追加できます。 この情報は実行時に生成され、強化された実行メタデータは外部レポートプラットフォームとのダウンストリームの紐付けのためにエクスポートできます。
仕組み
キャンペーンまたはジャーニー内のチャネルコンテンツから任意の要素を選択し、パーソナライゼーションエディターを使用して、この要素に executionMetadata ヘルパーを追加します。
実行時に、次のスキーマの追加と共に、メタデータ値が既存の メッセージフィードバックイベントデータセット に追加されます。
"_experience": {
"customerJourneyManagement": {
"messageExecution": {
"metadata": {
"your_key": "your_value"
}
}
}
}
制限事項
- アクションごとに最大50個のキーと値のペアを渡すことができます。
- メタデータペイロードの合計は、アクションごとに2 KBに制限されます。 2 KBの制限を超えた場合でも、メッセージは配信されますが、キーと値のペアは切り捨てられます。
- アクションから除外されたプロファイルのメタデータは取り込まれません。 プロファイルがメッセージの受信から除外された場合、データセット内のそのプロファイルのメタデータエントリは作成されません。
例
{{executionMetadata key="firstName" value=profile.person.name.firstName}}
この例では、profile.person.name.firstName = “Alex” と想定すると、結果のエンティティは次のようになります。
{
"key": "firstName",
"value": "Alex"
}
暗号化 url-parameter-encryption-helper
Encrypt 関数を使用すると、レンダリング時に任意のエクスプレッション値(通常は、プロファイル属性、トークン、式で作成する文字列化された JSON 構造)を暗号化してから、トラッキングリンクまたはランディングページのクエリパラメーターに書き込むことができます。
URL にプレーンテキストとして表示される値(PII またはその他の機密データを含む)は、リンクを検査または転送する際に読み取れません。 このヘルパーでラップした値のみが暗号化され、残りの URL は変更されません。
ユースケース
このヘルパーを使用すると、レンダリング出力に含める前に、機密プロファイルデータ(PII)を保護できます。
前提条件
管理者は、サンドボックスレベルのキーレジストリに 1 つ以上のアクティブなキーを作成する必要があります。 キーの作成と管理の方法の詳細情報
構文
{{encrypt dataPath keyName="keyName" version="version" result="variableName"}}
用途
このヘルパーは、機密データを暗号化し、その結果をテンプレート変数に保存します。
ヘルパーは、URL デザインと長さの制約に応じて、リンク内の 1 つのパラメーター、複数のパラメーターまたはすべてのパラメーターに適用できます。
- 入力:
dataPath(文字列に解決する必要があるデータ参照)、keyName(暗号化キー識別子)、version(オプションのキーバージョン)、result(暗号化された出力の変数名) - 出力:暗号化された値を、指定した
result変数で使用できるようにします。 - 結果形式:結果変数にドット区切りの文字列が含まれます:
keyName.version.nonce.authTag.cipherText(keyNameとversionを除くすべてのセグメントは、パディングなしで URL が安全な Base64 でエンコードされます)。 - 静的キー要件:
keyNameとversionは静的文字列リテラルにする必要があります(動的参照はサポートされていません)。 - デフォルトのバージョン:
versionパラメーターはオプションです。省略すると、暗号化キーサービスによってデフォルトのバージョンが解決されます
例
{{encrypt profile.person.email keyName="email-key" version="1" result="enc"}}{{enc}}email-key.1.RkFrZU5vbmNlQUJD.T3V0cHV0QXV0aFRhZ0Fh.am9obkBleGFtcGxlLmNvbQ{{encrypt profile.person.name.firstName keyName="pii-key" version="2" result="encName"}}{{encName}}pii-key.2.U29tZVJhbmRvbUlW.QXV0aGVudGljYXRpb25UYQ.Sm9obgガードレール
-
復号は、ランディングページ、アプリ、または API で Journey Optimizer の外部で処理されます。 セキュリティチームと共に、重要なライフサイクルとローテーションを計画することで、履歴ペイロードを必要に応じて復号化できます。
-
失効したキーは新しい暗号化に使用できません。 ローテーションと廃止に関するセキュリティポリシーに従ってください。
-
Encrypt関数を使用してリソースを集中的に使用する暗号化プロセスは、レンダリング時のスループットに影響を与える場合があります。