Bendrinti naudojant


Siuntimo rinkodaros formų išplėtimas naudojant kodą

Pastaba.

2023 m. rugsėjo 1 d. „Dynamics 365 Marketing“ ir „Dynamics 365 Customer Insights“ bus parduodami kartu kaip vieno produkto SKU pavadinimu „Dynamics 365 Customer Insights“. Atskiros programos bus atitinkamai pervardytos į „Dynamics 365 Customer Insights – veiklos ciklai“ ir „Dynamics 365 Customer Insights – duomenys“. Išsamesnės informacijos žr. DUK apie „Dynamics 365 Customer Insights“

Be to, 2023 m. rugsėjo 1 d. nauji „Dynamics 365 Marketing“ klientai gaus tik rinkodaros realiuoju laiku funkcijas. Norėdami gauti daugiau informacijos, žr. Numatytosios rinkodaros realiuoju laiku diegimas. Daugelis instrukcijų puslapių šiuo metu nurodo į siunčiamas funkcijas, kurios gali būti neprieinamos arba veikti kitaip nei rinkodara realiuoju laiku. Instrukcijų turinys bus atnaujintas rugsėjo mėnesį, siekiant pažymėti, ar jis taikomas realiojo laiko, ar tradicinei rinkodarai.

Svarbu

Šis straipsnis taikomas tik siunčiamai rinkodarai.

Rinkodaros forma apibrėžia įvesties laukus, sudarančius formos maketą. Jūs tikriausiai sukursite nedidelę daugkartinių formų, kurias galėsite naudoti visuose savo rinkodaros puslapiuose, biblioteką. Norėdami įtraukti rinkodaros formą į konkretų rinkodaros puslapis, formai išdėstyti naudokite formos elementą ir pasirinkite vietinius jos parametrus, kurie taikomi tik tam puslapiui. Daugiau informacijos Siuntimo rinkodaros formos

Siunčiamos rinkodaros formas galima išplėsti naudojant "JavaScript", kad būtų galima atlikti pasirinktinius verslo veiksmus Dynamics 365 Customer Insights kelionėse. Toliau pateikiami metodai, kuriais galima išplėsti siunčiamos rinkodaros formas.

JavaScript API

Naudojame naujausią "JavaScript" API versiją. Įsitikinkite, kad jūsų nuorodos form-loader.js arba scenarijus atrodo kaip loader.js arba 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] atitinkamai. Skyrių ?v=[version tag] galima praleisti. Senesni scenarijai (scenarijai, kurie atrodo kaip https://mktdplp102cdn.azureedge.net/public/static/[version tag]/js/form-loader.js arba https://mktdplp102cdn.azureedge.net/public/static/[version tag]/js/loader.js) yra pasenę ir nebepalaikomi.

Įdėkite pasirinktinį kodą iškart po form-loader.js scenarijaus.

Kodo pavyzdys:

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

Funkcijos pavadinimas Aprašą Parametro pavadinimas Parametro tipas Parametro aprašymas Grąžinimai
.on(eventType,callback) Registruoja atgalinį iškvietimą į formos palaikymo trukmės įvykio tipą eventType string, vienas iš "afterFormLoad",,,,, "afterFormRender""afterFormSubmit""formLoad""formRender""formSubmit" Įvykio tipas, prie kurio reikia kabintis undefined
callback Atgalinio iškvietimo funkcija Function
.off(eventType) Išregistruoti duotos formos ciklo įvykio atgalinius skambučius eventType Pasirinktinai string, vienas iš "afterFormLoad",,,,, "afterFormRender""afterFormSubmit""formLoad""formRender""formSubmit" Įvykio tipas, prie kurio reikia kabintis undefined
.sendFormCaptureToCrm(form) Formos pateikimo siuntimas į Dynamics 365 Customer Insights - Kelionės, palaikomos tik formų fiksavimo scenarijuje form DOM elementas, vaizduojantis formą, arba JQuery išrinkiklis, vaizduojantis formą Formos DOM elementas Promise<string>

Formuoti įvykius

Įvykio pavadinimas Suaktyvinta užfiksuotoms formoms Sintaksė Aprašą
formLoad Taip MsCrmMkt.MsCrmFormLoader
.on("formLoad", function(event) {})
Paleidikliai, kai formos vietos rezervavimo ženklas atpažįstamas prieš gaunant faktinį formos turinį, užfiksuotų formų paleidikliai, kai forma atpažįstama
formRender No MsCrmMkt.MsCrmFormLoader
.on("formRender", function(event) {})
Paleidikliai po to, kai formos turinys yra iškviečiamas ir prieš įterpiant formos turinį į puslapį.
afterFormRender No MsCrmMkt.MsCrmFormLoader
.on("afterFormRender", function(event) {})
Paleidikliai po formos turinio įterpimo į puslapį prieš pridedant tikrinimo kabliukus.
afterFormLoad No MsCrmMkt.MsCrmFormLoader
.on("afterFormLoad", function(event) {})
Paleidikliai po to, kai formos turinys įterpiamas į puslapį ir kai pridedami tikrinimo kabliukai.
formSubmit No MsCrmMkt.MsCrmFormLoader
.on("formSubmit", function(event) {})
Formos pateikimo paleidikliai prieš išsiunčiant formos pateikimą į serverį.
afterFormSubmit Taip MsCrmMkt.MsCrmFormLoader
.on("afterFormSubmit", function(event) {})
Formos pateikimo paleidikliai po to, kai formos pateikimas išsiunčiamas į serverį. Jis įsijungia tik tada, kai pateikimas yra sėkmingas. Jis suaktyvinamas prieš peradresavimą arba rodant patvirtinimo pranešimą.

Kiekvienam įvykiui galima perskambinti šiais būdais:

Metodo pavadinimas Aprašą Pateikimo tipas
.getType() Gauna įvykio tipą string, vienas iš "afterFormLoad",,,,, "afterFormRender""afterFormSubmit""formLoad""formRender""formSubmit"
.getFormPageId() Gauna formos puslapio ID – tai susiję su msdyncrm_formpage unikaliu objekto identifikatoriumi string
.getFormPlaceholder() Gauna formą atitinkantį DOM elementą DOM elementas
.preventDefault() Atšaukia formos pateikimą, galiojantį tik tipo įvykiui formSubmit undefined
.preventFormLoadingProgressBar() Paslepia suktuką, kol įkeliama forma, galioja tik įvykio formLoad tipui undefined
.setFormNotification(function (n) {}) Nepaiso atgalinio skambinimo, kad būtų galima generuoti formos pranešimą (pvz., formos pateikimo pranešimą). Be funkcionuojančios įstaigos pranešimai nebus teikiami. Galioja tik tokio tipo formLoad įvykiui. undefined

Formos fiksavimo veikimo būdo tinkinimas

Formos fiksavimą nukreipia konfigūracijos elementas, kuris atrodo kaip <div class="d365-mkt-config" style="display:none" data-website-id="..." data-hostname="...">. Galite keisti formos fiksavimo veikimą įtraukdami šiuos atributus:

Atributo pavadinimas Aprašą
data-ignore-prevent-default="true" Kai bus nurodyta, forma bus pateikta neatsižvelgiant į tai, kas .preventDefault() buvo panaudota renginyje.
data-no-submit="true" Kai nurodyta, formos fiksavimo scenarijus neužfiksuos formos pateikimo įvykio, turėtumėte jį aiškiai suaktyvinti MsCrmMkt.MsCrmFormLoader.sendFormCaptureToCrm(form) . Tai naudinga tais atvejais, kai pirmiausia norite pateikti formą, o vėliau sinchronizuoti su Dynamics 365 Customer Insights kelionėmis.

Pastaba.

"Javascript" API galima tik formoms, priglobtoms kaip scenarijus, ji nepalaikoma "iframe" prieglobos parinktyje.

Įtraukite kodo fragmentas naudodami portalus

Norėdami pridėti "JavaScript" kodą, turite atlikti toliau nurodytus veiksmus.

  1. Eikite į programą "Customer Insights – Journeys" ir eikite į "Marketing" puslapius.

  2. Pasirinkite Naujas , kad sukurtumėte naują rinkodaros puslapis.

  3. Nuvilkite elementą Formaskirtuko Įrankių rinkinys į skirtuką Dizaino įrankis ir pasirinkite norimą naudoti rinkodaros formą.

    Pridėti naują formos puslapį.

  4. Perjunkite į HTML skirtuką ir savo kodo fragmentas.

    Pridėkite kodą HTML skirtuke.

  5. Pasirinkite Įrašyti , kad išsaugotumėte pakeitimus, tada pasirinkite Paleisti.

Pridėkite savo kodo fragmentas, kai naudojate savo TVS ir formų prieglobą

Norėdami pridėti kodo fragmentas, turite atlikti toliau nurodytus veiksmus.

  1. Eikite į programą "Customer Insights – Journeys" ir eikite į "Marketing" formassiuntimo rinkodaros srityje

  2. Pasirinkite Naujas , kad sukurtumėte naują rinkodaros formą.

  3. Pasirinkite Paleisti.

  4. Pasirinkite skirtuką Formų išteklių nuoma ir dalyje Galimi formų išteklių nuomos domenai pasirinkite domeną, jei jis yra, arba pasirinkite + Kurti naują domeną.

    Skirtukas Formos priegloba.

  5. Pridėkite savo TVS domeną ir pasirinkite Išsaugoti.

  6. Skirtuko Iš prieglobos skirtuke Susiję rinkodaros formos puslapiai pasirinkite ... ir + Naujas formos puslapis , kad pridėtumėte rinkodaros formos puslapį.

    Susijusios klientų įžvalgos – kelionių formos puslapiai.

  7. Pasirinkite Įrašyti.

  8. Dabar pasirinkite sukurtą formos puslapį ir nukopijuokite scenarijų į mainų sritį.

    Pridėkite kodo fragmentas.

  9. Dabar savo TVS redaguokite puslapį, į kurį norite įtraukti formą, pridėkite tinkinimus ir scenarijų.

    Skelbimų tinkinimai pagal TVS.

Pavyzdžiai

  1. Pavyzdžio tikrinimas - patikrina, ar teksto laukelis yra "Fabricam", ar Contoso, kitaip neleidžia pateikti formos.

    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. Gaunamos užklausos eilutės parametrų užpildymas paslėptuose laukuose.

    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. Lokalizuoti formą (išrinkimo sąrašą) – galite naudoti kliento pusės išplečiamumą, kad lokalizuotumėte siuntimo rinkodaros formas. Lokalizacija turi įvykti įkėlus formą (afterFormLoad įvykis). Viduje rinkodaros puslapis (arba TVS, kurioje priglobiate formą) pridėkite šį lokalizavimo scenarijų:

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

    Rinkodaros formoje įsitikinkite, kad paruošėte vertimus. Redaguokite rinkodaros formą HTML dizaino įrankyje, formatuokite ją (dešiniuoju pelės mygtuku spustelėkite dizaino įrankį, tada pasirinkite formatą) ir pridėkite reikiamus vertimus.

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