Dijeli putem


Proširivanje izlaznih marketinških obrazaca pomoću koda

Napomena

1. rujna 2023. Dynamics 365 Marketing i Dynamics 365 Customer Insights prodavat će se zajedno kao jedan SKU proizvoda pod nazivom Dynamics 365 Customer Insights. Pojedinačne aplikacije preimenovat će se u Dynamics 365 Customer Insights – putovi i Dynamics 365 Customer Insights – podaci. Dodatne informacije potražite u Najčešćim pitanjima o sustavu Dynamics 365 Customer Insights

Nadalje, 1. runja 2023. novi klijenti s aplikacijom Dynamics 365 Marketing dobit će samo značajke marketinga u stvarnom vremenu. Dodatne informacije potražite u Zadana instalacija marketinga u stvarnom vremenu. Mnogo stranica dokumentacije trenutno upućuje na izlazne značajke koje možda nisu dostupne ili funkcioniraju drugačije u marketingu u stvarnom vremenu. Sadržaj dokumentacije ažurirat će se u rujnu kako bi se naznačilo odnosi li se na marketing u stvarnom vremenu ili na izlazni marketing.

Važno

Ovaj se članak odnosi samo na izlazni marketing.

Marketinški obrazac definira skup polja unosa raspoređenih u shemu obrasca. Vjerojatno ćete stvoriti malu biblioteku obrazaca koji se mogu ponovno upotrebljavati i koje po potrebi možete postaviti na razne marketinške stranice. Za dodavanje marketinškog obrasca određenom marketinška stranica koristite element obrasca za pozicioniranje obrasca i odaberite lokalne postavke za njega, koje se primjenjuju samo na tu stranicu. Dodatne informacije Izlazni marketinški obrasci

Odlazni marketinški obrasci mogu se proširiti pomoću JavaScripta za izvođenje prilagođenih poslovnih akcija na Dynamics 365 Customer Insights putovanjima. Slijede metode koje su dostupne za proširenje izlaznih marketinških obrazaca.

JavaScript API

Konzumiramo najnoviju verziju JavaScript API-ja. Provjerite izgledaju li vaše reference na form-loader.js ili loader.js skriptu kako izgledaju 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], odnosno. Odjeljak ?v=[version tag] se može izostaviti. Starije skripte (skripte koje izgledaju https://mktdplp102cdn.azureedge.net/public/static/[version tag]/js/form-loader.js ili https://mktdplp102cdn.azureedge.net/public/static/[version tag]/js/loader.js) zastarjele su i više nisu podržane.

Postavite prilagođeni kôd odmah iza skripte form-loader.js .

Uzorak šifre:

<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>

MsCrmMkt.MsCrmFormLoader metode

Naziv funkcije Opis Naziv parametra Vrsta parametra Opis parametra Povrati
.on(eventType,callback) Registrira povratni poziv na vrstu događaja životnog ciklusa obrasca eventType string, jedan od "afterFormLoad", "afterFormRender",,,, "afterFormSubmit" "formLoad" "formRender" "formSubmit" Vrsta događaja za spajanje undefined
callback Funkcija povratnog poziva Function
.off(eventType) Poništavanje registracije povratnih poziva određenog događaja životnog ciklusa obrasca eventType neobavezan string, jedan od "afterFormLoad", "afterFormRender",,,, "afterFormSubmit" "formLoad" "formRender" "formSubmit" Vrsta događaja za spajanje undefined
.sendFormCaptureToCrm(form) Slanje obrasca na Dynamics 365 Customer Insights - Putovanja, podržana samo za scenarij snimanja obrazaca form DOM element koji predstavlja obrazac ili JQuery birač koji predstavlja obrazac Element DOM obrasca Promise<string>

Događaji obrasca

Naziv događaja Pokrenuto za snimljene obrasce Sintaksa Opis
formLoad Jest MsCrmMkt.MsCrmFormLoader
.on("formLoad", function(event) {})
Pokreće se kada se rezervirano mjesto obrasca prepozna prije dohvaćanja stvarnog sadržaja obrasca, za snimljene obrasce aktivira se kada se obrazac prepozna
formRender No MsCrmMkt.MsCrmFormLoader
.on("formRender", function(event) {})
Pokreće se nakon dohvaćanja sadržaja obrasca i prije ubrizgavanja sadržaja obrasca na stranicu.
afterFormRender No MsCrmMkt.MsCrmFormLoader
.on("afterFormRender", function(event) {})
Pokreće se nakon ubrizgavanja sadržaja obrasca na stranicu prije prilaganja kuka za provjeru valjanosti.
afterFormLoad No MsCrmMkt.MsCrmFormLoader
.on("afterFormLoad", function(event) {})
Pokreće se nakon ubrizgavanja sadržaja obrasca na stranicu i nakon prilaganja kuka za provjeru valjanosti.
formSubmit No MsCrmMkt.MsCrmFormLoader
.on("formSubmit", function(event) {})
Pokreće slanje obrasca prije slanja obrasca poslužitelju.
afterFormSubmit Jest MsCrmMkt.MsCrmFormLoader
.on("afterFormSubmit", function(event) {})
Okidači pri slanju obrasca nakon slanja obrasca poslužitelju. Pokreće se samo kada je slanje uspješno. Pokreće se prije preusmjeravanja ili prikazivanja potvrdne poruke.

Za svaki povratni poziv događaja dostupne su sljedeće metode:

Naziv načina Opis Vrsta vraćenih rezultata
.getType() Dohvaća vrstu događaja string, jedan od "afterFormLoad", "afterFormRender",,,, "afterFormSubmit" "formLoad" "formRender" "formSubmit"
.getFormPageId() Dohvaća ID stranice obrasca – to se odnosi na msdyncrm_formpage jedinstveni identifikator entiteta string
.getFormPlaceholder() Dohvaća element DOM koji predstavlja obrazac DOM element
.preventDefault() Poništava slanje obrasca, valjano samo za događaj vrste formSubmit undefined
.preventFormLoadingProgressBar() Skriva okretni gumb tijekom učitavanja obrasca, vrijedi samo za vrstu događaja formLoad undefined
.setFormNotification(function (n) {}) Nadjačava povratni poziv za isporuku obavijesti obrasca (poput poruke o slanju obrasca). Bez funkcionalnog tijela neće se dostavljati obavijesti. Vrijedi samo za događaj vrste formLoad . undefined

Prilagodba ponašanja hvatanja obrasca

Hvatanje obrasca usmjereno je konfiguracijskim elementom koji izgleda <div class="d365-mkt-config" style="display:none" data-website-id="..." data-hostname="...">. Ponašanje hvatanja obrasca možete promijeniti dodavanjem sljedećih atributa:

Naziv atributa Opis
data-ignore-prevent-default="true" Kada je navedeno, obrazac će se podnijeti bez obzira na činjenicu na koju se pozivalo na .preventDefault() događaj.
data-no-submit="true" Kada je navedeno, skripta za hvatanje obrazaca neće snimiti događaj slanja obrasca, trebali biste ga eksplicitno pokrenuti MsCrmMkt.MsCrmFormLoader.sendFormCaptureToCrm(form) . To je korisno u slučajevima kada prvo želite poslati obrazac, a kasnije sinkronizirati s Dynamics 365 Customer Insights - Putovanja.

Napomena

Javascript API dostupan je samo za obrasce hostirane kao skripta, nije podržan za opciju hostinga iframe.

Dodavanje isječak koda tijekom korištenja portala

Da biste dodali JavaScript kod, slijedite korake u nastavku:

  1. Otvorite aplikaciju Customer Insights – Putovanja i otvorite stranice Marketing.

  2. Odaberite Novo da biste stvorili novi marketinška stranica.

  3. Povucite i ispustite element obrasca s kartice Alatni okvir na karticu Dizajner i odaberite marketinški obrazac koji želite koristiti.

    Dodajte novu stranicu obrasca.

  4. Prebacite se na HTML karticu i isječak koda.

    Dodavanje koda na kartici HTML.

  5. Odaberite Spremi da biste spremili promjene, a zatim Idi uživo.

Dodavanje isječak koda kada koristite vlastiti CMS i hosting obrazaca

Da biste dodali isječak koda, slijedite korake u nastavku:

  1. Otvorite aplikaciju Customer Insights – Putovanja i otvorite marketinške obrasce u području Odlazni marketing

  2. Odaberite Novo da biste stvorili novi obrazac zainteresiranog.

  3. Odaberite Idi uživo.

  4. Odaberite karticu Hosting obrasca pa u odjeljku Dostupne domene za hosting obrazaca odaberite domenu ako je dostupna ili odaberite + Stvori novu domenu.

    Kartica Hosting obrasca.

  5. Dodajte vlastitu CMS domenu i odaberite Spremi.

  6. Na kartici Od hostinga na kartici Povezane stranice marketinškog obrasca odaberite ... i + Nova stranica obrasca za dodavanje stranice marketinškog obrasca.

    Povezani uvidi kupaca - stranice obrazaca putovanja.

  7. Odaberite Spremi.

  8. Sada odaberite stranicu obrasca koju ste stvorili i kopirajte skriptu u međuspremnik.

    Dodajte isječak koda.

  9. Sada u CMS-u uredite stranicu na koju želite uključiti obrazac, dodajte prilagodbe i skriptu.

    Prilagodbe oglasa CMS-u.

Primjeri

  1. Provjera valjanosti uzorka - provjerava je li tekstni okvir Fabricam ili Contoso, inače sprječava slanje obrasca.

    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. Popunjavanje parametara niza dolaznih upita u skrivena polja.

    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. Lokalizacija obrasca (popisa za odabir) – proširivost na strani klijenta možete koristiti za lokalizaciju izlaznih marketinških obrazaca. Lokalizacija se mora dogoditi nakon učitavanja obrasca (afterFormLoad događaja). Unutar marketinška stranica (ili u CMS-u u kojem hostirate obrazac) dodajte sljedeću skriptu lokalizacije:

    <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>
    

    U marketinškom obrascu provjerite jeste li pripremili prijevode. Uredite marketinški obrazac u HTML dizajneru, oblikujte ga (desnom tipkom miša kliknite u dizajneru, a zatim odaberite format) i dodajte potrebne prijevode.

    <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>