

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

# Mengukur dampak rekomendasi dengan atribusi metrik
<a name="metric-attributions"></a>

 Untuk mengukur dampak rekomendasi item, Anda dapat membuat atribusi metrik. *Atribusi metrik* membuat laporan berdasarkan interaksi item dan data item yang Anda impor, dan metrik yang Anda tentukan. Misalnya, total panjang film yang ditonton oleh pengguna, atau jumlah total peristiwa klik. Amazon Personalisasi perhitungan agregat selama 15 menit. Untuk data interaksi streaming dan data massal tambahan, Amazon Personalize secara otomatis mengirimkan laporan metrik ke Amazon. CloudWatch Untuk data massal, Anda dapat memilih untuk mempublikasikan laporan ke bucket Amazon S3. 

 Untuk setiap interaksi yang Anda impor, sertakan data sumber untuk membandingkan kampanye, pemberi rekomendasi, dan pihak ketiga yang berbeda. Anda dapat menyertakan ID rekomendasi dari rekomendasi yang Anda tunjukkan kepada pengguna atau sumber acara, seperti pihak ketiga. 

 Misalnya, Anda mungkin memiliki aplikasi streaming video yang menampilkan rekomendasi film dari dua rekomendasi Amazon Personalize yang berbeda. Jika Anda ingin melihat pemberi rekomendasi mana yang menghasilkan acara tontonan terbanyak, Anda dapat membuat atribusi metrik yang melacak jumlah total acara tontonan. Kemudian Anda dapat merekam acara tontonan saat pengguna berinteraksi dengan rekomendasi, dan menyertakan `recommendationId` di setiap acara. Amazon Personalize menggunakan `recommendationId` untuk mengidentifikasi setiap pemberi rekomendasi. Saat merekam acara, Anda dapat melihat total acara tontonan yang dikumpulkan setiap 15 menit untuk kedua pemberi rekomendasi. CloudWatch Untuk contoh kode yang menunjukkan cara menyertakan `recommendationId` atau `eventAttributionSource` acara, lihat[Metrik peristiwa dan laporan atribusi](event-metrics.md). 

**Topics**
+ [Pedoman dan persyaratan untuk atribusi metrik](metric-attribution-requirements.md)
+ [Membuat atribusi metrik Amazon Personalisasi](creating-metric-attribution.md)
+ [Memperbarui atribusi metrik Amazon Personalisasi](updating-metric-attribution.md)
+ [Menghapus atribusi metrik Amazon Personalisasi](deleting-metric-attribution.md)
+ [Melihat grafik data metrik di CloudWatch](metric-attribution-results-cloudwatch.md)
+ [Menerbitkan laporan atribusi metrik ke Amazon S3](metric-attribution-results-s3.md)

# Pedoman dan persyaratan untuk atribusi metrik
<a name="metric-attribution-requirements"></a>

 Amazon Personalize mulai menghitung dan melaporkan dampak rekomendasi hanya setelah Anda membuat atribusi metrik. Untuk membuat riwayat terlengkap, sebaiknya buat atribusi metrik sebelum mengimpor data interaksi. Saat membuat tugas impor kumpulan data untuk 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. 

 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 melihat dampak rekomendasi dari waktu ke waktu, teruslah mengimpor data saat pelanggan berinteraksi dengan rekomendasi. Jika Anda telah mengimpor data, Anda masih dapat membuat atribusi metrik dan mulai mengukur dampak rekomendasi. Namun, Amazon Personalize tidak akan melaporkan data yang diimpor sebelum membuatnya. 

Berikut ini adalah pedoman dan persyaratan untuk menghasilkan laporan dengan atribusi metrik:
+ Anda harus memberikan izin Amazon Personalize untuk mengakses dan memasukkan data. CloudWatch Untuk contoh kebijakan, lihat[Memberikan Amazon Personalisasi akses ke CloudWatch](#metric-attribution-cw-permissions).
+ Untuk memublikasikan metrik ke Amazon S3, berikan izin Amazon Personalize untuk menulis ke bucket Anda. Anda juga harus menyediakan jalur bucket dalam atribusi metrik Anda. Untuk contoh kebijakan, lihat[Memberikan Amazon Personalisasi akses ke bucket Amazon S3 Anda](#metric-attribution-s3-permissions).
+  Untuk mempublikasikan metrik ke CloudWatch, catatan harus berusia kurang dari 14 hari. Jika data Anda lebih tua, catatan ini tidak akan disertakan dalam perhitungan atau laporan. 
+  Mengimpor peristiwa duplikat (peristiwa yang sama persis dengan semua atribut) dapat menyebabkan perilaku tak terduga termasuk metrik yang tidak akurat. Kami menyarankan Anda menghapus catatan duplikat dari data massal apa pun sebelum mengimpor, dan menghindari mengimpor kejadian duplikat dengan operasi. `PutEvents` 
+ Dataset interaksi Item Anda harus memiliki `EVENT_TYPE` kolom.
+ Anda tidak dapat membuat laporan metrik untuk data dalam kumpulan data interaksi Tindakan.
+ Anda dapat membuat paling banyak satu atribusi metrik per grup kumpulan data. Setiap atribusi metrik dapat memiliki paling banyak 10 metrik.

Untuk membandingkan sumber, setiap peristiwa interaksi harus menyertakan `recommendationId` atau`eventAttributionSource`. Anda dapat menyediakan paling banyak 100 sumber atribusi acara unik. Untuk sampel kode `PutEvents`, lihat [Metrik peristiwa dan laporan atribusi](event-metrics.md).
+  Jika Anda memberikan`recommendationId`, Amazon Personalize secara otomatis menentukan kampanye sumber atau pemberi rekomendasi dan mengidentifikasinya dalam laporan di kolom EVENT\$1ATTRIBUTION\$1SOURCE. 
+  Jika Anda memberikan kedua atribut tersebut, Amazon Personalize hanya menggunakan fitur. `eventAttributionSource` 
+  Jika Anda tidak menyediakan sumber, Amazon Personalize memberi label sumber `SOURCE_NAME_UNDEFINED` dalam laporan. 

**Topics**
+ [Memberikan Amazon Personalisasi akses ke CloudWatch](#metric-attribution-cw-permissions)
+ [Memberikan Amazon Personalisasi akses ke bucket Amazon S3 Anda](#metric-attribution-s3-permissions)

## Memberikan Amazon Personalisasi akses ke CloudWatch
<a name="metric-attribution-cw-permissions"></a>

**penting**  
Saat Anda memberikan izin, Amazon Personalisasi tempat dan memvalidasi sejumlah kecil data. CloudWatch Ini akan dikenakan biaya satu kali kurang dari \$10,30. Untuk informasi selengkapnya tentang CloudWatch harga, lihat halaman [ CloudWatch harga Amazon](https://aws.amazon.com/cloudwatch/pricing/).

Untuk memberikan akses Amazon Personalize CloudWatch, lampirkan kebijakan baru AWS Identity and Access Management (IAM) ke peran layanan Amazon Personalize yang memberikan izin peran untuk menggunakan Action for. `PutMetricData` CloudWatch Contoh kebijakan berikut memberikan `PutMetricData` izin.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "cloudwatch:PutMetricData"
      ],
      "Resource": "*"
    }
  ]
}
```

------

## Memberikan Amazon Personalisasi akses ke bucket Amazon S3 Anda
<a name="metric-attribution-s3-permissions"></a>

 Untuk memberi Amazon Personalisasi akses ke bucket Amazon S3 Anda:
+ Lampirkan kebijakan IAM ke peran layanan Amazon Personalize yang memberikan izin peran untuk menggunakan Tindakan `PutObject` di bucket Anda. 

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Id": "PersonalizeS3BucketAccessPolicy",
      "Statement": [
          {
              "Sid": "PersonalizeS3BucketAccessPolicy",
              "Effect": "Allow",
              "Action": [
                  "s3:PutObject"
              ],
              "Resource": [
                  "arn:aws:s3:::amzn-s3-demo-bucket",
                  "arn:aws:s3:::amzn-s3-demo-bucket/*"
              ]
          }
      ]
  }
  ```

------
+ Lampirkan kebijakan bucket ke bucket Amazon S3 keluaran Anda yang memberikan izin prinsip Personalisasi Amazon untuk menggunakan Tindakan. `PutObject`

   Jika Anda menggunakan AWS Key Management Service (AWS KMS) untuk enkripsi, 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).

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Id": "PersonalizeS3BucketAccessPolicy",
      "Statement": [
          {
              "Sid": "PersonalizeS3BucketAccessPolicy",
              "Effect": "Allow",
              "Principal": {
                  "Service": "personalize.amazonaws.com"
              },
              "Action": [
                  "s3:PutObject"
              ],
              "Resource": [
                  "arn:aws:s3:::amzn-s3-demo-bucket",
                  "arn:aws:s3:::amzn-s3-demo-bucket/*"
              ]
          }
      ]
  }
  ```

------

# 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();
```

------

# Memperbarui atribusi metrik Amazon Personalisasi
<a name="updating-metric-attribution"></a>

 Saat memperbarui atribusi metrik, Anda dapat menambahkan dan menghapus metrik dan memodifikasi konfigurasi outputnya. Anda dapat memperbarui atribusi metrik dengan konsol Amazon Personalize AWS Command Line Interface, AWS atau SDKS. 

**Topics**
+ [Memperbarui atribusi metrik (konsol)](#updating-metric-attribution-console)
+ [Memperbarui atribusi metrik ()AWS CLI](#updating-metric-attribution-cli)
+ [Memperbarui atribusi metrik (AWS SDK)](#updating-metric-attribution-sdk)

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

Untuk memperbarui atribusi metrik dengan konsol Amazon Personalize, Anda membuat perubahan di halaman atribusi **Metrik**.

**Untuk memperbarui 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, pilih **Atribusi metrik**.

1. Di bagian bawah, pilih tab **Atribut metrik** **atau tab Konfigurasi atribusi metrik** untuk mulai membuat perubahan.
   + Untuk menambah atau menghapus metrik, pilih tab **Atribut metrik** dan pilih **Edit atribut**. Buat perubahan di halaman **Edit atribut metrik** dan pilih **Perbarui** untuk menyimpan perubahan Anda.
   + Untuk membuat perubahan pada bucket keluaran Amazon S3 atau peran layanan IAM, pilih tab **Edit konfigurasi atribusi metrik dan buat perubahan pada halaman konfigurasi** **Edit** atribusi. Pilih **Perbarui** untuk menyimpan perubahan.

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

Setelah membuat atribusi metrik, Anda dapat menggunakan AWS Command Line Interface (AWS CLI) untuk menambah dan menghapus metrik dan memodifikasi konfigurasi outputnya. Kode berikut menunjukkan cara menghapus metrik dengan `update-metric-attribution` perintah:

```
aws personalize update-metric-attribution \
--metric-attribution-arn metric attribution arn \
--remove-metrics metricName1 metricName2
```

 Kode berikut menunjukkan cara menambahkan metrik tambahan dan menentukan konfigurasi keluaran baru:

```
aws personalize update-metric-attribution \
--metric-attribution-arn metric attribution arn \
--metrics-output-config "{\"roleArn\": \"new role ARN\", \"s3DataDestination\":{\"kmsKeyArn\":\"kms key ARN\",\"path\":\"s3://amzn-s3-demo-bucket2/new-folder-name/\"}}" \
--add-metrics "[{
  \"eventType\": \"event type\",
  \"expression\": \"SUM(DatasetType.COLUMN_NAME)\",
  \"metricName\": \"metric name\"
}]"
```

 Jika berhasil, Amazon Personalize mengembalikan ARN atribusi metrik yang Anda perbarui. Untuk daftar lengkap semua parameter, lihat[UpdateMetricAttribution](API_UpdateMetricAttribution.md).

## Memperbarui atribusi metrik (AWS SDK)
<a name="updating-metric-attribution-sdk"></a>

Setelah membuat atribusi metrik, Anda dapat menambahkan atau menghapus metrik dan mengubah konfigurasi outputnya. Kode berikut menunjukkan cara menghapus metrik dari atribusi metrik.

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

```
import boto3
            
personalize = boto3.client('personalize')

metricsToRemove = ["metricName1", "metricName2"]
            
response = personalize.update_metric_attribution(
  metricAttributionArn = "metric attribution ARN",
  removeMetrics = metricsToRemove
)
```

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

```
public static void removeMetrics(PersonalizeClient client,
                                 String metricAttributionArn,
                                 String metric1Name,
                                 String metric2Name) {

    ArrayList<String> metricsToRemove = new ArrayList<>(Arrays.asList(metric1Name, metric2Name));
    
    try {
    
        UpdateMetricAttributionRequest request = UpdateMetricAttributionRequest.builder()
                .metricAttributionArn(metricAttributionArn)
                .removeMetrics(metricsToRemove)
                .build();
                
        UpdateMetricAttributionResponse response = client.updateMetricAttribution(request);
        System.out.println(response);
        
    } catch (PersonalizeException e) {
        System.out.println(e.awsErrorDetails().errorMessage());
    }
}
```

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

```
// Get service clients and commands using ES6 syntax.
import {UpdateMetricAttributionCommand, PersonalizeClient } from
  "@aws-sdk/client-personalize";

// create personalizeClient
const personalizeClient = new PersonalizeClient({
  region: "REGION"
});

// set the update request param
export const updateMetricAttributionParam = {
  metricAttributionArn: "METRIC_ATTRIBUTION_ARN",    /* required */
  removeMetrics: ["METRIC_NAME_1", "METRIC_NAME_2"]    /* specify list of names of metrics to delete */
};
export const run = async () => {
  try {
    const response = await personalizeClient.send(
      new UpdateMetricAttributionCommand(updateMetricAttributionParam)
    );
    console.log("Success", response);
    return response; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

------

 Kode berikut menunjukkan cara menambahkan metrik tambahan dan menentukan konfigurasi keluaran baru:

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

```
import boto3

personalize = boto3.client('personalize')

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

newOutputConfig = {
  "roleArn": "Amazon Personalize service role ARN", 
  "s3DataDestination": {
    "kmsKeyArn": "key ARN", 
    "path": "s3://amzn-s3-demo-bucket/<folder>"
  }
}

response = personalize.update_metric_attribution(
  metricAttributionArn = "metric attribution arn",
  metricsOutputConfig = newOutputConfig,
  addMetrics = newMetrics
)
```

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

```
public static void addMetricsAndUpdateOutputConfig(PersonalizeClient personalizeClient,
                                                String metricAttributionArn,
                                                String newMetric1EventType,
                                                String newMetric1Expression,
                                                String newMetric1Name,
                                                String newMetric2EventType,
                                                String newMetric2Expression,
                                                String newMetric2Name,
                                                String roleArn,
                                                String s3Path,
                                                String kmsKeyArn) {
    try {
    
        MetricAttribute newAttribute = MetricAttribute.builder()
                .eventType(newMetric1EventType)
                .expression(newMetric1Expression)
                .metricName(newMetric1Name)
                .build();
                
        MetricAttribute newAttribute2 = MetricAttribute.builder()
                .eventType(newMetric2EventType)
                .expression(newMetric2Expression)
                .metricName(newMetric2Name)
                .build();

        ArrayList<MetricAttribute> newAttributes = new ArrayList<>(Arrays.asList(newAttribute, newAttribute2));

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

        MetricAttributionOutput newOutputConfig = MetricAttributionOutput.builder()
                .roleArn(roleArn)
                .s3DataDestination(newDataDestination)
                .build();
                
        UpdateMetricAttributionRequest request = UpdateMetricAttributionRequest.builder()
                .metricAttributionArn(metricAttributionArn)
                .metricsOutputConfig(newOutputConfig)
                .addMetrics(newAttributes)
                .build();
                
        UpdateMetricAttributionResponse response = personalizeClient.updateMetricAttribution(request);
        System.out.println("New metrics added!");
        System.out.println(response);
        
    } catch (PersonalizeException e) {
        System.out.println(e.awsErrorDetails().errorMessage());
    }
}
```

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

```
// Get service clients and commands using ES6 syntax.
import {UpdateMetricAttributionCommand, PersonalizeClient } from
  "@aws-sdk/client-personalize";

// create personalizeClient
const personalizeClient = new PersonalizeClient({
  region: "REGION"
});

export const updateMetricAttributionParam = {
  metricAttributionArn: "METRIC_ATTRIBUTION_ARN",
  addMetrics: [
    {
      eventType: "EVENT_TYPE",                      /* required for each metric */
      expression: "SUM(DatasetType.COLUMN_NAME)",   /* required for each metric */
      metricName: "METRIC_NAME",                    /* required for each metric */
    }
  ],
  metricsOutputConfig: {
    roleArn: "ROLE_ARN",                      /* required */
    s3DataDestination: {                
      kmsKeyArn: "KEY_ARN",                                                      /* optional */
      path: "s3://amzn-s3-demo-bucket/<folderName>/",    /* optional */
    },
  }
};

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

------

Jika berhasil, Amazon Personalize mengembalikan ARN atribusi metrik yang Anda perbarui. Untuk daftar lengkap semua parameter, lihat[UpdateMetricAttribution](API_UpdateMetricAttribution.md).

# Menghapus atribusi metrik Amazon Personalisasi
<a name="deleting-metric-attribution"></a>

Jika Anda tidak lagi ingin membuat laporan, Anda dapat menghapus atribusi metrik. Menghapus atribusi metrik akan menghapus semua metrik dan konfigurasi outputnya. 

 Jika Anda menghapus atribusi metrik, Amazon Personalize akan berhenti mengirim laporan terkait dan data PutEvents massal tambahan secara otomatis. CloudWatch Data yang sudah dikirim CloudWatch atau dipublikasikan ke Amazon S3 tidak terpengaruh. Anda dapat menghapus atribusi metrik dengan konsol Amazon Personalize AWS Command Line Interface, AWS atau SDKS. 

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

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

Anda menghapus atribusi metrik pada halaman ikhtisar untuk atribusi metrik Anda.

**Untuk menghapus 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, pilih **Atribusi metrik**.

1. Pilih **Hapus** dan kemudian konfirmasikan penghapusan.

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

Untuk menghapus atribusi metrik dengan AWS CLI, gunakan `delete-metric-attribution` perintah sebagai berikut.

```
aws personalize delete-metric-attribution --metric-attribution-arn metric attribution ARN
```

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

 Kode berikut menunjukkan cara menghapus atribusi metrik dengan SDK for Python (Boto3):

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

```
import boto3
            
personalize = boto3.client('personalize')

response = personalize.delete_metric_attribution(
  metricAttributionArn = 'metric attribution ARN'
)
```

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

```
public static void deleteMetricAttribution(PersonalizeClient client, String metricAttributionArn) {

    try {
    
        DeleteMetricAttributionRequest request = DeleteMetricAttributionRequest.builder()
                .metricAttributionArn(metricAttributionArn)
                .build();
                
        DeleteMetricAttributionResponse response = client.deleteMetricAttribution(request);
        if (response.sdkHttpResponse().statusCode() == 200) {
            System.out.println("Metric attribution deleted!");
        }
        
    } catch (PersonalizeException e) {
        System.out.println(e.awsErrorDetails().errorMessage());
    }
}
```

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

```
// Get service clients and commands using ES6 syntax.
import { DeleteMetricAttributionCommand, PersonalizeClient } from
  "@aws-sdk/client-personalize";

// create personalizeClient
const personalizeClient = new PersonalizeClient({
  region: "REGION"
});

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

------

# Melihat grafik data metrik di CloudWatch
<a name="metric-attribution-results-cloudwatch"></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).

 Setelah Anda membuat atribusi metrik, Amazon Personalize secara otomatis mengirimkan metrik [PutEvents](API_UBS_PutEvents.md) dari dan data massal tambahan ke Amazon. CloudWatch Anda dapat memilih metrik dan membuat grafik data metrik menggunakan konsol. CloudWatch Grafik ini dapat membantu Anda secara visual memeriksa dan membandingkan kinerja dan dampak dari berbagai pemberi rekomendasi atau kampanye. 

Untuk membandingkan sumber, setiap peristiwa interaksi harus menyertakan `recommendationId` atau`eventAttributionSource`. Untuk contoh kode yang menunjukkan cara menyertakan data ini dalam suatu peristiwa, lihat[Metrik peristiwa dan laporan atribusi](event-metrics.md). 

Untuk melihat metrik CloudWatch, selesaikan prosedur yang ditemukan di [Grafik](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph_a_metric.html) metrik. Anda dapat melihat data pada berbagai tingkat detail. **Periode** minimum yang dapat Anda buat grafik adalah 15 menit. Anda dapat melihat data Amazon Personalisasi dari 2 minggu sebelumnya CloudWatch — data lama diabaikan. Untuk istilah penelusuran, tentukan nama yang Anda berikan metrik saat Anda membuat atribusi metrik. 

Berikut ini adalah contoh bagaimana metrik mungkin muncul CloudWatch. Metrik menunjukkan rasio klik-tayang untuk setiap 15 menit untuk dua pemberi rekomendasi yang berbeda.

![\[Menggambarkan grafik rasio klik-tayang untuk setiap 15 menit untuk dua pemberi rekomendasi yang berbeda.\]](http://docs.aws.amazon.com/id_id/personalize/latest/dg/images/metric-attribution-cw-example.png)


# Menerbitkan laporan atribusi metrik ke Amazon S3
<a name="metric-attribution-results-s3"></a>

Untuk semua data massal, jika Anda menyediakan bucket Amazon S3 saat membuat atribusi metrik, Anda dapat memilih untuk menerbitkan laporan metrik ke bucket Amazon S3 setiap kali Anda membuat pekerjaan impor kumpulan data untuk data interaksi.

Untuk memublikasikan metrik ke Amazon S3, Anda menyediakan jalur ke bucket Amazon S3 di atribusi metrik. Kemudian Anda memublikasikan laporan ke Amazon S3 saat Anda membuat pekerjaan impor kumpulan data. Saat pekerjaan selesai, Anda dapat menemukan metrik di bucket Amazon S3 Anda. Setiap kali Anda mempublikasikan metrik, Amazon Personalize membuat file baru di bucket Amazon S3 Anda. Nama file termasuk metode impor dan tanggal sebagai berikut:

`AggregatedAttributionMetrics - ImportMethod - Timestamp.csv`

Berikut ini adalah contoh bagaimana beberapa baris pertama dari file CSV laporan metrik mungkin muncul. Metrik dalam contoh ini melaporkan total klik dari dua pemberi rekomendasi yang berbeda selama interval 15 menit. Setiap pemberi rekomendasi diidentifikasi dengan Nama Sumber Daya Amazon (ARN) di kolom EVENT\$1ATTRIBUTION\$1SOURCE. 

```
METRIC_NAME,EVENT_TYPE,VALUE,MATH_FUNCTION,EVENT_ATTRIBUTION_SOURCE,TIMESTAMP
COUNTWATCHES,WATCH,12.0,samplecount,arn:aws:personalize:us-west-2:acctNum:recommender/recommender1Name,1666925124
COUNTWATCHES,WATCH,112.0,samplecount,arn:aws:personalize:us-west-2:acctNum:recommender/recommender2Name,1666924224
COUNTWATCHES,WATCH,10.0,samplecount,arn:aws:personalize:us-west-2:acctNum:recommender/recommender1Name,1666924224
COUNTWATCHES,WATCH,254.0,samplecount,arn:aws:personalize:us-west-2:acctNum:recommender/recommender2Name,1666922424
COUNTWATCHES,WATCH,112.0,samplecount,arn:aws:personalize:us-west-2:acctNum:recommender/recommender1Name,1666922424
COUNTWATCHES,WATCH,100.0,samplecount,arn:aws:personalize:us-west-2:acctNum:recommender/recommender2Name,1666922424
......
.....
```

## Menerbitkan metrik untuk data massal ke Amazon S3 (konsol)
<a name="metric-attribution-results-s3-console"></a>

**Untuk memublikasikan metrik ke bucket Amazon S3 dengan konsol Amazon Personalize, buat tugas impor kumpulan data dan **pilih Publikasikan metrik untuk pekerjaan impor ini di Publikasikan metrik peristiwa** ke S3.** 

 Untuk step-by-step instruksi, lihat[Membuat pekerjaan impor dataset (konsol)](bulk-data-import-step.md#bulk-data-import-console). 

## Menerbitkan metrik untuk data massal ke Amazon S3 ()AWS CLI
<a name="metric-attributinon-resuslts-s3-cli"></a>

Untuk memublikasikan metrik ke bucket Amazon S3 dengan AWS Command Line Interface AWS CLI(), gunakan kode berikut untuk membuat tugas impor kumpulan data dan memberikan tanda. `publishAttributionMetricsToS3` Jika Anda tidak ingin mempublikasikan metrik untuk pekerjaan tertentu, hilangkan bendera. Untuk informasi tentang setiap parameter, lihat[CreateDatasetImportJob](API_CreateDatasetImportJob.md). 

```
aws personalize create-dataset-import-job \
--job-name dataset import job name \
--dataset-arn dataset arn \
--data-source dataLocation=s3://amzn-s3-demo-bucket/filename \
--role-arn roleArn \
--import-mode INCREMENTAL \
--publish-attribution-metrics-to-s3
```

## Menerbitkan metrik untuk data massal ke Amazon S3 ()AWS SDKs
<a name="metric-attributinon-resuslts-s3-sdk"></a>

Untuk memublikasikan metrik ke bucket Amazon S3 dengan AWS SDKs, buat tugas impor kumpulan data dan `publishAttributionMetricsToS3` setel ke true. Untuk informasi tentang setiap parameter, lihat[CreateDatasetImportJob](API_CreateDatasetImportJob.md). 

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

```
import boto3

personalize = boto3.client('personalize')

response = personalize.create_dataset_import_job(
    jobName = 'YourImportJob',
    datasetArn = 'dataset_arn',
    dataSource = {'dataLocation':'s3://amzn-s3-demo-bucket/file.csv'},
    roleArn = 'role_arn',
    importMode = 'INCREMENTAL',
    publishAttributionMetricsToS3 = True
)

dsij_arn = response['datasetImportJobArn']

print ('Dataset Import Job arn: ' + dsij_arn)

description = personalize.describe_dataset_import_job(
    datasetImportJobArn = dsij_arn)['datasetImportJob']

print('Name: ' + description['jobName'])
print('ARN: ' + description['datasetImportJobArn'])
print('Status: ' + description['status'])
```

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

```
public static String createPersonalizeDatasetImportJob(PersonalizeClient personalizeClient,
                                                      String jobName,
                                                      String datasetArn,
                                                      String s3BucketPath,
                                                      String roleArn,
                                                      ImportMode importMode,
                                                      boolean publishToS3) {

  long waitInMilliseconds = 60 * 1000;
  String status;
  String datasetImportJobArn;
  
  try {
      DataSource importDataSource = DataSource.builder()
              .dataLocation(s3BucketPath)
              .build();
      
      CreateDatasetImportJobRequest createDatasetImportJobRequest = CreateDatasetImportJobRequest.builder()
              .datasetArn(datasetArn)
              .dataSource(importDataSource)
              .jobName(jobName)
              .roleArn(roleArn)
              .importMode(importMode)
              .publishAttributionMetricsToS3(publishToS3)
              .build();
  
      datasetImportJobArn = personalizeClient.createDatasetImportJob(createDatasetImportJobRequest)
              .datasetImportJobArn();
      
      DescribeDatasetImportJobRequest describeDatasetImportJobRequest = DescribeDatasetImportJobRequest.builder()
              .datasetImportJobArn(datasetImportJobArn)
              .build();
  
      long maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60;
  
      while (Instant.now().getEpochSecond() < maxTime) {
  
          DatasetImportJob datasetImportJob = personalizeClient
                  .describeDatasetImportJob(describeDatasetImportJobRequest)
                  .datasetImportJob();
  
          status = datasetImportJob.status();
          System.out.println("Dataset import job status: " + status);
  
          if (status.equals("ACTIVE") || status.equals("CREATE FAILED")) {
              break;
          }
          try {
              Thread.sleep(waitInMilliseconds);
          } catch (InterruptedException e) {
              System.out.println(e.getMessage());
          }
      }
      return datasetImportJobArn;
  
  } catch (PersonalizeException e) {
      System.out.println(e.awsErrorDetails().errorMessage());
  }
  return "";
}
```

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

```
// Get service clients and commands using ES6 syntax.
import { CreateDatasetImportJobCommand, PersonalizeClient } from
  "@aws-sdk/client-personalize";

// create personalizeClient
const personalizeClient = new PersonalizeClient({
  region: "REGION"
});

// Set the dataset import job parameters.
export const datasetImportJobParam = {
  datasetArn: 'DATASET_ARN', /* required */
  dataSource: {  
    dataLocation: 's3://amzn-s3-demo-bucket/<folderName>/<CSVfilename>.csv'  /* required */
  },
  jobName: 'NAME',                        /* required */
  roleArn: 'ROLE_ARN',                    /* required */
  importMode: "FULL",                     /* optional, default is FULL */
  publishAttributionMetricsToS3: true     /* set to true to publish metrics to Amazon S3 bucket */
};

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

------