Kode aplikasi Anda untuk eksperimen

Setelah membuat proyek dan menentukan variabel jarak jauh di Pusat Mitra, Anda siap memperbarui kode di aplikasi Universal Windows Platform (UWP) ke:

  • Menerima nilai variabel jarak jauh dari Pusat Mitra.
  • Gunakan variabel jarak jauh untuk mengonfigurasi pengalaman aplikasi bagi pengguna Anda.
  • Catat peristiwa ke Pusat Mitra yang menunjukkan kapan pengguna telah melihat eksperimen Anda dan melakukan tindakan yang diinginkan (juga disebut konversi).

Untuk menambahkan perilaku ini ke aplikasi, Anda akan menggunakan API yang disediakan oleh sdk Microsoft Store Services.

Bagian berikut menjelaskan proses umum untuk mendapatkan variasi untuk eksperimen dan acara pencatatan Anda ke Pusat Mitra. Setelah mengkodekan aplikasi untuk eksperimen, Anda dapat menentukan eksperimen di Pusat Mitra. Untuk panduan yang menunjukkan proses end-to-end membuat dan menjalankan eksperimen, lihat Membuat dan menjalankan eksperimen pertama Anda dengan pengujian A/B.

Catatan

Beberapa API eksperimen di SDK Layanan Microsoft Store menggunakan pola asinkron untuk mengambil data dari Pusat Mitra. Ini berarti bahwa bagian dari eksekusi metode ini dapat terjadi setelah metode dipanggil, sehingga UI aplikasi Anda dapat tetap responsif saat operasi selesai. Pola asinkron mengharuskan aplikasi Anda untuk menggunakan kata kunci async dan menunggu operator saat memanggil API, seperti yang ditunjukkan oleh contoh kode dalam artikel ini. Dengan konvensi, metode asinkron diakhiri dengan Async.

Mengonfigurasi proyek Anda

Untuk memulai, instal SDK Layanan Microsoft Store di komputer pengembangan Anda dan tambahkan referensi yang diperlukan ke proyek Anda.

  1. Instal SDK Layanan Microsoft Store.
  2. Buka proyek Anda di Visual Studio.
  3. Di Penjelajah Solusi, perluas simpul proyek Anda, klik kanan Referensi, dan klik Tambahkan Referensi.
  4. Di Manajer Referensi, perluas Windows Universal dan klik Ekstensi.
  5. Dalam daftar SDK, pilih kotak centang di samping Microsoft Engagement Framework dan klik OK.

Catatan

Contoh kode dalam artikel ini mengasumsikan bahwa file kode Anda telah menggunakan pernyataan untuk System.Threading.Tasks dan Microsoft.Services.Store.Engagement namespaces.

Dapatkan data variasi dan catat peristiwa tampilan untuk eksperimen Anda

Dalam proyek Anda, temukan kode untuk fitur yang ingin Anda ubah dalam eksperimen Anda. Tambahkan kode yang mengambil data untuk variasi, gunakan data ini untuk mengubah perilaku fitur yang Anda uji, lalu catat peristiwa tampilan untuk eksperimen Anda ke layanan pengujian A/B di Pusat Mitra.

Kode spesifik yang Anda butuhkan akan bergantung pada aplikasi Anda, tetapi contoh berikut menunjukkan proses dasarnya. Untuk contoh kode lengkap, lihat Membuat dan menjalankan eksperimen pertama Anda dengan pengujian A/B.

private StoreServicesExperimentVariation variation;
private StoreServicesCustomEventLogger logger;

// Assign this variable to the project ID for your experiment from Dev Center.
// The project ID shown below is for example purposes only.
private string projectId = "F48AC670-4472-4387-AB7D-D65B095153FB";

private async Task InitializeExperiment()
{
    // Get the current cached variation assignment for the experiment.
    var result = await StoreServicesExperimentVariation.GetCachedVariationAsync(projectId);
    variation = result.ExperimentVariation;

    // Refresh the cached variation assignment if necessary.
    if (result.ErrorCode != StoreServicesEngagementErrorCode.None || result.ExperimentVariation.IsStale)
    {
        result = await StoreServicesExperimentVariation.GetRefreshedVariationAsync(projectId);

        if (result.ErrorCode == StoreServicesEngagementErrorCode.None)
        {
            variation = result.ExperimentVariation;
        }
    }

    // Get the remote variable named "buttonText" and assign the value
    // to the button.
    var buttonText = variation.GetString("buttonText", "Grey Button");
    await button.Dispatcher.RunAsync(
        Windows.UI.Core.CoreDispatcherPriority.Normal,
        () =>
        {
            button.Content = buttonText;
        });

    // Log the view event named "userViewedButton" to Dev Center.
    if (logger == null)
    {
        logger = StoreServicesCustomEventLogger.GetDefault();
    }

    logger.LogForVariation(variation, "userViewedButton");
}

Langkah-langkah berikut menjelaskan bagian-bagian penting dari proses ini secara rinci.

  1. Mendeklarasikan objek StoreServicesExperimentVariation yang mewakili penetapan variasi saat ini dan objek StoreServicesCustomEventLogger yang akan Anda gunakan untuk mencatat tampilan dan peristiwa konversi ke Pusat Mitra.

    private StoreServicesExperimentVariation variation;
    private StoreServicesCustomEventLogger logger;
    
  2. Deklarasikan variabel string yang ditetapkan ke ID proyek untuk eksperimen yang ingin Anda ambil.

    Catatan

    Anda mendapatkan ID proyek saat membuat proyek di Pusat Mitra. ID proyek yang ditunjukkan di bawah ini adalah misalnya tujuan saja.

    private string projectId = "F48AC670-4472-4387-AB7D-D65B095153FB";
    
  3. Dapatkan penetapan variasi cache saat ini untuk eksperimen Anda dengan memanggil metode GetCachedVariationAsync statis, dan berikan ID proyek untuk eksperimen Anda ke metode. Metode ini mengembalikan objek StoreServicesExperimentVariationResult yang menyediakan akses ke penetapan variasi melalui properti ExperimentVariation .

    var result = await StoreServicesExperimentVariation.GetCachedVariationAsync(projectId);
    variation = result.ExperimentVariation;
    
  4. Periksa properti IsStale untuk menentukan apakah penetapan variasi yang di-cache perlu disegarkan dengan penetapan variasi jarak jauh dari server. Jika perlu disegarkan, panggil metode GetRefreshedVariationAsync statis untuk memeriksa penetapan variasi yang diperbarui dari server dan menyegarkan variasi cache lokal.

    if (result.ErrorCode != StoreServicesEngagementErrorCode.None || result.ExperimentVariation.IsStale)
    {
        result = await StoreServicesExperimentVariation.GetRefreshedVariationAsync(projectId);
    
        if (result.ErrorCode == StoreServicesEngagementErrorCode.None)
        {
            variation = result.ExperimentVariation;
        }
    }
    
  5. Gunakan metode GetBoolean, GetDouble, GetInt32, atau GetString dari objek StoreServicesExperimentVariation untuk mendapatkan nilai untuk penetapan variasi. Dalam setiap metode, parameter pertama adalah nama variasi yang ingin Anda ambil (ini adalah nama yang sama dari variasi yang Anda masukkan di Pusat Mitra). Parameter kedua adalah nilai default yang harus dikembalikan metode jika tidak dapat mengambil nilai yang ditentukan dari Pusat Mitra (misalnya, jika tidak ada konektivitas jaringan), dan versi variasi yang di-cache tidak tersedia.

    Contoh berikut menggunakan GetString untuk mendapatkan variabel bernama buttonText dan menentukan nilai variabel default dari Grey Button.

    var buttonText = variation.GetString("buttonText", "Grey Button");
    
  6. Dalam kode Anda, gunakan nilai variabel untuk mengubah perilaku fitur yang Anda uji. Misalnya, kode berikut menetapkan nilai tombolText ke konten tombol di aplikasi Anda. Contoh ini mengasumsikan Anda telah mendefinisikan tombol ini di tempat lain dalam proyek Anda.

    await button.Dispatcher.RunAsync(
        Windows.UI.Core.CoreDispatcherPriority.Normal,
        () =>
        {
            button.Content = buttonText;
        });
    
  7. Terakhir, catat peristiwa tampilan untuk eksperimen Anda ke layanan pengujian A/B di Pusat Mitra. Menginisialisasi bidang ke logger objek StoreServicesCustomEventLogger dan panggil metode LogForVariation . Lewati objek StoreServicesExperimentVariation yang mewakili penetapan variasi saat ini (objek ini memberikan konteks tentang peristiwa ke Pusat Mitra) dan nama peristiwa tampilan untuk eksperimen Anda. Ini harus sesuai dengan nama peristiwa tampilan yang Anda masukkan untuk eksperimen Anda di Pusat Mitra. Kode Anda harus mencatat peristiwa tampilan saat pengguna mulai melihat variasi yang merupakan bagian dari eksperimen Anda.

    Contoh berikut menunjukkan cara mencatat peristiwa tampilan bernama userViewedButton. Dalam contoh ini, tujuan percobaan adalah untuk membuat pengguna mengklik tombol di aplikasi, sehingga peristiwa tampilan dicatat setelah aplikasi mengambil data variasi (dalam hal ini, teks tombol) dan menetapkannya ke konten tombol.

    if (logger == null)
    {
        logger = StoreServicesCustomEventLogger.GetDefault();
    }
    
    logger.LogForVariation(variation, "userViewedButton");
    

Mencatat peristiwa konversi ke Pusat Mitra

Selanjutnya, tambahkan kode yang mencatat peristiwa konversi ke layanan pengujian A/B di Pusat Mitra. Kode Anda harus mencatat peristiwa konversi saat pengguna mencapai tujuan untuk eksperimen Anda. Kode spesifik yang Anda butuhkan akan bergantung pada aplikasi Anda, tetapi berikut adalah langkah-langkah umum. Untuk contoh kode lengkap, lihat Membuat dan menjalankan eksperimen pertama Anda dengan pengujian A/B.

  1. Dalam kode yang berjalan ketika pengguna mencapai tujuan untuk salah satu tujuan eksperimen, panggil metode LogForVariation lagi dan lewati objek StoreServicesExperimentVariation dan nama peristiwa konversi untuk eksperimen Anda. Ini harus cocok dengan salah satu nama peristiwa konversi yang Anda masukkan untuk eksperimen Anda di Pusat Mitra.

    Contoh berikut mencatat peristiwa konversi bernama userClickedButton dari penangan peristiwa Klik untuk tombol. Dalam contoh ini, tujuan percobaan adalah untuk membuat pengguna mengklik tombol.

    private void button_Click(object sender, RoutedEventArgs e)
    {
        if (logger == null)
        {
            logger = StoreServicesCustomEventLogger.GetDefault();
        }
    
        logger.LogForVariation(variation, "userClickedButton");
    }
    

Langkah berikutnya

Setelah anda mengkodekan eksperimen di aplikasi anda, anda siap untuk langkah-langkah berikut:

  1. Tentukan eksperimen Anda di Pusat Mitra. Buat eksperimen yang menentukan peristiwa tampilan, peristiwa konversi, dan variasi unik untuk pengujian A/B Anda.
  2. Jalankan dan kelola eksperimen Anda di Pusat Mitra.