Amazon Pinpoint でアプリケーション内のメッセージの送信および取得 - Amazon Pinpoint

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon Pinpoint でアプリケーション内のメッセージの送信および取得

Amazon Pinpoint でアプリケーション内メッセージを作成および送信し、アプリがそれを取得および表示するように設定できます。アプリケーション内メッセージは、高度なカスタマイズができます。ウェブサイトを開いたり、アプリケーション内の特定の場所に移動するためのボタンを配置することができます。背景色や文字色の設定、テキストの配置、ボタンやイメージの追加など、通知に必要な設定を行うことができます。1 つのメッセージだけを送信することも、最大 5 つまでの異なるメッセージを格納するカルーセルを作成することもできです。アプリケーション内のメッセージの概要、アプリケーション内のメッセージテンプレートの作成方法については、『Amazon Pinpoint ユーザーガイド』の「Creating in-app templates」を参照してください。

を使用して AWS Amplify 、Amazon Pinpoint のアプリケーション内メッセージング機能をアプリケーションにシームレスに統合できます。Amplify は、メッセージの取得、メッセージのレンダリング、Amazon Pinpoint への分析データの送信プロセスを自動的に処理することができます。この統合は現在、React Native アプリケーションでサポートされています。詳細については、『Amplify Framework Documentation』の「In-App Messaging」を参照してください。

このセクションでは、アプリケーションのエンドポイントのためのアプリケーション内のメッセージをリクエストする方法と、そのリクエストの結果を解釈する方法について説明します。

エンドポイントのアプリケーション内のメッセージの取得

アプリケーションは GetInAppMessages API を呼び出して、特定のエンドポイントに権限を持つすべてのアプリケーション内メッセージを取得できます。GetInAppMessages API を呼び出す際には、以下のパラメータを指定します。

  • ApplicationId – アプリケーション内のメッセージキャンペーンが関連付けられている Amazon Pinpoint プロジェクトの一意の ID です。

  • EndpointId — メッセージを取得するエンドポイントの一意の ID です。

これらの値を指定して API を呼び出すと、メッセージの一覧が返されます。このオペレーションで生成されるレスポンスの詳細については、「GetInAppMessages API レスポンスの理解」を参照してください。

AWS SDKs を使用して GetInAppMessagesオペレーションを呼び出すことができます。次のコード例には、アプリケーション内のメッセージを取得する関数が含まれています。

JavaScript

別のモジュールでクライアントを作成し、エクスポートします。

import { PinpointClient } from "@aws-sdk/client-pinpoint"; const REGION = "us-east-1"; const pinClient = new PinpointClient({ region: REGION }); export { pinClient };

エンドポイントのアプリケーション内のメッセージを取得します。

// Import required AWS SDK clients and commands for Node.js import { PinpointClient, GetInAppMessagesCommand } from "@aws-sdk/client-pinpoint"; import { pinClient } from "./lib/pinClient.js"; ("use strict"); //The Amazon Pinpoint application ID. const projectId = "4c545b28d21a490cb51b0b364example"; //The ID of the endpoint to retrieve messages for. const endpointId = "c5ac671ef67ee3ad164cf7706example"; const params = { ApplicationId: projectId, EndpointId: endpointId }; const run = async () => { try { const data = await pinClient.send(new GetInAppMessagesCommand(params)); console.log(JSON.stringify(data, null, 4)); return data; } catch (err) { console.log("Error", err); } }; run();
Python
import logging import boto3 from botocore.exceptions import ClientError logger = logging.getLogger(__name__) def retrieve_inapp_messages( pinpoint_client, project_id, endpoint_id): """ Retrieves the in-app messages that a given endpoint is entitled to. :param pinpoint_client: A Boto3 Pinpoint client. :param project_id: An Amazon Pinpoint project ID. :param endpoint_id: The ID of the endpoint to retrieve messages for. :return: A JSON object that contains information about the in-app message. """ try: response = pinpoint_client.get_in_app_messages( ApplicationId=project_id, EndpointId=endpoint_id) except ClientError: logger.exception("Couldn't retrieve messages.") raise else: return response def main(): project_id = "4c545b28d21a490cb51b0b364example" endpoint_id = "c5ac671ef67ee3ad164cf7706example" inapp_response = retrieve_inapp_messages( boto3.client('pinpoint'), project_id, endpoint_id) print(inapp_response) if __name__ == '__main__': main()

GetInAppMessages API レスポンスの理解

GetInAppMessages API オペレーションを呼び出すと、指定されたエンドポイントに権限を持つメッセージのリストが返されます。そして、アプリケーションはレスポンスの値に基づいてメッセージをレンダリングすることができます。

以下は、GetInAppMessages APIを呼び出した際に返される JSON オブジェクトの例です。

{ "InAppMessagesResponse":{ "InAppMessageCampaigns":[ { "CampaignId":"inAppTestCampaign-4c545b28d21a490cb51b0b364example", "DailyCap":0, "InAppMessage":{ "Content":[ { "BackgroundColor":"#f8e71c", "BodyConfig":{ "Alignment":"CENTER", "Body":"This is a sample in-app message sent using Amazon Pinpoint.", "TextColor":"#d0021b" }, "HeaderConfig":{ "Alignment":"CENTER", "Header":"Sample In-App Message", "TextColor":"#d0021b" }, "ImageUrl":"https://example.com/images/thumbnail.png", "PrimaryBtn":{ "DefaultConfig":{ "BackgroundColor":"#d0021b", "BorderRadius":50, "ButtonAction":"CLOSE", "Text":"Dismiss", "TextColor":"#f8e71c" } } } ], "Layout":"MIDDLE_BANNER" }, "Priority":3, "Schedule":{ "EndDate":"2021-11-06T00:08:05Z", "EventFilter":{ "Dimensions":{ "Attributes":{ }, "EventType":{ "DimensionType":"INCLUSIVE", "Values":[ "_session.start" ] }, "Metrics":{ } } } }, "SessionCap":0, "TotalCap":0, "TreatmentId":"0" } ] } }

次のセクションでは、このレスポンスの構成要素に関する詳細について説明します。

InAppMessageCampaigns オブジェクト

InAppMessageCampaigns オブジェクトには、次の属性が含まれます。

属性 説明 設定場所は

CampaignId

メッセージの送信元である Amazon Pinpoint キャンペーンの名前と一意のキャンペーン ID を格納する文字列です。キャンペーン ID の前に名前が付加されます。2 つの値はハイフン (-) で区切られます。

キャンペーンの作成時に Amazon Pinpoint によって自動的に作成されます。

TreatmentId

このメッセージのキャンペーン処理の ID を表す整数値です。キャンペーンに 1 つの処理しかない場合、値は 0 です。

Priority

アプリケーション内メッセージの優先度。1 から 5 までの整数で表され、1 が最も高い優先度、5 が最も低い優先度を表します。

キャンペーン作成手順のステップ 1

InAppMessage

メッセージのレンダリング方法に関する情報を格納する InAppMessage オブジェクト

キャンペーンに指定されたアプリケーション内メッセージテンプレートの内容に基づきます。

Schedule

メッセージの送信日時に関する情報を格納する Schedule オブジェクトです。

キャンペーン作成プロセスのステップ4 (コンソールでキャンペーンを作成した場合) または Schedule オブジェクト (API または SDK を使用してキャンペーンを作成した場合)。

DailyCap

24 時間以内にアプリケーション内のメッセージを表示できる回数を整数で表したものです。

プロジェクトレベルの設定から継承されます。キャンペーンにプロジェクトの設定が上書きされるように設定されている場合、それらの設定が代わりに使用されます。

SessionCap

アプリケーションセッションにおいて、アプリケーション内のメッセージをユーザーに表示できる回数を整数で表したものです。

TotalCap

キャンペーンごとにエンドポイントへ表示できるアプリケーション内のメッセージの合計回数を整数で表したものです。

InAppMessage オブジェクト

InAppMessage オブジェクトには、次の属性が含まれます。

属性 説明 設定場所は

Content

メッセージの内容を記述する InAppMessageContent オブジェクトを含む配列。

キャンペーンに指定されたアプリケーション内メッセージテンプレートの内容に基づきます。

Layout

アプリケーション内のメッセージが受信者の端末にどのように表示されるかを記述する文字列です。可能な値は以下のとおりです。

  • BOTTOM_BANNER — ページの下部にバナーとして表示されるメッセージ。

  • TOP_BANNER — ページの上部にバナーとして表示されるメッセージ。

  • OVERLAYS — 画面全体をカバーするメッセージ。

  • MOBILE_FEED — ページの手前にあるウィンドウに表示されるメッセージ。

  • MIDDLE_BANNER — ページの中央にバナーとして表示されるメッセージ。

  • CAROUSEL — 最大 5 つの一意のメッセージをスクロールできるレイアウト。

HeaderConfig オブジェクト

HeaderConfig オブジェクトには、次の属性が含まれます。

属性 説明 設定場所は

Alignment

ヘッダーのテキストのアライメントを指定する文字列です。指定できる値は LEFTCENTER、および RIGHT です。

キャンペーンに指定されたアプリケーション内メッセージテンプレートの内容に基づきます。

Header

メッセージのヘッダーのテキスト。

TextColor

ヘッダーのテキストの色。16 進数のカラーコードを格納する文字列で表示されます (例: 黒の場合は「#000000」)。

BodyConfig オブジェクト

BodyConfig オブジェクトには、次の属性が含まれます。

属性 説明 設定場所は

Alignment

メッセージの本文のアライメントを指定する文字列です。指定できる値は LEFTCENTER、および RIGHT です。

キャンペーンに指定されたアプリケーション内メッセージテンプレートの内容に基づきます。

Body

メッセージの本文

TextColor

本文のテキストの色。16 進数のカラーコードを格納する文字列で表示されます (例: 黒の場合は「#000000」)。

InAppMessageContent オブジェクト

InAppMessageContent オブジェクトには、次の属性が含まれます。

属性 説明 設定場所は

BackgroundColor

アプリケーション内のメッセージの背景色。16 進数のカラーコードを格納する文字列で表されます (例: 黒の場合は「#000000」)。

キャンペーンに指定されたアプリケーション内メッセージテンプレートの内容に基づきます。

BodyConfig

メッセージの本文の内容に関連する情報を含むBodyConfigオブジェクト。

HeaderConfig

メッセージのヘッダーまたはタイトルに関連する情報を含むHeaderConfigオブジェクト。

ImageUrl

メッセージに表示されるイメージの URL です。

PrimaryBtn

メッセージ内のメインボタンに関する情報を含むInAppMessageButtonオブジェクト。

SecondaryBtn

メッセージ内のセカンダリボタンに関する情報を含むInAppMessageButtonオブジェクト。アプリケーション内のメッセージのテンプレートでセカンダリボタンが指定されていない場合は存在しません。

Schedule オブジェクト

Schedule オブジェクトには、次の属性が含まれます。

属性 説明 設定場所は

EndDate

キャンペーン終了の予定時刻 (ISO 8601 形式) です。

キャンペーン作成プロセスのステップ4 (コンソールでキャンペーンを作成した場合) または Schedule オブジェクト (API または SDK を使用してキャンペーンを作成した場合)。

EventFilter

アプリケーション内のメッセージが表示される要因となったイベントに関する情報です。Amazon Pinpoint アプリケーション内のキャンペーンに一致するイベントを生成すると、メッセージが表示されます。

InAppMessageButton オブジェクト

InAppMessageButton オブジェクトには、次の属性が含まれます。

属性 説明 設定場所は

DefaultConfig

アプリケーション内メッセージのボタンのデフォルト設定に関する情報を含むDefaultButtonConfigオブジェクト。

キャンペーンに指定されたアプリケーション内メッセージテンプレートの内容に基づきます。

Android

Android デバイスでのボタンの動作を指定するOverrideButtonConfigオブジェクト。これは、DefaultConfig オブジェクトで詳述されているデフォルトのボタン設定を上書きします。

IOS

iOS デバイスでのボタンの動作を指定するOverrideButtonConfigオブジェクト。これは、DefaultConfig オブジェクトで詳述されているデフォルトのボタン設定を上書きします。

Web

ウェブアプリケーションでのボタンの動作を指定するOverrideButtonConfigオブジェクト。これは、DefaultConfig オブジェクトで詳述されているデフォルトのボタン設定を上書きします。

DefaultButtonConfig オブジェクト

DefaultButtonConfig オブジェクトには、次の属性が含まれます。

属性 説明 設定場所は

BackgroundColor

ボタンの背景色。16 進数のカラーコードを格納する文字列で表されます (例: 黒の場合は「#000000」)。

キャンペーンに指定されたアプリケーション内メッセージテンプレートの内容に基づきます。

BorderRadius

ボタンの境界線の半径をピクセル単位で整数値で指定します。数値が大きいほど、角が丸くなります。

ButtonAction

受信者がアプリケーション内のメッセージに配置されたボタンを選択したときに発生するアクションを説明する文字列です。可能な値は以下のとおりです。

  • LINK — ウェブ上の移動先へのリンク。

  • DEEP_LINK — アプリケーション内の特定のページへのリンク。

  • CLOSE – メッセージを閉じます。

Link

ボタンの移動先の URL。が であるボタンには存在しません ButtonAction CLOSE

Text

ボタンに表示されるテキスト。

TextColor

ボタンテキストの色。16 進数のカラーコードを含む文字列で表示されます (例: 黒の場合は「#000000」)。

OverrideButtonConfig オブジェクト

OverrideButtonConfig オブジェクトは、アプリケーション内のメッセージテンプレートがオーバーライドボタンを使用している場合にのみ存在します。オーバーライドボタンとは、iOS デバイス、Android デバイス、ウェブブラウザなど、特定のデバイスの種類に応じた設定を持つボタンのことです。

OverrideButtonConfig オブジェクトには、次の属性が含まれます。

属性 説明 設定場所は

ButtonAction

アプリケーション内のメッセージで受信者がボタンを選択した際に発生するアクションです。可能な値は以下のとおりです。

  • LINK — ウェブ上の移動先へのリンク。

  • DEEP_LINK — アプリケーション内の特定のページへのリンク。

  • CLOSE – メッセージを閉じます。

キャンペーンに指定されたアプリケーション内メッセージテンプレートの内容に基づきます。

Link

ボタンの移動先の URL。ButtonActionCLOSE であるボタンには存在しません。

Text

ボタンに表示されるテキスト。

TextColor

ボタンテキストの色。16 進数のカラーコードを含む文字列で表示されます (例: 黒の場合は「#000000」)。