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:
Otvorite aplikaciju Customer Insights – Putovanja i otvorite stranice Marketing.
Odaberite Novo da biste stvorili novi marketinška stranica.
Povucite i ispustite element obrasca s kartice Alatni okvir na karticu Dizajner i odaberite marketinški obrazac koji želite koristiti.
Prebacite se na HTML karticu i isječak koda.
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:
Otvorite aplikaciju Customer Insights – Putovanja i otvorite marketinške obrasce u području Odlazni marketing
Odaberite Novo da biste stvorili novi obrazac zainteresiranog.
Odaberite Idi uživo.
Odaberite karticu Hosting obrasca pa u odjeljku Dostupne domene za hosting obrazaca odaberite domenu ako je dostupna ili odaberite + Stvori novu domenu.
Dodajte vlastitu CMS domenu i odaberite Spremi.
Na kartici Od hostinga na kartici Povezane stranice marketinškog obrasca odaberite ... i + Nova stranica obrasca za dodavanje stranice marketinškog obrasca.
Odaberite Spremi.
Sada odaberite stranicu obrasca koju ste stvorili i kopirajte skriptu u međuspremnik.
Sada u CMS-u uredite stranicu na koju želite uključiti obrazac, dodajte prilagodbe i skriptu.
Primjeri
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(); } });
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; } } } } } });
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>