Bagikan melalui


Perluas formulir pemasaran keluar menggunakan kode

Catatan

Pada tanggal 1 September 2023, Dynamics 365 Marketing dan Dynamics 365 Customer Insights akan dijual bersama dalam satu SKU produk bernama Dynamics 365 Customer Insights. Aplikasi individual akan diubah namanya menjadi Dynamics 365 Customer Insights - Perjalanan dan Dynamics 365 Customer Insights - Data. Untuk informasi selengkapnya, lihat Tanya Jawab Umum Dynamics 365 Customer Insights

Selain itu, pada 1 September 2023, pelanggan Dynamics 365 Marketing baru hanya akan menerima fitur pemasaran real-time. Untuk informasi selengkapnya, lihat Penginstalan pemasaran real-time default. Banyak halaman dokumentasi saat ini mengacu pada fitur keluar yang mungkin tidak tersedia atau mungkin berfungsi dalam cara yang berbeda dalam pemasaran real-time. Konten dokumentasi akan diperbarui pada bulan September untuk menunjukkan apakah konten tersebut berlaku untuk pemasaran real-time atau pemasaran keluar.

Penting

Artikel ini hanya berlaku untuk pemasaran keluar.

Formulir pemasaran menentukan rangkaian bidang input yang diatur ke tata letak formulir. Anda mungkin akan membangun pustaka kecil formulir yang dapat digunakan kembali, yang dapat Anda tempatkan di beragam halaman pemasaran sesuai keperluan. Untuk menambahkan formulir pemasaran ke halaman pemasaran tertentu, gunakan elemen formulir untuk memosisikan formulir, dan pilih pengaturan lokal untuknya, yang hanya berlaku untuk halaman tersebut. Informasi teknis Formulir pemasaran keluar

Formulir pemasaran keluar dapat diperluas menggunakan JavaScript untuk melakukan tindakan bisnis khusus dalam Perjalanan. Dynamics 365 Customer Insights Berikut ini adalah metode yang tersedia untuk memperluas formulir pemasaran keluar.

JavaScript API

Kami menggunakan versi terbaru JavaScript API. Pastikan referensi form-loader.js atau skrip Anda terlihat seperti loader.js atau https://mktdplp102cdn.azureedge.net/public/latest/js/form-loader.js?v=[version tag]https://mktdplp102cdn.azureedge.net/public/latest/js/loader.js?v=[version tag], masing-masing. Bagian ini ?v=[version tag] dapat dihilangkan. Skrip lama (skrip yang terlihat seperti https://mktdplp102cdn.azureedge.net/public/static/[version tag]/js/form-loader.js atau https://mktdplp102cdn.azureedge.net/public/static/[version tag]/js/loader.js) sudah usang dan tidak lagi didukung.

Tempatkan kode kustom langsung setelah form-loader.js skrip.

Contoh kode:

<script src="https://mktdplp102cdn.azureedge.net/public/latest/js/form-loader.js?v=..."></script>
<script>
// correct - the script will attach event handlers right after form loader script
MsCrmMkt.MsCrmFormLoader.on("afterFormLoad", function() {});

// wrong - the script will attach event handlers after window has finished loading, form already might have been loaded in the meantime and no events will trigger anymore
// window.onload = function() { MsCrmMkt.MsCrmFormLoader.on("afterFormLoad", function() {}); };
</script>

Metode MsCrmMkt.MsCrmFormLoader

Nama Fungsi Description Nama Parameter Jenis parameter Deskripsi Parameter Kembali
.on(eventType,callback) Mendaftarkan callback ke jenis peristiwa siklus hidup formulir eventType string, salah satu "afterFormLoad",,,, "afterFormRender""afterFormSubmit""formLoad", "formRender""formSubmit" Jenis acara untuk dihubungkan undefined
callback Fungsi panggilan balik Function
.off(eventType) Batalkan pendaftaran callback dari peristiwa siklus hidup formulir tertentu eventType fakultatif string, salah satu "afterFormLoad",,,, "afterFormRender""afterFormSubmit""formLoad", "formRender""formSubmit" Jenis acara untuk dihubungkan undefined
.sendFormCaptureToCrm(form) Kirim tanggapan formulir ke Dynamics 365 Customer Insights - Perjalanan, hanya didukung untuk skenario pengambilan formulir form Elemen DOM mewakili formulir atau pemilih JQuery yang mewakili formulir Bentuk elemen DOM Promise<string>

Bentuk acara

Nama Acara Dipicu untuk formulir yang diambil Sintaks Description
formLoad Ya MsCrmMkt.MsCrmFormLoader
.on("formLoad", function(event) {})
Pemicu saat tempat penampung formulir dikenali sebelum konten formulir aktual diambil, untuk formulir yang diambil dipicu saat formulir dikenali
formRender No MsCrmMkt.MsCrmFormLoader
.on("formRender", function(event) {})
Pemicu setelah konten formulir diambil dan sebelum konten formulir disuntikkan ke halaman.
afterFormRender No MsCrmMkt.MsCrmFormLoader
.on("afterFormRender", function(event) {})
Pemicu setelah konten formulir disuntikkan ke halaman sebelum kait validasi dipasang.
afterFormLoad No MsCrmMkt.MsCrmFormLoader
.on("afterFormLoad", function(event) {})
Pemicu setelah konten formulir disuntikkan ke halaman dan setelah kait validasi dilampirkan.
formSubmit No MsCrmMkt.MsCrmFormLoader
.on("formSubmit", function(event) {})
Pemicu pada pengiriman formulir sebelum pengiriman formulir dikirim ke server.
afterFormSubmit Ya MsCrmMkt.MsCrmFormLoader
.on("afterFormSubmit", function(event) {})
Pemicu pada pengiriman formulir setelah pengiriman formulir dikirim ke server. Ini memicu hanya ketika pengiriman berhasil. Ini memicu sebelum pengalihan atau menampilkan pesan konfirmasi.

Untuk setiap callback acara, metode berikut tersedia:

Nama Metode Description Jenis Pengembalian
.getType() Mendapatkan jenis acara string, salah satu "afterFormLoad",,,, "afterFormRender""afterFormSubmit""formLoad", "formRender""formSubmit"
.getFormPageId() Mendapatkan ID halaman formulir - ini berkaitan dengan msdyncrm_formpage pengidentifikasi unik entitas string
.getFormPlaceholder() Mendapatkan elemen DOM yang mewakili formulir Elemen DOM
.preventDefault() Membatalkan pengiriman formulir, hanya berlaku untuk jenis formulir formSubmit undefined
.preventFormLoadingProgressBar() Menyembunyikan pemintal saat formulir sedang dimuat, hanya berlaku untuk jenis acara formLoad undefined
.setFormNotification(function (n) {}) Mengganti callback untuk merender notifikasi formulir (seperti pesan pengiriman formulir). Tanpa badan fungsi, tidak ada pemberitahuan yang akan diberikan. Hanya berlaku untuk jenis acara formLoad . undefined

Kustomisasi perilaku pengambilan formulir

Pengambilan formulir diarahkan oleh elemen konfigurasi yang terlihat seperti <div class="d365-mkt-config" style="display:none" data-website-id="..." data-hostname="...">. Anda dapat mengubah perilaku pengambilan formulir dengan menambahkan atribut berikut:

Nama atribut Description
data-ignore-prevent-default="true" Ketika ditentukan, formulir akan diserahkan terlepas dari fakta yang .preventDefault() dipanggil pada acara tersebut.
data-no-submit="true" Saat ditentukan, skrip pengambilan formulir tidak akan menangkap peristiwa pengiriman formulir, Anda harus memicu secara MsCrmMkt.MsCrmFormLoader.sendFormCaptureToCrm(form) eksplisit. Ini berguna untuk kasus-kasus ketika Anda ingin melakukan pengiriman formulir terlebih dahulu dan menyinkronkan ke Dynamics 365 Customer Insights - Perjalanan nanti.

Catatan

API Javascript hanya tersedia untuk formulir yang dihosting sebagai skrip, tidak didukung untuk opsi hosting iframe.

Menambahkan cuplikan kode Anda saat menggunakan portal

Untuk menambahkan kode JavaScript, Anda harus mengikuti langkah-langkah di bawah ini:

  1. Buka aplikasi Customer Insights - Journeys dan buka halaman Pemasaran.

  2. Pilih Baru untuk membuat halaman pemasaran baru.

  3. Seret dan letakkan elemen Formulir dari tab Toolbox ke tab Desainer dan pilih formulir pemasaran yang ingin Anda gunakan.

    Tambahkan halaman formulir baru.

  4. Beralih ke tab HTML dan cuplikan kode Anda.

    Tambahkan kode di tab HTML.

  5. Pilih Simpan untuk menyimpan perubahan, lalu pilih Tayangkan.

Tambahkan cuplikan kode Anda saat menggunakan CMS dan hosting formulir Anda sendiri

Untuk menambahkan cuplikan kode, Anda harus mengikuti langkah-langkah di bawah ini:

  1. Buka aplikasi Customer Insights - Journeys dan buka Formulir pemasaran di area pemasaran Keluar

  2. Pilih Baru untuk membuat formulir pemasaran baru.

  3. Pilih Tayangkan.

  4. Pilih tab Hosting formulir dan di bawah domain yang tersedia untuk hosting formulir, pilih domain jika tersedia, atau pilih + Buat domain baru.

    Tab Hosting Formulir.

  5. Tambahkan domain CMS Anda sendiri dan pilih Simpan.

  6. Di tab Dari hosting , di bawah tab Halaman formulir pemasaran terkait, pilih ... dan + Halaman Formulir Baru untuk menambahkan halaman formulir pemasaran.

    Wawasan Pelanggan Terkait - Halaman formulir perjalanan.

  7. Pilih Simpan.

  8. Sekarang pilih halaman formulir yang telah Anda buat dan salin skrip ke clipboard.

    Tambahkan cuplikan kode.

  9. Sekarang di CMS Anda, edit halaman tempat Anda ingin menyertakan formulir, tambahkan penyesuaian dan skrip Anda.

    Penyesuaian iklan untuk CMS.

Contoh

  1. Validasi sampel - memeriksa apakah kotak teks adalah Fabricam atau Contoso, jika tidak mencegah pengiriman formulir.

    MsCrmMkt.MsCrmFormLoader.on('formSubmit', function(event) {
      // sample validation - check if 
      document.getElementById('txt-company-name-message').style.visibility = 'hidden';
      var companyName = document.getElementById('txt-company-name').value;
      if (companyName !== 'Fabricam' && companyName != 'Contoso') 
      {
        document.getElementById('txt-company-name-message').style.visibility = 'visible';
        event.preventDefault();
      }
    });
    
  2. Mengisi parameter string kueri masuk ke bidang tersembunyi.

    MsCrmMkt.MsCrmFormLoader.on('afterFormLoad', function(event) {
      var self = window.location.toString();
      var queryString = self.split("?");
      var hiddenFields = document.querySelectorAll("input[type=hidden]");
      if (queryString.length > 1) 
      {
        var pairs = queryString[1].split("&");
        for (var pairIndex in pairs) 
        {
          var pair = pairs[pairIndex].split("=");
          if (pair.length !== 2) 
          {
            continue;
          }
          var key = pair[0];
          var value = pair[1];
          if (key && value) 
          {
            for (var i = 0; i < hiddenFields.length; i++) 
            {
              if (hiddenFields[i].id === key) 
              {
                hiddenFields[i].value = value;
              }
            }
          }
        }
      }
    });
    
  3. Melokalkan formulir (daftar pilihan) - Anda dapat menggunakan ekstensibilitas sisi klien untuk melokalkan formulir pemasaran keluar. Pelokalan harus terjadi setelah formulir dimuat (afterFormLoad peristiwa). Di dalam halaman pemasaran (atau di CMS tempat Anda menghosting formulir), tambahkan skrip pelokalan berikut:

    <script>
    function translatePicklists(lcid) 
    {
        var picklists = document.querySelectorAll("select");
        for(var i = 0; i < picklists.length; i++) 
        {
            var picklist = picklists[i];
            var relatedDatalist = document.getElementById("localize-" + picklist.name + "-" + lcid.toString());
            if (relatedDatalist) 
            {
                for(var j = 0; j < picklist.options.length; j++) 
                {
                    if (j >= relatedDatalist.options.length) 
                    {
                        break;
                    }
                    picklist.options[j].text = relatedDatalist.options[j].text;
                }
            }
        }
    }
    MsCrmMkt.MsCrmFormLoader.on("afterFormLoad", function(event) { translatePicklists(1029); });
    </script>
    

    Dalam formulir pemasaran, pastikan Anda telah menyiapkan terjemahannya. Edit formulir pemasaran di desainer HTML, format (klik kanan di desainer, lalu pilih format), dan tambahkan terjemahan yang diperlukan.

    <div data-editorblocktype="Field-dropdown">
        <div class="marketing-field">
            <div class="lp-form-field" data-required-field="false">
                <label for="f7ae1a98-0d83-4592-afe0-272c85ce607d" class="lp-ellipsis" title="">Marital status</label>
                <select id="f7ae1a98-0d83-4592-afe0-272c85ce607d" name="f7ae1a98-0d83-4592-afe0-272c85ce607d" class="lp-form-fieldInput" title="" style="width: 100%; box-sizing: border-box;">
                  <option value=""></option>
                  <option value="1">Single</option>
                  <option value="2">Married</option>
                  <option value="3">Divorced</option>
                  <option value="4">Widowed</option>
                </select>
            </div>
        </div>
    </div>
    <!-- format is localize-fieldid-lcid -->
    <datalist id="localize-f7ae1a98-0d83-4592-afe0-272c85ce607d-1029">
        <option></option>
        <option>Svobodny(a)</option>
        <option>Zenaty(a)</option>
        <option>Rozvedeny(a)</option>
        <option>Vdovec(vdova)</option>
    </datalist>