

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

# Fungsi panduan mulai cepat
<a name="monetization-functions-quickstart"></a>

Panduan ini memandu Anda melalui pembuatan fungsi pertama Anda, melampirkannya ke konfigurasi pemutaran, dan memverifikasi bahwa itu berjalan. Pada akhirnya, Anda akan memiliki fungsi kerja yang mengklasifikasikan setiap jenis perangkat pemirsa (`ctv`,`mobile`, atau`desktop`) dan menyimpannya sebagai parameter pemain yang tersedia di setiap permintaan ADS.

## Prasyarat
<a name="monetization-functions-quickstart-prereqs"></a>

Sebelum memulai, pastikan Anda memiliki konfigurasi MediaTailor pemutaran yang ada. Jika Anda tidak memilikinya, lihat [Memulai dengan MediaTailor](getting-started.md).

## Langkah 1: Buat fungsi
<a name="monetization-functions-quickstart-step1"></a>

Pada langkah ini, Anda membuat fungsi yang mengklasifikasikan jenis perangkat penampil berdasarkan string agen pengguna dan menyimpan hasilnya dalam parameter pemain. Fungsi ini menggunakan tipe keluaran Kustom (tidak ada panggilan API eksternal) dengan [Referensi ekspresi Jsonata](monetization-functions-jsonata.md) ekspresi untuk mengevaluasi agen pengguna.

1. Buka MediaTailor konsol di [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Di panel navigasi, pilih **Fungsi**.

1. Pilih **Buat fungsi**.

1. Dalam modal create wizard, pilih **Create from scratch**, lalu pilih **Continue**.

1. Di bawah **Jenis fungsi**, pilih ubin **keluaran Kustom**.

1. Di bawah **Detail fungsi**, masukkan yang berikut ini:
   + **ID Fungsi**: `myFirstFunction`
   + **Deskripsi:** `Classify device type from user agent`

1. Di bawah **Konfigurasi keluaran khusus**, di bagian **Output**, tambahkan satu baris:
   + **Kunci**: `player_params.deviceType`
   + **Nilai**: `{% $contains(session.user_agent, 'CTV') ? 'ctv' : $contains(session.user_agent, 'Mobile') ? 'mobile' : 'desktop' %}`

1. Pilih **Buat fungsi**.

Pemberitahuan sukses mengonfirmasi bahwa fungsi telah dibuat, dan Anda diarahkan ke halaman detail fungsi.

Konfigurasi fungsi yang dihasilkan adalah:

```
{
    "FunctionId": "myFirstFunction",
    "FunctionType": "CUSTOM_OUTPUT",
    "Description": "Classify device type from user agent",
    "CustomOutputConfiguration": {
        "Runtime": "JSONATA",
        "Output": {
            "player_params.deviceType": "{% $contains(session.user_agent, 'CTV') ? 'ctv' : $contains(session.user_agent, 'Mobile') ? 'mobile' : 'desktop' %}"
        }
    }
}
```

## Langkah 2: Lampirkan fungsi ke konfigurasi pemutaran
<a name="monetization-functions-quickstart-step2"></a>

Petakan fungsi ke kait siklus hidup pada konfigurasi pemutaran Anda. Pemetaan memberi tahu MediaTailor kapan harus menjalankan fungsi.

1. Di panel navigasi, pilih **Konfigurasi**.

1. Pilih konfigurasi pemutaran yang ingin Anda perbarui.

1. Pilih **Edit**.

1. Perluas bagian **konfigurasi Fungsi**.

1. Untuk **hook inisialisasi Sesi**, pilih `myFirstFunction` dari dropdown.

1. Pilih **Simpan**.

Ini menempel pada `myFirstFunction` kait [Pre-session inisialisasi](monetization-functions-hooks-pre-session.md) siklus hidup. Pemetaan fungsi yang dihasilkan adalah:

```
{
    "FunctionMapping": {
        "PRE_SESSION_INITIALIZATION": "myFirstFunction"
    }
}
```

MediaTailor menjalankan fungsi sekali di awal setiap sesi baru pada konfigurasi pemutaran ini.

## Langkah 3: Mulai sesi dan verifikasi fungsi berjalan
<a name="monetization-functions-quickstart-step3"></a>

Mulai sesi pemutaran baru untuk memicu fungsi. Gunakan permintaan inisialisasi sesi ke titik akhir inisialisasi sesi konfigurasi pemutaran Anda.

MediaTailor secara otomatis menerbitkan CloudWatch metrik untuk setiap eksekusi fungsi — tidak diperlukan keikutsertaan. Setelah memulai sesi, periksa metrik berikut di `AWS/MediaTailor` namespace untuk mengonfirmasi fungsi Anda berjalan:
+ `PreSessionInitHook.Invocations`— Mengonfirmasi kail ditembakkan.
+ `PreSessionInitHook.Errors`— Harus 0 jika fungsi berhasil.
+ `Function.Invocations`— Mengonfirmasi fungsi individu yang dijalankan. Metrik ini mencakup`FunctionId`,`FunctionType`, dan `HookType` dimensi sehingga Anda dapat memfilter `myFirstFunction` secara khusus.

Jika fungsi gagal, MediaTailor memancarkan peristiwa log kesalahan ke Manifest Logs secara default (tidak diperlukan konfigurasi):
+ `PRE_SESSION_INIT_HOOK_ERROR` Hook-level Kegagalan dengan `errorType` dan`cause`.
+ `PRE_SESSION_INIT_FUNCTION_ERROR`— Function-level kegagalan dengan detail spesifik `functionId` dan kesalahan.

Contoh berikut menunjukkan `PRE_SESSION_INIT_FUNCTION_ERROR` peristiwa untuk kesalahan sintaks dalam ekspresi fungsi:

```
{
    "eventTimestamp": "2024-01-01T12:00:00.076000000Z",
    "eventType": "PRE_SESSION_INIT_FUNCTION_ERROR",
    "eventDescription": "Function execution failed",
    "awsAccountId": "123456789012",
    "originId": "my-config",
    "sessionId": "session-123",
    "requestId": "req-abc",
    "eventId": "5dc6f040-0f72-4e8c-a64e-25eeef62708c",
    "functionId": "myFirstFunction",
    "functionType": "CUSTOM_OUTPUT",
    "executionTimeMs": 2,
    "errorType": "SYNTAX_ERROR",
    "cause": "Expected \")\" before end of expression",
    "input": {}
}
```

Gunakan `eventId` bidang untuk mengkorelasikan peristiwa kesalahan hook dan fungsi untuk eksekusi yang sama. `errorType`Bidang memberi tahu Anda kelas kegagalan — lihat [Pemecahan masalah dan pemantauan](monetization-functions-troubleshooting.md) daftar lengkap jenis kesalahan dan perbaikan.

**catatan**  
Untuk pencatatan sukses yang mendetail, ikut `PRE_SESSION_INIT_HOOK_SUMMARY` serta dan `PRE_SESSION_INIT_FUNCTION_COMPLETED` acara dalam konfigurasi Manifest Log Anda. Ringkasan peristiwa menunjukkan hasil hook untuk setiap eksekusi. Peristiwa yang telah selesai menampilkan masukan, output, dan request/response detail HTTP setiap fungsi. Ini dinonaktifkan secara default untuk meminimalkan biaya log. Untuk informasi selengkapnya, lihat [Pemecahan masalah dan pemantauan](monetization-functions-troubleshooting.md).

## Apa yang terjadi di balik layar
<a name="monetization-functions-quickstart-behind-scenes"></a>

Berikut adalah alur permintaan lengkap untuk fungsi yang baru saja Anda buat:

1. Pemain memulai sesi dengan MediaTailor.

1. MediaTailor mengaktifkan hook `PRE_SESSION_INITIALIZATION` siklus hidup dan berjalan. `myFirstFunction`

1. Fungsi mengevaluasi `session.user_agent` bidang dan menulis`ctv`,`mobile`, atau `desktop` ke`player_params.deviceType`.

1. MediaTailor membuat sesi dan mengembalikan manifes ke pemain.

1. Pemain menemukan jeda iklan selama pemutaran.

1. MediaTailor mengaktifkan kait `PRE_ADS_REQUEST` siklus hidup, lalu membuat permintaan ADS. Karena `deviceType` disimpan dalam parameter pemain, ini tersedia untuk dimasukkan dalam URL permintaan ADS melalui substitusi variabel dinamis.

1. ADS menggunakan jenis perangkat untuk menampilkan materi iklan bertarget.

1. MediaTailor menjahit iklan ke manifes dan mengembalikannya ke pemain.

Jika fungsi gagal karena alasan apa pun, MediaTailor buang output dan lanjutkan seolah-olah tidak ada fungsi yang terpasang. Penampil masih melihat iklan — hanya tanpa penargetan jenis perangkat.

## Topik yang disarankan
<a name="monetization-functions-quickstart-suggested-topics"></a>

Anda sekarang memiliki fungsi kerja yang terpasang pada konfigurasi pemutaran. Dari sini:
+ Untuk mempelajari bidang input dan ruang nama keluaran yang tersedia di setiap kait siklus hidup, lihat. [Pengait siklus hidup](monetization-functions-hooks.md)
+ Untuk mempelajari tentang berbagai jenis fungsi dan cara merantainya bersama-sama, lihat[Jenis fungsi dan komposisi](monetization-functions-types.md).
+ Untuk melihat contoh kerja lengkap, lihat[Contoh fungsi](monetization-functions-examples.md).