

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Membuat atribusi metrik Amazon Personalisasi
<a name="creating-metric-attribution"></a>

**penting**  
 Setelah Anda membuat atribusi metrik dan merekam peristiwa atau mengimpor data massal tambahan, Anda akan dikenakan CloudWatch biaya bulanan per metrik. Untuk informasi tentang CloudWatch harga, lihat halaman [ CloudWatch harga Amazon](https://aws.amazon.com/cloudwatch/pricing/). Untuk berhenti mengirim metrik ke CloudWatch, [hapus atribusi metrik](deleting-metric-attribution.md). 

Untuk mulai membuat laporan metrik, Anda membuat atribusi metrik dan mengimpor data interaksi. Saat membuat atribusi metrik, Anda menentukan daftar jenis peristiwa yang akan dilaporkan. Untuk setiap jenis peristiwa, Anda menentukan fungsi yang diterapkan Amazon Personalize saat mengumpulkan data. Fungsi yang tersedia termasuk `SUM(DatasetType.COLUMN_NAME)` dan`SAMPLECOUNT()`. 

 Misalnya, Anda mungkin memiliki aplikasi streaming video online dan ingin melacak dua metrik: rasio klik-tayang untuk rekomendasi, dan total panjang film yang ditonton, di mana setiap video dalam kumpulan data Item menyertakan atribut. `LENGTH` Anda akan membuat atribusi metrik dan menambahkan dua metrik, masing-masing dengan jenis dan fungsi peristiwa. Yang pertama mungkin untuk jenis `Click` acara dengan `SAMPLECOUNT()` fungsi. Yang kedua mungkin untuk jenis `Watch` acara dengan `SUM(Items.LENGTH)` fungsi. 

Anda dapat menerapkan `SUM()` fungsi hanya ke kolom numerik kumpulan data interaksi Item dan Item. Untuk menerapkan `SUM()` fungsi ke kolom dalam kumpulan data Item, Anda harus terlebih dahulu mengimpor metadata item.

 Anda dapat membuat atribusi metrik dengan konsol Amazon Personalize AWS Command Line Interface, AWS atau SDKS.

**Topics**
+ [Membuat atribusi metrik (konsol)](#create-metric-attribution-console)
+ [Membuat atribusi metrik ()AWS CLI](#create-metric-attribution-cli)
+ [Membuat atribusi metrik ()AWS SDKs](#create-metric-attribution-sdk)

## Membuat atribusi metrik (konsol)
<a name="create-metric-attribution-console"></a>

 Untuk membuat atribusi metrik dengan konsol Amazon Personalize, Anda menavigasi ke halaman atribusi **Metrik dan **memilih** Buat atribusi metrik**. Saat membuat atribusi metrik, Anda menentukan jalur bucket Amazon S3 opsional, peran layanan Amazon Personalisasi IAM, dan daftar metrik yang akan dilaporkan. 

 Saat membuat pekerjaan impor kumpulan data interaksi Item dengan konsol Amazon Personalize, Anda memiliki opsi untuk membuat atribusi metrik di tab baru. Kemudian Anda dapat kembali ke pekerjaan impor untuk menyelesaikannya. Jika Anda sudah berada di halaman **Konfigurasi atribusi metrik**, Anda dapat melompat ke langkah 4. 

**Untuk membuat atribusi metrik**

1. Buka konsol Amazon Personalize di [https://console.aws.amazon.com/personalize/rumah](https://console.aws.amazon.com/personalize/home) dan masuk ke akun Anda. 

1. Pilih grup kumpulan data Anda.

1. Di panel navigasi, di bawah **Sumber daya khusus**, pilih **Atribusi metrik**.

1. Di **detail atribusi metrik**, pilih **Buat atribusi metrik**.

1. Pada halaman **Konfigurasi atribusi metrik**, beri nama atribusi metrik.

1. Jika Anda ingin memublikasikan metrik ke Amazon S3 untuk jalur **keluaran data Amazon S3**, masukkan bucket Amazon S3 tujuan. Ini memungkinkan opsi untuk mempublikasikan metrik setiap kali Anda membuat pekerjaan impor kumpulan data. Gunakan sintaks berikut:

   **s3://amzn-s3-demo-bucket/<folder> path>**

1. Jika Anda menggunakan AWS KMS untuk enkripsi, untuk **ARN kunci KMS**, masukkan Nama Sumber Daya Amazon (ARN) untuk kunci tersebut. AWS KMS Anda harus memberikan izin Amazon Personalize dan Amazon Personalize IAM service role untuk menggunakan kunci Anda. Untuk informasi selengkapnya, lihat [Memberikan izin Amazon Personalize untuk menggunakan kunci Anda AWS KMS](granting-personalize-key-access.md).

1. Dalam **peran IAM**, pilih untuk membuat peran layanan baru atau menggunakan yang sudah ada. Peran yang Anda pilih harus memiliki `PutMetricData` izin untuk CloudWatch. Jika Anda ingin mempublikasikan ke Amazon S3, peran tersebut harus memiliki `PutObject` izin untuk bucket Amazon S3 Anda. 

   Untuk menggunakan peran yang Anda buat[Membuat peran IAM untuk Amazon Personalize](set-up-required-permissions.md#set-up-create-role-with-permissions), Anda mungkin harus menambahkan kebijakan untuk CloudWatch dan Amazon S3.

   Untuk contoh kebijakan, lihat [Memberikan Amazon Personalisasi akses ke CloudWatch](metric-attribution-requirements.md#metric-attribution-cw-permissions) dan[Memberikan Amazon Personalisasi akses ke bucket Amazon S3 Anda](metric-attribution-requirements.md#metric-attribution-s3-permissions).

1. Pilih **Berikutnya**.

1. Pada halaman **Tentukan atribut metrik**, pilih cara menentukan metrik. Pilih **Buat atribut metrik** untuk menggunakan alat pembuat. Pilih **Atribut metrik masukan** untuk memasukkan metrik dalam format JSON.
   + Jika Anda memilih **Membangun atribut metrik**, untuk setiap metrik berikan nama, jenis peristiwa, dan pilih fungsi. Untuk `SUM()` fungsi, pilih nama kolom. Pilih **Tambahkan atribut metrik** untuk menambahkan metrik tambahan. 
   + Jika Anda memilih **atribut metrik masukan**, masukkan setiap metrik dalam format JSON. Berikut ini menunjukkan cara memformat metrik.

     ```
     {
         "EventType": "watch",
         "MetricName": "MinutesWatchedTracker", 
         "MetricMathExpression": "SUM(Items.LENGTH)"
     }
     ```

1. Pilih **Berikutnya**.

1. Pada **halaman Tinjau dan buat**, tinjau detail atribusi metrik baru. Untuk melakukan perubahan, pilih **Sebelumnya**. Untuk membuat atribusi metrik, pilih **Buat**. Saat atribusi metrik aktif, Anda dapat mulai mengimpor data dan melihat hasilnya. Untuk informasi tentang melihat hasil, lihat[Melihat grafik data metrik di CloudWatch](metric-attribution-results-cloudwatch.md). Untuk informasi tentang mempublikasikan hasil ke Amazon S3, lihat. [Menerbitkan laporan atribusi metrik ke Amazon S3](metric-attribution-results-s3.md)

## Membuat atribusi metrik ()AWS CLI
<a name="create-metric-attribution-cli"></a>

 Kode berikut menunjukkan cara membuat atribusi metrik dengan. AWS Command Line Interface Peran yang Anda tentukan harus memiliki `PutMetricData` izin untuk CloudWatch dan, jika memublikasikan ke Amazon S3`PutObject`, izin untuk bucket Amazon S3 Anda. Untuk menggunakan peran yang Anda buat[Membuat peran IAM untuk Amazon Personalize](set-up-required-permissions.md#set-up-create-role-with-permissions), Anda mungkin harus menambahkan kebijakan untuk CloudWatch dan Amazon S3. Untuk contoh kebijakan, lihat [Memberikan Amazon Personalisasi akses ke CloudWatch](metric-attribution-requirements.md#metric-attribution-cw-permissions) dan[Memberikan Amazon Personalisasi akses ke bucket Amazon S3 Anda](metric-attribution-requirements.md#metric-attribution-s3-permissions). 

 Untuk setiap metrik tentukan nama, jenis peristiwa, dan ekspresi (fungsi). Fungsi yang tersedia termasuk `SUM(DatasetType.COLUMN_NAME)` dan`SAMPLECOUNT()`. Untuk fungsi SUM (), tentukan jenis kumpulan data dan nama kolom. Misalnya, `SUM(Items.LENGTH)`. Untuk informasi tentang setiap parameter, lihat[CreateMetricAttribution](API_CreateMetricAttribution.md). 

```
aws personalize create-metric-attribution \
--name metric attribution name \
--dataset-group-arn dataset group arn \
--metrics-output-config "{\"roleArn\": \"Amazon Personalize service role ARN\", \"s3DataDestination\":{\"kmsKeyArn\":\"kms key ARN\",\"path\":\"s3://amzn-s3-demo-bucket/folder-name/\"}}" \
--metrics "[{
  \"eventType\": \"event type\",
  \"expression\": \"SUM(DatasetType.COLUMN_NAME)\",
  \"metricName\": \"metric name\"
}]"
```

## Membuat atribusi metrik ()AWS SDKs
<a name="create-metric-attribution-sdk"></a>

 Kode berikut menunjukkan cara membuat atribusi metrik dengan SDK for Python (Boto3). Peran yang Anda tentukan harus memiliki `PutMetricData` izin untuk CloudWatch dan, jika memublikasikan ke Amazon S3`PutObject`, izin untuk bucket Amazon S3 Anda. Untuk menggunakan peran yang Anda buat[Membuat peran IAM untuk Amazon Personalize](set-up-required-permissions.md#set-up-create-role-with-permissions), Anda mungkin harus menambahkan kebijakan untuk CloudWatch dan Amazon S3. Untuk contoh kebijakan, lihat [Memberikan Amazon Personalisasi akses ke CloudWatch](metric-attribution-requirements.md#metric-attribution-cw-permissions) dan[Memberikan Amazon Personalisasi akses ke bucket Amazon S3 Anda](metric-attribution-requirements.md#metric-attribution-s3-permissions). 

 Untuk setiap metrik tentukan nama, jenis peristiwa, dan ekspresi (fungsi). Fungsi yang tersedia termasuk `SUM(DatasetType.COLUMN_NAME)` dan`SAMPLECOUNT()`. Untuk fungsi SUM (), tentukan jenis kumpulan data dan nama kolom. Misalnya, `SUM(Items.LENGTH)`. Untuk informasi tentang setiap parameter, lihat[CreateMetricAttribution](API_CreateMetricAttribution.md). 

------
#### [ SDK for Python (Boto3) ]

```
import boto3

personalize = boto3.client('personalize')

metricsList = [{ 
      "eventType": "event type",
      "expression": "SUM(DatasetType.COLUMN_NAME)",
      "metricName": "metric name"
}]

outputConfig = {
  "roleArn": "Amazon Personalize service role ARN", 
  "s3DataDestination": {
    "kmsKeyArn": "key ARN", 
    "path": "s3://amzn-s3-demo-bucket/<folder>"
  }
}
response = personalize.create_metric_attribution(
  name = 'metric attribution name',
  datasetGroupArn = 'dataset group arn',
  metricsOutputConfig = outputConfig,
  metrics = metricsList
)

metric_attribution_arn = response['metricAttributionArn']

print ('Metric attribution ARN: ' + metric_attribution_arn)

description = personalize.describe_metric_attribution(
    metricAttributionArn = metric_attribution_arn)['metricAttribution']

print('Name: ' + description['name'])
print('ARN: ' + description['metricAttributionArn'])
print('Status: ' + description['status'])
```

------
#### [ SDK for Java 2.x ]

```
public static String createMetricAttribution(PersonalizeClient personalizeClient,
                                             String eventType,
                                             String expression,
                                             String metricName,
                                             String metricAttributionName,
                                             String roleArn,
                                             String s3Path,
                                             String kmsKeyArn,
                                             String datasetGroupArn) {
    String metricAttributionArn = "";

    try {

        MetricAttribute attribute = MetricAttribute.builder()
                .eventType(eventType)
                .expression(expression)
                .metricName(metricName)
                .build();

        ArrayList<MetricAttribute> metricAttributes = new ArrayList<>();
        metricAttributes.add(attribute);

        S3DataConfig s3DataDestination = S3DataConfig.builder()
                .kmsKeyArn(kmsKeyArn)
                .path(s3Path)
                .build();

        MetricAttributionOutput outputConfig = MetricAttributionOutput.builder()
                .roleArn(roleArn)
                .s3DataDestination(s3DataDestination)
                .build();

        CreateMetricAttributionRequest createMetricAttributionRequest = CreateMetricAttributionRequest.builder()
                .name(metricAttributionName)
                .datasetGroupArn(datasetGroupArn)
                .metrics(metricAttributes)
                .metricsOutputConfig(outputConfig)
                .build();
        CreateMetricAttributionResponse createMetricAttributionResponse = personalizeClient.createMetricAttribution(createMetricAttributionRequest);

        metricAttributionArn = createMetricAttributionResponse.metricAttributionArn();
        System.out.println("Metric attribution ARN: " + metricAttributionArn);
        return metricAttributionArn;
    } catch (PersonalizeException e) {
        System.out.println(e.awsErrorDetails().errorMessage());
    }
    return "";
}
```

------
#### [ SDK for JavaScript v3 ]

```
// Get service clients and commands using ES6 syntax.
import { CreateMetricAttributionCommand, PersonalizeClient } from
  "@aws-sdk/client-personalize";
  
// create personalizeClient
const personalizeClient = new PersonalizeClient({
  region: "REGION"
});

// set the metric attribution param
export const createMetricAttributionParam = {
  name: "METRIC_ATTRIBUTION_NAME",            /* required */
  datasetGroupArn: "DATASET_GROUP_ARN",       /* required */
  metricsOutputConfig: {
    roleArn: "ROLE_ARN",                      /* required */
    s3DataDestination: {                
      kmsKeyArn: "KEY_ARN",                                                      /* optional */
      path: "s3://amzn-s3-demo-bucket/<folderName>/",    /* optional */
    },
  },
  metrics: [                        
    {
      eventType: "EVENT_TYPE",                      /* required for each metric */
      expression: "SUM(DatasetType.COLUMN_NAME)",   /* required for each metric */
      metricName: "METRIC_NAME",                    /* required for each metric */
    }
  ]
};

export const run = async () => {
  try {
    const response = await personalizeClient.send(
      new CreateMetricAttributionCommand(createMetricAttributionParam)
    );
    console.log("Success", response);
    return response; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

------