

**サポート終了通知:** 2026 年 10 月 30 日に、 AWS は Amazon Pinpoint のサポートを終了します。2026 年 10 月 30 日を過ぎると、Amazon Pinpoint コンソールまたは Amazon Pinpoint のリソース (エンドポイント、セグメント、キャンペーン、ジャーニー、分析) にアクセスできなくなります。詳細については、「[Amazon Pinpoint のサポート終了](https://docs.aws.amazon.com/console/pinpoint/migration-guide)」を参照してください。**注:** SMS、音声、モバイルプッシュ、OTP、電話番号の検証に関連する APIs は、この変更の影響を受けず、 AWS エンドユーザーメッセージングでサポートされています。

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

# Amazon Pinpoint キャンペーンをプログラムで作成する
<a name="campaigns"></a>

アプリケーションとユーザーの間のエンゲージメントを向上するために、Amazon Pinpoint を使用してユーザーの特定のセグメントを対象とするプッシュ通知キャンペーンを作成し管理します。

例えば、キャンペーンにより、最近アプリを実行していないユーザーをアプリケーションに戻るよう招待し、最近購入していないユーザーに特別なプロモーションを提供します。

キャンペーンでは、指定したセグメントのユーザーに向けたメッセージを送信します。キャンペーンではセグメントのすべてのユーザーにメッセージを送信できます。または、メッセージを受け取らないユーザーの割合である保留 (Holdout) を割り当てることもできます。

メッセージを 1 回、または 1 週間に一度など、定期的な間隔で送信するように、キャンペーンのスケジュールを設定できます。ユーザーが都合の悪い時間にメッセージを受信しないように、スケジュールにメッセージを送信しないクワイエットタイムを含めることができます。

別のキャンペーン戦略を試すには、キャンペーンをA/B テストとして設定します。A/B テストには、メッセージまたはスケジュールの 2 つ以上の処理が含まれます。処理によって、メッセージまたはスケジュールに違いを持たせます。ユーザーがキャンペーンに応答すると、キャンペーン分析を表示してそれぞれの処理の効果性を比較できます。

詳細については、「*Amazon Pinpoint REST API ガイド*」の「[キャンペーン](https://docs.aws.amazon.com/pinpoint/latest/apireference/apps-application-id-campaigns.html)」または「*Amazon Pinpoint ユーザーガイド*」の「[キャンペーン](https://docs.aws.amazon.com/pinpoint/latest/userguide/campaigns.html)」を参照してください。

# Amazon Pinpoint 標準キャンペーンを作成する
<a name="campaigns-standard"></a>

標準キャンペーンは、定義したスケジュールに基づいて、指定したセグメントにカスタムのプッシュ通知を送信します。次の例では、 AWS SDK for Javaでキャンペーンを作成する方法を示します。渡すセグメントを作成する例については、「[Amazon Pinpoint でセグメントを構築する](segments-dimensional.md)」を参照してください。

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.pinpoint.PinpointClient;
import software.amazon.awssdk.services.pinpoint.model.CampaignResponse;
import software.amazon.awssdk.services.pinpoint.model.Message;
import software.amazon.awssdk.services.pinpoint.model.Schedule;
import software.amazon.awssdk.services.pinpoint.model.Action;
import software.amazon.awssdk.services.pinpoint.model.MessageConfiguration;
import software.amazon.awssdk.services.pinpoint.model.WriteCampaignRequest;
import software.amazon.awssdk.services.pinpoint.model.CreateCampaignResponse;
import software.amazon.awssdk.services.pinpoint.model.CreateCampaignRequest;
import software.amazon.awssdk.services.pinpoint.model.PinpointException;
```

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.pinpoint.PinpointClient;
import software.amazon.awssdk.services.pinpoint.model.CampaignResponse;
import software.amazon.awssdk.services.pinpoint.model.Message;
import software.amazon.awssdk.services.pinpoint.model.Schedule;
import software.amazon.awssdk.services.pinpoint.model.Action;
import software.amazon.awssdk.services.pinpoint.model.MessageConfiguration;
import software.amazon.awssdk.services.pinpoint.model.WriteCampaignRequest;
import software.amazon.awssdk.services.pinpoint.model.CreateCampaignResponse;
import software.amazon.awssdk.services.pinpoint.model.CreateCampaignRequest;
import software.amazon.awssdk.services.pinpoint.model.PinpointException;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class CreateCampaign {
    public static void main(String[] args) {

        final String usage = """

                Usage:   <appId> <segmentId>

                Where:
                  appId - The ID of the application to create the campaign in.
                  segmentId - The ID of the segment to create the campaign from.
                """;

        if (args.length != 2) {
            System.out.println(usage);
            System.exit(1);
        }

        String appId = args[0];
        String segmentId = args[1];
        PinpointClient pinpoint = PinpointClient.builder()
                .region(Region.US_EAST_1)
                .build();

        createPinCampaign(pinpoint, appId, segmentId);
        pinpoint.close();
    }

    public static void createPinCampaign(PinpointClient pinpoint, String appId, String segmentId) {
        CampaignResponse result = createCampaign(pinpoint, appId, segmentId);
        System.out.println("Campaign " + result.name() + " created.");
        System.out.println(result.description());
    }

    public static CampaignResponse createCampaign(PinpointClient client, String appID, String segmentID) {

        try {
            Schedule schedule = Schedule.builder()
                    .startTime("IMMEDIATE")
                    .build();

            Message defaultMessage = Message.builder()
                    .action(Action.OPEN_APP)
                    .body("My message body.")
                    .title("My message title.")
                    .build();

            MessageConfiguration messageConfiguration = MessageConfiguration.builder()
                    .defaultMessage(defaultMessage)
                    .build();

            WriteCampaignRequest request = WriteCampaignRequest.builder()
                    .description("My description")
                    .schedule(schedule)
                    .name("MyCampaign")
                    .segmentId(segmentID)
                    .messageConfiguration(messageConfiguration)
                    .build();

            CreateCampaignResponse result = client.createCampaign(CreateCampaignRequest.builder()
                    .applicationId(appID)
                    .writeCampaignRequest(request).build());

            System.out.println("Campaign ID: " + result.campaignResponse().id());
            return result.campaignResponse();

        } catch (PinpointException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }

        return null;
    }
}
```

この例を実行すると、IDE のコンソールウィンドウに次のように出力されます。

```
Campaign ID: b1c3de717aea4408a75bb3287a906b46
```

SDK の完全な例については、[「GitHub」](https://github.com/)の「[CreateCampaign.java](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javav2/example_code/pinpoint/src/main/java/com/example/pinpoint/CreateCampaign.java/)」を参照してください。

# を使用して A/B テスト Amazon Pinpoint キャンペーンを作成する AWS SDK for Java
<a name="campaigns-abtest"></a>

A/B テストキャンペーンは標準キャンペーンのように動作しますが、キャンペーンメッセージまたはスケジュールに異なる処理を定義できます。A/B テストには、メッセージまたはスケジュールの 2 つ以上の処理が含まれます。処理によって、メッセージまたはスケジュールに違いを持たせます。ユーザーがキャンペーンに応答すると、キャンペーン分析を表示してそれぞれの処理の効果性を比較できます。

次の例では、 AWS SDK for Javaで A/B テストキャンペーンを作成する方法を示します。

```
import com.amazonaws.services.pinpoint.AmazonPinpointClient;
import com.amazonaws.services.pinpoint.model.Action;
import com.amazonaws.services.pinpoint.model.CampaignResponse;
import com.amazonaws.services.pinpoint.model.CreateCampaignRequest;
import com.amazonaws.services.pinpoint.model.CreateCampaignResult;
import com.amazonaws.services.pinpoint.model.Message;
import com.amazonaws.services.pinpoint.model.MessageConfiguration;
import com.amazonaws.services.pinpoint.model.Schedule;
import com.amazonaws.services.pinpoint.model.WriteCampaignRequest;
import com.amazonaws.services.pinpoint.model.WriteTreatmentResource;

import java.util.ArrayList;
import java.util.List;

public class PinpointCampaignSample {

    public CampaignResponse createAbCampaign(AmazonPinpointClient client, String appId, String segmentId) {
        Schedule schedule = new Schedule()
                .withStartTime("IMMEDIATE");

        // Default treatment.
        Message defaultMessage = new Message()
                .withAction(Action.OPEN_APP)
                .withBody("My message body.")
                .withTitle("My message title.");

        MessageConfiguration messageConfiguration = new MessageConfiguration()
                .withDefaultMessage(defaultMessage);

        // Additional treatments
        WriteTreatmentResource treatmentResource = new WriteTreatmentResource()
                .withMessageConfiguration(messageConfiguration)
                .withSchedule(schedule)
                .withSizePercent(40)
                .withTreatmentDescription("My treatment description.")
                .withTreatmentName("MyTreatment");

        List<WriteTreatmentResource> additionalTreatments = new ArrayList<WriteTreatmentResource>();
        additionalTreatments.add(treatmentResource);

        WriteCampaignRequest request = new WriteCampaignRequest()
                .withDescription("My description.")
                .withSchedule(schedule)
                .withSegmentId(segmentId)
                .withName("MyCampaign")
                .withMessageConfiguration(messageConfiguration)
                .withAdditionalTreatments(additionalTreatments)
                .withHoldoutPercent(10); // Hold out of A/B test

        CreateCampaignRequest createCampaignRequest = new CreateCampaignRequest()
                .withApplicationId(appId).withWriteCampaignRequest(request);

        CreateCampaignResult result = client.createCampaign(createCampaignRequest);

        System.out.println("Campaign ID: " + result.getCampaignResponse().getId());

        return result.getCampaignResponse();
    }

}
```

この例を実行すると、IDE のコンソールウィンドウに次のように出力されます。

```
Campaign ID: b1c3de717aea4408a75bb3287a906b46
```