Proširivanje izlaznih marketinških obrazaca pomoću koda
Belešku
1. septembra 2023. godine, Dynamics 365 Marketing i Dynamics 365 Customer Insights biće prodavani zajedno u jedinstvenom SKU pod nazivom Dynamics 365 Customer Insights. Pojedinačne aplikacije će biti preimenovane u Dynamics 365 Customer Insights – putevi, odnosno Dynamics 365 Customer Insights – podaci. Za još informacija, pogledajte Dynamics 365 Customer Insights najčešća pitanja
Pored toga, 1. septembra 2023. godine, novi Dynamics 365 Marketing klijenti će se primati samo funkcije marketinga u realnom vremenu. Za još informacija, pogledajte Podrazumevana pitanja o instalaciji marketinga u realnom vremenu. Mnoge stranice sa dokumentacijom trenutno upućuju na izlazne funkcije koje možda nisu dostupne ili mogu drugačije funkcionisati u marketingu u realnom vremenu. Sadržaj dokumentacije će biti ažuriran u septembru da bi se navelo da li se odnosi na marketing u realnom vremenu ili na izlazni marketing.
Važno
Ovaj članak se odnosi samo na izlazni marketing.
Marketinški obrazac definiše skup polja za unos koja su raspoređena u raspored obrasca. Verovatno ćete napraviti malu biblioteku obrazaca za višekratnu upotrebu koje po potrebi možete da postavljate na sve svoje različite marketinške stranice. Da biste dodali marketinški obrazac određenom marketinška stranica, koristite element obrasca da biste postavili obrazac i odaberite lokalne postavke za njega, što se odnosi samo na tu stranicu. Više informacija Izlazni marketinški obrasci
Izlazni marketinški obrasci se mogu proširiti korišćenjem JavaScript-a za izvršavanje prilagođenih poslovnih radnji Dynamics 365 Customer Insights u - Putovanjima. Slede metodi koji su dostupni za proširenje izlaznih marketinških obrazaca.
JavaScript API
Trošimo najnoviju verziju JavaScript API-ja. Uverite se da vaše reference na form-loader.js
skripte loader.js
ili https://mktdplp102cdn.azureedge.net/public/latest/js/form-loader.js?v=[version tag]
skripte izgledaju https://mktdplp102cdn.azureedge.net/public/latest/js/loader.js?v=[version tag]
ili, odnosno. Odeljak ?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
) su zastarele i više nisu podržane.
Postavite prilagođeni kôd direktno posle skripte form-loader.js
.
Uzorak koda:
<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 | Tip parametra | Opis parametra | Povraćaje |
---|---|---|---|---|---|
.on(eventType,callback) |
Registruje povratni poziv na tip događaja životnog ciklusa obrasca | eventType |
string , jedan od "afterFormLoad" , "afterFormRender" , "afterFormSubmit" ,, "formLoad" , "formRender" "formSubmit" |
Tip događaja na koji se treba prikačiti | undefined |
callback |
Funkcija povratnog poziva | Function |
|||
.off(eventType) |
Poništavanje poziva datog oblika događaja životnog ciklusa |
eventType Opcionalno |
string , jedan od "afterFormLoad" , "afterFormRender" , "afterFormSubmit" ,, "formLoad" , "formRender" "formSubmit" |
Tip događaja na koji se treba prikačiti | undefined |
.sendFormCaptureToCrm(form) |
Pošaljite prosleđivanje obrasca Dynamics 365 Customer Insights na- Putovanja, podržana samo za scenario hvatanja obrazaca | form |
DOM element koji predstavlja obrazac ili JQuery selektora koji predstavlja obrazac | Element FORM DOM | Promise<string> |
Događaji obrasca
Naziv događaja | Aktivirano za uhvaćene obrasce | Sintaksa | Opis |
---|---|---|---|
formLoad |
Da | MsCrmMkt.MsCrmFormLoader .on("formLoad", function(event) {}) |
Pokreće se kada se čuvar mesta obrasca prepozna pre nego što se stvarni sadržaj obrasca prene, za zarobljene okidače obrazaca kada se obrazac prepozna |
formRender |
No | MsCrmMkt.MsCrmFormLoader .on("formRender", function(event) {}) |
Okidači nakon dopremanja sadržaja obrasca i pre nego što se sadržaj obrasca ubrizga stranici. |
afterFormRender |
No | MsCrmMkt.MsCrmFormLoader .on("afterFormRender", function(event) {}) |
Okidači nakon ubrizgavanja sadržaja obrasca stranici pre nego što se prilože kuke za proveru valjanosti. |
afterFormLoad |
No | MsCrmMkt.MsCrmFormLoader .on("afterFormLoad", function(event) {}) |
Okidači nakon ubrizgavanja sadržaja obrasca stranici i nakon prilaganja kuki za proveru valjanosti. |
formSubmit |
No | MsCrmMkt.MsCrmFormLoader .on("formSubmit", function(event) {}) |
Okidači u obrascu prosleđuju se pre nego što se prosleđivanje obrasca pošalje serveru. |
afterFormSubmit |
Da | MsCrmMkt.MsCrmFormLoader .on("afterFormSubmit", function(event) {}) |
Okidači u obrascu se prosleđuju nakon što se prosleđivanje obrasca pošalje serveru. Aktivira se samo kada je prosleđivanje uspešno. Aktivira se pre preusmeravanja ili prikazivanja poruke potvrde. |
Za svaki sledeći metod povratnog poziva događaja dostupni su sledeći metodi:
Naziv metoda | Opis | Tip vraćanja |
---|---|---|
.getType() |
Dobija tip događaja |
string , jedan od "afterFormLoad" , "afterFormRender" , "afterFormSubmit" ,, "formLoad" , "formRender" "formSubmit" |
.getFormPageId() |
Dobija ID stranice obrasca - ovo se odnosi na msdyncrm_formpage jedinstveni identifikator entiteta |
string |
.getFormPlaceholder() |
Dobija DOM element koji predstavlja obrazac | DOM element |
.preventDefault() |
Otkazuje prosleđivanje obrasca, važi samo za događaj formSubmit tipa |
undefined |
.preventFormLoadingProgressBar() |
Skriva potenciometar dok se obrazac učitava, važi samo za tip formLoad događaja |
undefined |
.setFormNotification(function (n) {}) |
Zamenjuje povratni poziv za prikazivanje obaveštenja obrasca (kao poruka prosleđivanja obrasca). Bez tela funkcije neće biti prikazana obaveštenja. Važi samo za događaj tipa formLoad . |
undefined |
Prilagođavanje ponašanja za hvatanje obrasca
Hvatanje obrasca je usmereno od strane elementa konfiguracije koji izgleda <div class="d365-mkt-config" style="display:none" data-website-id="..." data-hostname="...">
. Ponašanje hvatanja obrasca možete promeniti dodavanjem sledećih atributa:
Ime atributa | Opis |
---|---|
data-ignore-prevent-default="true" |
Kada bude naveden, obrazac će biti dostavljen bez obzira na činjenicu koja .preventDefault() je pozvana na događaj. |
data-no-submit="true" |
Kada je navedeno, skripta za hvatanje obrasca neće uhvatiti događaj prosleđivanja obrasca, trebalo bi da ga aktivirate MsCrmMkt.MsCrmFormLoader.sendFormCaptureToCrm(form) izričito. Ovo je korisno za slučajeve kada prvo želite da izvršite prosleđivanje obrasca, a kasnije sinhronizujete Dynamics 365 Customer Insights sa- Putovanja. |
Belešku
Javascript API je dostupan samo za obrasce hostovane kao skripta, nije podržan za iframe hosting opciju.
Dodavanje isečak koda tokom korišćenja portala
Da biste dodali JavaScript kôd, potrebno je da sledite dolenavedene korake:
Krećite se do aplikacije Uvidi kupaca - putovanja i idite na marketinške stranice.
Kliknite na dugme "Novo" da biste kreirali novu marketinška stranica.
Prevucite i otpustite element obrasca sa kartice "Okvir sa alatkama" na karticu "Dizajner" i izaberite marketinški obrazac koji želite da koristite.
Prebacite se na HTML karticu i isečak koda.
Kliknite na dugme Sačuvaj da biste sačuvali promene, a zatim izaberite stavku Idi uživo.
Dodajte isečak koda kada koristite sopstveni CMS i hosting forme
Da biste dodali isečak koda, potrebno je da sledite dolenavedene korake:
Dođite do aplikacije Uvidi klijenata - putovanja i idite na marketinške obrasce u oblasti izlaznog marketinga
Odaberite opciju "Novo" da biste kreirali novi marketinški obrazac.
Izaberite stavku Idi uživo.
Izaberite karticu Hosting obrasca i u okviru Dostupni domeni za hostiranje obrazaca izaberite domen ako je dostupan ili izaberite + Kreirajte novi domen.
Dodajte sopstveni CMS domen i izaberite Sačuvaj .
Na kartici Od hostinga , u okviru kartice Srodne stranice marketinških obrazaca izaberite ... i + Novu stranicu obrasca za dodavanje stranice marketinškog obrasca.
Izaberite stavku Sačuvaj.
Sada izaberite stranicu obrasca koju ste kreirali i kopirajte skriptu u ostavu.
Sada u svom CMS-u uredite stranicu na koju želite da uključite obrazac, dodajte prilagođavanja i skripte.
Primeri
Provera valjanosti uzorka - proverava da li je okvir za tekst fabrikovan ili Contoso, u suprotnom sprečava prosleđivanje 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(); } });
Popunjavanje dolaznih parametara niske upita skrivenim poljima.
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; } } } } } });
Lokalizujte obrazac (listu izbora) - Možete da koristite ekstenzibilnost na strani klijenta da biste lokalizovali izlazne marketinške obrasce. Lokalizacija mora da se pojavi nakon učitavanja obrasca (
afterFormLoad
događaja). Unutar marketinška stranica (ili u CMS-u gde hostujete obrazac), dodajte sledeć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škoj formi uverite se da ste pripremili prevode. Uredite marketinški obrazac u HTML dizajneru, oblikujte ga (kliknite desnim tasterom miša na dizajnera, a zatim odaberite format) i dodajte potrebne prevode.
<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>