> ## 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.

# Content APIs

> MoEngage の Content APIs を使用して、商品のおすすめやクーポンなどの動的データを送信時に取得し、高度にパーソナライズされたキャンペーンを配信します。

# 概要

Content APIs を使用すると、高度にパーソナライズされたマーケティングキャンペーンを作成できます。Content APIs は、メッセージが送信される瞬間に、商品のおすすめ、クーポン、ユーザーの好みなどの動的データを取得します。これにより、各受信者は自分専用にカスタマイズされたコンテンツを受け取ることができ、一般的なキャンペーンと比べて[エンゲージメント率とコンバージョン率が大幅に向上](https://www.moengage.com/blog/personalized-push-notification-marketing-strategy/)します。マーケターやプロダクトマネージャーは、Content APIs を使用してタイムリーで関連性の高いメッセージを配信し、カスタマーエクスペリエンスを向上させています。

たとえば、ユーザーがフライトを予約した場合、Dynamic Content APIs を使用して、フライト予約から数時間以内に目的地のホテル宿泊オファーを記載したメールを送信できます。API ではユーザーの宿泊の好みを考慮できます。

<img src="https://mintcdn.com/moengage/E3HJVtaUzhrzFckK/images/moengage_93d680.png?fit=max&auto=format&n=E3HJVtaUzhrzFckK&q=85&s=316555a70681c38519294ac4e867b123" alt="pic3.png" width="385" height="508" data-path="images/moengage_93d680.png" />

このようなターゲットを絞った、関連性の高いタイムリーなコミュニケーションは、コンバージョンを促進し、アップセルやクロスセルの機会を見つけるのに役立ちます。

ユーザーがショッピングカートに商品 (バリのホテルの部屋など) を追加したものの購入を完了しなかった場合、Content API によってメールをトリガーできます。このメールで取引の完了を促し、類似のホテルをおすすめします。このようなターゲットを絞った、文脈に沿ったパーソナライズされたメールは、ビジネスの成長を目指すマーケターにとって非常に便利なツールです。

<img src="https://mintcdn.com/moengage/iCae3l_a7eOJMTbz/images/moengage_1f22ff.png?fit=max&auto=format&n=iCae3l_a7eOJMTbz&q=85&s=75bbe482ba89d83676cc6ba586e44793" alt="ContentAPIExample.png" width="437" height="1033" data-path="images/moengage_1f22ff.png" />

## 始める前に

Content APIs を効果的に使用するには、以下を満たしていることを確認してください。

* API とその仕組みに関する基本的な理解 (開発チームと協力することもできます)。
* MoEngage でのキャンペーン作成に関する知識。
* 高度なコンテンツパーソナライゼーションのための JINJA テンプレート言語に関する知識。

<Info>
  API エンドポイントが Virtual Private Cloud (VPC) 内にある場合、またはパブリックにアクセスできない場合は、ワークスペースのリージョンに応じて[これらの MoEngage IP](/docs/ja/user-guide/settings/account/security/ip-whitelisting-in-moengage) をホワイトリストに登録する必要があります。
</Info>

# MoEngage で Content APIs を使用する

MoEngage は、リッチでパーソナライズされたタイムリーなメッセージを顧客に配信するのに役立ちます。キャンペーンで Content APIs を使用する一般的な手順は次のとおりです。

1. MoEngage で外部 API を設定します (技術的なステップ)。
2. API で取得したデータを使用してパーソナライズされたキャンペーンを作成します (マーケティングのステップ)。
3. キャンペーンを実行してモニタリングします。

<img src="https://mintcdn.com/moengage/QVZKszouQuxXOzFr/images/moengage_1adddf.png?fit=max&auto=format&n=QVZKszouQuxXOzFr&q=85&s=40c210981b21959bffcdb80e927cdd60" alt="Picture1.png" width="1607" height="193" data-path="images/moengage_1adddf.png" />

## ステップ 1: Content API を追加する

MoEngage キャンペーンで使用する API を設定するには、[Content API を追加する](/docs/ja/user-guide/settings/advanced-settings/add-a-content-api)を参照してください。

**注**: Content APIs を使用したキャンペーンのパーソナライズはマーケターにとって強力なツールですが、MoEngage 内でのこれらの API の初期設定には技術的な詳細が伴うことがよくあります。API を設定するには、開発チームとの協力が必要になる場合があります。API が設定されると、マーケターは Jinja を使用して、取得したデータをキャンペーンで活用できます。

## ステップ 2: キャンペーンで Content APIs を使用する

技術チームが Content API を設定してテストしたら、コンテンツ内に API 呼び出しが埋め込まれた既存のコンテンツテンプレートを使用してキャンペーンの作成を開始できます。これらのキャンペーンには、必要な書式設定、セグメンテーション、トリガースケジュールとともに、さまざまな SKU (この場合はホテル) のプレースホルダーを含めることができます。API から取得したデータをキャンペーンメッセージに挿入するには、Jinja テンプレート言語を使用します。

Content APIs は、次のチャネルを使用して送信されるキャンペーンに追加できます。

* [Push (Mobile Push および Web Push)](/docs/ja/user-guide/campaigns-and-channels/mobile-push/create/personalize-push-campaigns)
* [Email](/docs/ja/user-guide/campaigns-and-channels/email/create/personalize-email-content)
* [SMS](/docs/ja/user-guide/campaigns-and-channels/sms-mms-and-rcs/sms/personalize-sms-campaign)
* [On-Site Messaging](/docs/ja/user-guide/campaigns-and-channels/on-site-message/create/personalization-of-osm-content)
* [In-App](/docs/ja/user-guide/campaigns-and-channels/in-app-message/create/create-in-app-campaign)
* [WhatsApp](/docs/ja/user-guide/campaigns-and-channels/whatsapp/create/personalize-whatsapp-campaign)
* [Connectors](/docs/ja/user-guide/campaigns-and-channels/connectors/create/create-a-connector-campaign)

Content APIs を使用したコンテンツのパーソナライズ (つまり、取得したデータで Jinja を使用する方法) の詳細については、[Content APIs を使用してコンテンツをパーソナライズする](/docs/ja/user-guide/campaigns-and-channels/getting-started/message-personalization/personalize-content-using-content-apis)を参照してください。

# Content API の例

マーケターが、メールキャンペーンで特定の地域のユーザーをターゲットにするために、天気関連の情報を使用したいと考えているとします。以下の例では、E コマース企業のマーケターが、ロンドンでプロモーションを行っている秋物商品 (スカーフ、ブーツ、コートなど) の売上を、メールキャンペーンの送信によって伸ばしたいと考えています。マーケターは、ロンドンの天気情報を取得する Content API を利用し、キャンペーン作成時にコンテンツセクションに組み込みます。

<img alt="PersonalizedContentAPIPreview_copy.png" src="https://mintcdn.com/moengage/xjBZUVmmH3jDrySH/images/moengage_c38165.png?fit=max&auto=format&n=xjBZUVmmH3jDrySH&q=85&s=996190078de7eb4cd0eb50a272ec5d86" style={{ width:"57%" }} width="1172" height="1128" data-path="images/moengage_c38165.png" />

## ステップ 1: サンプルの Content API を設定する

この天気の例を含め、Content API を設定するには、MoEngage が外部ソースに接続してデータをリクエストする方法を指定する必要があります。そのためには、エンドポイント、必要なパラメーター (API キーや位置識別子など)、返されるデータの構造に関する外部 API のドキュメントを理解する必要があります。

**注:** この例では MoEngage での設定手順を説明していますが、通常は開発者または技術チームのメンバーがこの設定を担当し、外部 API (この場合は OpenWeatherMap) のすべての技術要件が満たされるようにします。

MoEngage 内で Content API を設定するには、次の手順を実行します。

1. MoEngage UI の左側のナビゲーションメニューで、**Settings** > **Advanced Settings** > **Content API** に移動します。
2. 右上隅の **+ Add content API** をクリックします。Add content API ペインが表示されます。
3. ステップ 1 の **Add details** で、API を設定します。\
   ここでは、天気 API を使用して天気の詳細を取得する次の API を使用しています。この API は、APPID (使用している天気 API のアプリケーション ID で、サードパーティのサイトでホストされています) と都市名の 2 つのパラメーターを受け取ります。
   1. **API name**: API の名前を入力します。例: Weather。
   2. **Method**: メソッドを選択します。
   3. **Url**: API の URL を入力します。例: `http://samples.openweathermap.org/data/2.5/weather`\
      **注**: これはサンプル URL です。ライブデータを使用する場合は、本番環境の OpenWeatherMap エンドポイントを使用してください。
   4. 渡すパラメーターを入力します。
      * この例では、追加するパラメーターは都市名 (OpenWeatherMap の場合は `q`) と APPID (`appid`) です。都市名は静的な値 (例: "London,uk") にすることも、Value テキストボックスに '@' を入力して属性を選択することで、ユーザー属性からパーソナライズして取得することもできます。
      * ユーザーの都市は、キャンペーン送信時にパーソナライゼーションを使用して取得されます (パーソナライゼーションを使用してユーザー属性 city を選択すると、値のテキストフィールドには **`{{UserAttribute['LastKnownCity']}}`** と表示されます)。

        <img src="https://mintcdn.com/moengage/t_8awpRKFC9RNHlT/images/moengage_a8a44c.png?fit=max&auto=format&n=t_8awpRKFC9RNHlT&q=85&s=a3fe7e16496da84d7a4471fb6d7e77f2" alt="Screenshot 2025-10-21 at 9.18.25 AM.png" width="1272" height="1308" data-path="images/moengage_a8a44c.png" />
4. **Save** をクリックします。ステップ 2 の **API response** に移動します。
5. **Mask PII fields** で **Yes** を選択します。\
   MoEngage のログや UI に表示される API レスポンスの PII フィールドをマスクするには、PII マスキングで **Yes** を選択し、情報をマスクしたいフィールド名を選択します。Content API の出力から PII 値をマスクできるようになりました。詳細については、[こちら](/docs/ja/user-guide/data/privacy/personal-data-or-personally-identifiable-information-pii/pii-masking-on-personalised-preview)を参照してください。

   <img src="https://mintcdn.com/moengage/CaPmX0z_ys8cr0ms/images/moengage_09c3ee.png?s=b8d7e36fe102105dc4df7461be3c0567" alt="contentAPIgifff.gif" width="714" height="806" data-path="images/moengage_09c3ee.png" />
6. **Done** をクリックします。Content API が保存されると、Content API の検索リストに追加されます。これで、任意のキャンペーンのコンテンツ作成に使用できるようになります。

## ステップ 2: Content API をテストする

Content API をテストして、正しいデータを取得できることを確認します。

1. Content API ページで、Content API 画面の検索リストから作成した Content API (例: "Weather") をクリックします。
2. 行末の省略記号アイコン <Icon icon="ellipsis-stroke-vertical" size={32} /> をクリックし、**Test** をクリックします。

   <img src="https://mintcdn.com/moengage/B1ZqBU-ISgaoSx_O/images/moengage_5815c1.png?fit=max&auto=format&n=B1ZqBU-ISgaoSx_O&q=85&s=e2a06497c637f04671e4ce9d770ec55c" alt="TestOption.png" width="2022" height="200" data-path="images/moengage_5815c1.png" />
3. Test content API ペインで、パラメーターの値を入力します (例: city には "London,uk"、"appid" には有効な API キー)。
4. 右下隅の **Test** をクリックします。パラメーターが設定済みの Content API に送信され、生成されたレスポンスが表示されます。

   <img src="https://mintcdn.com/moengage/eF2J43N9Ckga5Apm/images/moengage_315cd3.png?s=39c98efce2565370a180f5f525eb636a" alt="gifscontentAPI2.gif" width="636" height="812" data-path="images/moengage_315cd3.png" />

   **注:** この例では、都市名に静的パラメーターを指定して Content API を使用しています。
5. この API の JSON レスポンス (ロンドンについて OpenWeatherMap への呼び出しが成功したと仮定) を以下に示します。

   <CodeGroup>
     ```json JSON wrap theme={null}
     {
     "weather": [
     {
     "description": "light intensity drizzle"
     }
     ],
     "coord": {
     "lat": 51.51,
     "lon": -0.13
     },
     "base": "stations",
     "dt": 1485789600,
     "main": {
     "pressure": 1012,
     "temp_min": 279.15,
     "temp_max": 281.15,
     "temp": 280.32,
     "humidity": 81
     },
     "id": 2643743,
     "wind": {
     "speed": 4.1,
     "deg": 80
     },
     "cod": 200
     }
     ```
   </CodeGroup>

このレスポンスには、説明、風速、湿度、気温などの詳細が含まれています。この例では、天気の説明は "light intensity drizzle" です。このレスポンスを JINJA で解析して、コンテンツ作成に使用できます。

## ステップ 3: キャンペーンコンテンツで Content API を使用する

1 回限りのメールキャンペーンを作成し、ターゲットセグメントを選択して、コンテンツ作成段階 (キャンペーン作成のステップ 2) で次の手順を実行します。

1. 目的のテンプレートを選択します。この例では、秋物商品のおすすめを含む E コマーステンプレートを選択しました。

   <img src="https://mintcdn.com/moengage/2FjM3dGfEH1CYo8k/images/moengage_67997f.png?fit=max&auto=format&n=2FjM3dGfEH1CYo8k&q=85&s=041b078d71cfe7a80b549ce9703897c1" alt="Step2_ChooseTemplate.png" width="2371" height="1451" data-path="images/moengage_67997f.png" />
2. テキストエリアにコンテンツを入力します。
3. このメールキャンペーンでは、次のサンプルテキストを使用しました。

   *`"The weather is inclement and the forecast for the next few days is <add content API call and parse the response to get the description detail from the API>.`*

   *Why venture out for shopping when you can take a look at our top picks for you from the cozy confines of your home?"*
4. 次の JINJA コードを使用して、'Weather' Content API を呼び出します。

   ```text theme={null}
   {%set weatherAPI = ContentApi.Weather({ ({"params":{"q":"London,uk","appid":""}, "static_params":{},"dynamic_params":{},"request_body":{}}) }) %}
   ```

   この JINJA コードは、Content API からの JSON レスポンスを `weatherAPI` 変数に割り当てます。
5. `weatherAPI` 変数から天気の説明を抽出するには、次の JINJA コードを使用します。

   ```text theme={null}
   {% for weather in weatherAPI.weather %} {{weather.description}} {% endfor %}
   ```

   このコードは、JSON レスポンスの "weather" 配列を反復処理し、"description" フィールドを出力します。
6. 商品のおすすめやその他の必要なコンテンツを追加します。エディターの右上隅にある **Preview** をクリックします。プレビュー画面が開きます。

   <img src="https://mintcdn.com/moengage/wIFGWsQFEjsz2j4v/images/moengage_e1e028.png?fit=max&auto=format&n=wIFGWsQFEjsz2j4v&q=85&s=8e39519661c7eff419c1b8ed704b6661" alt="BasicPreview.png" width="2817" height="1491" data-path="images/moengage_e1e028.png" />
7. 上部のペインで **Personalized** タブをクリックすると、パーソナライズされたコンテンツが表示されます。\
   **注:** この例では、ユーザー固有のパーソナライゼーションは追加していません。ただし、以下に示すように、Content API が実行され、天気情報が取得されてコンテンツで使用されます。ユーザー属性をパーソナライズした場合、それらは選択したキャンペーンセグメントからランダムに選ばれたユーザーについて取得されます。詳細については、[パーソナライゼーションの概要](/docs/ja/user-guide/campaigns-and-channels/getting-started/message-personalization/overview)を参照してください。
   <img alt="ContentAPI_PresonlizedPreview.png" src="https://mintcdn.com/moengage/prFQLkdcYp4xSt9t/images/moengage_67f6e8.png?fit=max&auto=format&n=prFQLkdcYp4xSt9t&q=85&s=dc74c278fd416245c6f86f89ff71c494" width="2815" height="1498" data-path="images/moengage_67f6e8.png" />
8. キャンペーンの次のステップで配信スケジュールと目標を選択し、キャンペーンを公開します。

# よくある質問

<Accordion title="Content APIs にはリトライメカニズムがありますか？">
  はい。Content API の呼び出しがタイムアウトにより失敗した場合、MoEngage はリクエストを最大 3 回リトライします。API のタイムアウト上限は最大 5 秒です。
</Accordion>

<Accordion title="MoEngage キャンペーンはクライアントの Content APIs をどのように呼び出しますか？">
  MoEngage は、キャンペーン内のユーザー総数を複数のバッチに分割し、それらを並列に処理します。各バッチ内では、API 呼び出しは順次行われます。

  **例:** C1 (100 万ユーザー) と C2 (200 万ユーザー) の 2 つのキャンペーンが同時に開始されるとします。バッチサイズが 500 の場合、両方のキャンペーンのバッチ総数は (1M + 2M) / 500 = 6000 バッチです。API 呼び出しに 100 台のマシンを使用し、各マシンに 10 個のプロセスがある場合、1000 件の API 呼び出しを並列に送信できます。500 件の各バッチの呼び出しは順次行われますが、常に 1000 件の API 呼び出しが並列に実行されます。

  **注:** バッチサイズと使用されるマシンの最大数はチャネルによって異なります。この例は、MoEngage が Content API 呼び出しを行う仕組みを示すものであり、チャネルの制限を規定するものではありません。
</Accordion>

<Accordion title="Content APIs で OAuth を有効にするにはどうすればよいですか？">
  OAuth を有効にするには、カスタマーサクセスマネージャーまたは MoEngage サポートチームにお問い合わせください。
</Accordion>

<Accordion title="MoEngage は OAuth のトークンを取得するために任意の API を呼び出せますか？">
  Auth Token サービスは、Authorization Code グラントタイプと Client Credential グラントタイプの API をサポートしています。詳細については、[Application Grant Types](https://auth0.com/docs/get-started/applications/application-grant-types) を参照してください。
</Accordion>

<Accordion title="トークンのタイムアウトはどのように管理しますか？">
  認証に使用する API は、レスポンスにトークンの有効期限を含める必要があります。この有効期限は、秒、分、時間、または正確なエポックタイムスタンプで指定できます。MoEngage はこの情報を使用して、トークンの更新を自動的に管理します。
</Accordion>

さらにサポートが必要な場合は、MoEngage のカスタマーサクセスマネージャー (CSM) またはサポートチームにお問い合わせください。
