

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

# Contoh 2: pembagian A/B lalu lintas
<a name="monetization-functions-examples-ab"></a>

## Skenario
<a name="monetization-functions-examples-ab-scenario"></a>

Layanan streaming ingin menggunakan fungsi CUSTOM\_OUTPUT untuk membagi lalu lintas permintaan iklan secara acak antara dua URL server keputusan iklan (ADS) untuk pengujian. A/B Setengah dari permintaan iklan masuk ke titik akhir v1 dan setengahnya pergi ke titik akhir v2.

## Konfigurasi
<a name="monetization-functions-examples-ab-config"></a>

**A/B pembagian lalu lintas (CUSTOM\_OUTPUT):**

```
{
    "FunctionId": "abTestAdsUrl",
    "FunctionType": "CUSTOM_OUTPUT",
    "CustomOutputConfiguration": {
        "Runtime": "JSONATA",
        "Output": {
            "adsRequest.url": "{%$random() < 0.5 ? 'https://ads.example.com/v1/decision?session=' & session.id : 'https://ads.example.com/v2/decision?session=' & session.id%}"
        }
    }
}
```

Dalam konfigurasi ini:
+ `FunctionId`— Nama unik untuk fungsi ini.
+ `FunctionType`— `CUSTOM_OUTPUT` mengevaluasi ekspresi tanpa membuat panggilan HTTP.
+ `Output`— Memetakan `adsRequest.url` ke ekspresi yang secara acak memilih salah satu dari dua URL ADS.

## Pemetaan fungsi
<a name="monetization-functions-examples-ab-mapping"></a>

```
{
    "FunctionMapping": {
        "PRE_ADS_REQUEST": "abTestAdsUrl"
    }
}
```

## Apa yang terjadi ketika fungsi berjalan
<a name="monetization-functions-examples-ab-runtime"></a>

1. Jeda iklan ditemukan selama pemutaran.

1. MediaTailor menjalankan hook `PRE_ADS_REQUEST` siklus hidup dan berjalan. `abTestAdsUrl`

1. `$random()`Fungsi mengembalikan nilai antara 0 dan 1. Jika nilainya kurang dari 0,5, fungsi menetapkan URL ADS ke titik akhir v1. Jika tidak, ia menetapkan URL ke titik akhir v2.

`$random()`Fungsi dievaluasi pada setiap jeda iklan, sehingga pembagiannya adalah per permintaan iklan, bukan per sesi.

**Tip**  
Untuk menyesuaikan rasio split lalu lintas, ubah nilai ambang batas. Misalnya, `$random() < 0.8` mengirimkan 80% lalu lintas ke URL pertama dan 20% ke URL kedua.

**catatan**  
Menulis untuk `adsRequest.url` mengganti URL ADS default yang dikonfigurasi dalam konfigurasi pemutaran untuk jeda iklan saat ini.

Lihat informasi selengkapnya di [KUSTOM\_OUTPUT](monetization-functions-types-custom-output.md), [PRE\_ADS\_REQUEST](monetization-functions-hooks-pre-ads.md), dan [Referensi ekspresi Jsonata](monetization-functions-jsonata.md).