> ## Documentation Index
> Fetch the complete documentation index at: https://moengage.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# よくあるパーソナライゼーションエラーと FAQ

> ユーザー属性の欠落や Jinja エラーが原因で発生する MoEngage キャンペーンのパーソナライゼーションの失敗をトラブルシューティングし、フォールバックの設定方法を学びます。

パーソナライゼーションの失敗は、MoEngage のデータセットに存在しないユーザー属性またはイベント属性を使用し、フォールバックを設定していない場合に発生します。

## パーソナライゼーションエラー

パーソナライゼーションエラーは、**Error breakdown** テーブルの **Failed to Send** エラーカテゴリで確認できます。パーソナライゼーションエラーの **Name** 列にある **See breakdown** をクリックすると、パーソナライゼーションが失敗したユーザー数と失敗の理由の詳細を表示できます。

<img alt="Personalization Failed.png" src="https://mintcdn.com/moengage/wjYnJKL0xml-g3HM/images/moengage_48279f.png?fit=max&auto=format&n=wjYnJKL0xml-g3HM&q=85&s=0a46e81764df5e8671f271db4dcbe6dd" width="1254" height="344" data-path="images/moengage_48279f.png" />

<img alt="Screenshot 2023-10-03 at 1.53.24 PM.png" src="https://mintcdn.com/moengage/2FjM3dGfEH1CYo8k/images/moengage_6149d0.png?fit=max&auto=format&n=2FjM3dGfEH1CYo8k&q=85&s=2155b9832b8a0c6fc7b77e2459bd1b9d" width="1777" height="570" data-path="images/moengage_6149d0.png" />

*MOE\_NOT\_SEND* タグを使用してカスタム Jinja エラーを設定すると、定義した配信条件を満たさなかった場合に、キャンペーンの分析ページのエラー内訳セクションに指定したメッセージが表示されます。

<img alt="image (5).png" src="https://mintcdn.com/moengage/2kQqTYC5RUPSd8kI/images/moengage_3fdb01.png?fit=max&auto=format&n=2kQqTYC5RUPSd8kI&q=85&s=766bd89e9106b092aaed3684dacba934" width="1756" height="502" data-path="images/moengage_3fdb01.png" />

## パーソナライゼーション失敗分析

*Personalization failure analysis* は、パーソナライゼーションの失敗を引き起こす特定の属性を特定するのに役立ち、その原因に関する詳細なインサイトを提供します。\
パーソナライゼーションエラーは、次のカテゴリに分類できます。

| | |
| - | - |
| エラーカテゴリ | 説明 |
| User Attribute | パーソナライゼーションで使用されるユーザー属性が、システムに存在しない（たとえば、コピー＆ペーストのミス）か、特定のユーザーに存在しないために利用できないことを示します。たとえば、**first\_name** ユーザー属性がパーソナライゼーションで使用され、あるユーザーでその属性が利用できない場合、**User Attribute** エラーになります。 |
| Event Attribute | パーソナライゼーションで使用されるユーザー属性が、システムに存在しない（たとえば、コピー＆ペーストのミス）か、特定のユーザーに存在しないために利用できないことを示します。たとえば、**product\_name** イベント属性がパーソナライゼーションで使用され、あるユーザーでその属性が利用できない場合、**Event Attribute** エラーになります。 |
| Campaign Attribute | パーソナライゼーションで使用されるキャンペーン固有の情報が利用できないことを示します。たとえば、キャンペーンタグがパーソナライゼーションに使用され、キャンペーンタグ属性が欠落している場合、**Campaign Attribute** エラーになります。 |
| Undefined | パーソナライゼーションで使用される属性の値を MoEngage が取得できない場合に発生するエラーを示します。たとえば、プロダクトセット内の特定の製品で **image** 属性が利用できない場合、**Undefined** エラーになります。 |
| Unknown | 上記のカテゴリのいずれにも該当しないエラーを示します。 |
| Custom Error Message | *MOE\_NOT\_SEND* Jinja タグを使用して、コンテンツのパーソナライゼーション条件が満たされない場合の配信失敗の具体的な理由を定義します。これにより、データや属性の問題が原因でターゲットユーザーがメッセージを受信しなかった理由を明確に把握できます。 |

<Info>
  **Failed to Send** の **Personalization Failed** カテゴリに表示される失敗数は、パーソナライゼーションが失敗したユーザーのユニーク数を示します。同じユーザーに複数の失敗が発生し、UI に表示される各失敗カテゴリでカウントされる場合があるため、この数は Personalization failure analysis ポップアップウィンドウに表示される数と異なる場合があります。たとえば、あるユーザーでユーザー属性とイベント属性の両方の失敗が発生した場合、分析ページではその両方のセクションの失敗数にカウントされます。一方、Personalization Failed セクションでは 1 としてカウントされます。
</Info>

<img alt="Personalization Failure Analysis.png" src="https://mintcdn.com/moengage/cFTwc93vQdTanvKi/images/moengage_bd5dac.png?fit=max&auto=format&n=cFTwc93vQdTanvKi&q=85&s=b15a3dc43d0955f63f9c36ac2aecb642" width="768" height="475" data-path="images/moengage_bd5dac.png" />

### パーソナライゼーションの失敗

テンプレート通知とバックアップ通知の両方をパーソナライズしたものの、パーソナライゼーションのフォールバックを追加していないシナリオを考えてみましょう。この場合、テンプレートまたはバックアップのパーソナライゼーションが失敗すると、通知はどのユーザーにも送信されません。これは、テンプレートとバックアップが 1 つのペイロードの一部と見なされるためです。パーソナライゼーションのフォールバックが存在しないため、失敗した場合に MoEngage がユーザーに送信できる代替メッセージがありません。

この問題を回避するには、メッセージにパーソナライゼーションのバックアップを必ず追加してください。

## 内部エラー

MoEngage の内部システムはいくつかのエラーを生成します。これらは、すべてのプラットフォームに送信される Push メッセージに適用されます。

| エラー | 説明 |
| - | - |
| Personalization Failed | Push のパーソナライゼーションが失敗し、フォールバックメッセージを設定していない場合に発生します。MoEngage はユーザーに通知せず、Personalization Failed エラーを生成します。 |

## Jinja および HTML エディターの FAQ

### 動的に生成したテーブルが保存後に正しくレンダリングされないのはなぜですか？

HTML テーブルには厳密な構造階層があります: `<table> > <tbody> > <tr> > <td>`。Jinja の `for` ループが、完全な `<tr>...</tr>` 行を囲むのではなく、`<table>` または `<tbody>` の直下に配置されている場合、メールの HTML エディターはこれを無効なマークアップとして扱い、テンプレートの保存時に Jinja タグを移動または削除して自動修正します。

これが、保存後にバックエンドで Jinja が異なって見える理由であり、結果として得られるテーブルが期待どおりにレンダリングされない理由です。エディターはパーソナライゼーションを破損しているのではなく、無効と判断した HTML を「修正」しているのです。

**正しいパターン:** セルの内容だけでなく `<tr>` 行全体をループで囲み、ループを `<tbody>` 内に配置します。

```text theme={null} theme={null}
<table>
  <tbody>
    {% for product in products %}
    <tr>
      <td>{{ product.name }}</td>
      <td>{{ product.price }}</td>
    </tr>
    {% endfor %}
  </tbody>
</table>
```

<Warning>
  `{% for %}` / `{% endfor %}` タグを、完全な `<tr>...</tr>` 行を囲まずに `<table>` または `<tbody>` の直下に配置しないでください。エディターは無効な位置に配置されたタグを移動または削除するため、動的テーブルが気付かないうちに壊れる可能性があります。
</Warning>

ループの詳細については、[Jinja Templating Language](/docs/ja/user-guide/campaigns-and-channels/getting-started/message-personalization/jinja-templating-language#for) を参照してください。

### リッチエディターで Jinja の条件に TemplateSyntaxError が表示されるのはなぜですか？

スタイル付きのメールおよびプッシュテンプレートに使用されるリッチ（Froala）エディターは、Jinja 内に出現する `>` および `<` 比較演算子を HTML エンコードします（`>` は `&gt;` に、`<` は `&lt;` になります）。これにより、次のようなテンプレートエラーが発生します。

```text theme={null} theme={null}
TemplateSyntaxError in jinja: unexpected char u'&'
```

その結果、パーソナライゼーションのレンダリングが失敗します。

これは、リッチ/スタイル付きエディターで作成されたテンプレートにのみ影響します。基本（非リッチ）エディターやカスタム HTML/ソースビューではエンコード処理が行われないため、同じ Jinja が正しく動作します。

**これを回避するには:**

* `>` / `<` を使用しないように条件を書き換えます。たとえば、代わりに `!=` を使用します。

```text theme={null} theme={null}
{# Avoid #}
{% if UserAttribute['orders']|int > 0 %}

{# Use instead #}
{% if UserAttribute['orders']|int != 0 %}
```

* または、リッチエディターではなく、自動エンコードが適用されないカスタム HTML/ソースビューで Jinja を作成します。

### キャンペーンの保存または送信時に "unexpected char u'\$'" が返されるのはなぜですか？

キャンペーンの保存または送信時に `Error in parsing jinja template format. Error unexpected char u'$' at ...` のようなエラーが表示される場合、コンテンツ内のパーソナライゼーショントークンが URL エンコードされている可能性があります。URL エンコードにより、`{{` 区切り文字は `%7B%7B` に、`$` は `%24` に置き換えられ、デコードすると Jinja が解析できない `{{$` シーケンスになります。

**これを解決するには:** パーソナライゼーショントークンおよびそれを含むリンクは、エディターで提供されるトークンまたはマージタグを使用して、エンコードせずに挿入してください。手動で URL エンコードした値を HTML や href に貼り付けないでください。

詳細については、[Jinja Templating Language](/docs/ja/user-guide/campaigns-and-channels/getting-started/message-personalization/jinja-templating-language#escaping) を参照してください。
