{"id":68,"date":"2023-07-23T20:53:06","date_gmt":"2023-07-23T20:53:06","guid":{"rendered":"https:\/\/morenetcash.com\/?p=68"},"modified":"2025-04-03T17:41:25","modified_gmt":"2025-04-03T17:41:25","slug":"advisor-budget-apps","status":"publish","type":"post","link":"https:\/\/morenetcash.com\/fi\/advisor-budget-apps\/","title":{"rendered":"MNT Advisor \u2013 Budjettisovellukset"},"content":{"rendered":"<!--landing--><div class=\"wp-block-lazyblock-landing-page-variant lazyblock-landing-page-variant-vUEWT\"><div id=\"landing\" style=\"\" class=\"mb-40\">\n  <section class=\"text-gray-600 body-font border-gray-200 sm:border-0\">\n    <div style=\"max-width: 850px;\" class=\"sm:pt-6 mx-auto block\">\n      <div class=\"text-center py-3 px-5\">\n        <p data-av-subtitle class=\"leading-relaxed sm:w-3\/4 mx-auto mb-0\">\n          Hallitse talouttasi tehokkaasti ja ota omat raha-asiasi hallintaan.        <\/p>\n      <\/div>\n\n              <section id=\"half\" class=\"text-gray-600 body-font border-gray-200 sm:border-0\">\n          <h4 class=\"pt-3 text-center text-gray-900 text-2xl title-font font-medium px-5 mb-12\">\n            Ei en\u00e4\u00e4 kamppailua kuun lopussa! L\u00f6yd\u00e4 parhaat budjetointisovellukset          <\/h4>\n          <div id=\"mnc_top_wrapper\" style=\"height:600px;\" align=\"center\" class=\"w-full border-gray-200 border-b mt-8 mb-8 pb-5\">\n    <div align=\"center\" style=\"position: sticky; top: 120px;\" class=\"w-full\">\n                  <p style=\"font-size: 10px;\" class=\"uppercase text-center\">\n            MAINOS          <\/p>\n                <div id=\"mnc_top\" >\n        <\/div>\n    <\/div>\n<\/div>\n          <p class=\"sm:hidden pb-2 text-center sm:text-left leading-relaxed px-5\">\n              Oletko koskaan kuvitellut, ett\u00e4 kaikki raha-asiasi olisivat j\u00e4rjestyksess\u00e4 yhdess\u00e4 k\u00e4tev\u00e4ss\u00e4 ja helposti saatavilla olevassa paikassa? Budjetointisovellusten lataaminen on avain talousel\u00e4m\u00e4si yksinkertaistamiseen.          <\/p>\n          \n          <div class=\"sm:hidden sm:px-0 py-6 mx-auto px-5\">\n            <div class=\"w-full mx-auto flex flex-wrap\">\n                              <a class=\"mx-auto block\" href=\"https:\/\/morenetcash.com\/fi\/best-budgeting-apps\/\" data-analytics-label=\"landingPageImage\" data-action=\"analytics#trackCTA\">\n                  <img decoding=\"async\" loading=\"lazy\" alt=\"card\" style=\"height: 190px;\" class=\"w-full h-64 object-cover object-center rounded border-gray-100 border-2\" src=\"https:\/\/morenetcash.com\/wp-content\/uploads\/2023\/07\/edit-photos.png\">\n                <\/a>\n                                          <div class=\"lg:w-3\/5 w-full lg:pl-6 mt-6 lg:mt-0\">\n                                  <div class=\"flex\">\n                    <a class=\"flex text-white no-underline mt-10 m-auto sm:mr-0 sm:ml-auto\" href=\"https:\/\/morenetcash.com\/fi\/best-budgeting-apps\/\"  data-analytics-label=\"landingPageFirstButton\" data-action=\"analytics#trackCTA\">\n                      <button id=\"landing-first\" class=\"text-white flex m-auto sm:mr-0 sm:ml-auto border-0 py-2 px-8 text-lg focus:outline-none rounded\">\n                        Haluan s\u00e4\u00e4st\u00e4\u00e4 rahaa                      <\/button>\n                    <\/a>\n                  <\/div>\n                                      <p class=\"text-xs text-gray-500 mt-3 text-center sm:text-right\">\n                      Pysyt samalla verkkosivustolla                    <\/p>\n                                                                <\/div>\n            <\/div>\n          <\/div>\n          <div class=\"mt-10 h-1 bg-gray-200 rounded overflow-hidden sm:hidden mx-5\">\n            <div class=\"w-24 h-full\"><\/div>\n          <\/div>\n          <div class=\"hidden sm:block sm:px-0 py-6 mx-auto px-5\">\n            <div class=\"w-full py-3 mx-auto flex flex-wrap\">\n                              <img decoding=\"async\" loading=\"lazy\" alt=\"card\" style=\"height: 190px;\" class=\"lg:w-2\/5 w-full h-64 object-cover object-center rounded border-gray-100 border-2\" src=\"https:\/\/morenetcash.com\/wp-content\/uploads\/2023\/07\/edit-photos.png\">\n                            \n              <div class=\"lg:w-3\/5 w-full lg:pl-6 mt-6 lg:mt-0\">\n                \n                \n                <p class=\"py-2 text-center sm:text-left leading-relaxed\">\n                  Oletko koskaan kuvitellut, ett\u00e4 kaikki raha-asiasi olisivat j\u00e4rjestyksess\u00e4 yhdess\u00e4 k\u00e4tev\u00e4ss\u00e4 ja helposti saatavilla olevassa paikassa? Budjetointisovellusten lataaminen on avain talousel\u00e4m\u00e4si yksinkertaistamiseen.                <\/p>\n                <div class=\"flex mt-6 items-center pb-5 border-b-2 border-gray-100 mb-5\">\n                <\/div>\n                                  <div class=\"flex\">\n                    <a class=\"flex text-white no-underline mt-10 m-auto sm:mr-0 sm:ml-auto\" href=\"https:\/\/morenetcash.com\/fi\/best-budgeting-apps\/\"  data-analytics-label=\"landingPageFirstButton\" data-action=\"analytics#trackCTA\">\n                      <button id=\"landing-first\" class=\"text-white flex m-auto sm:mr-0 sm:ml-auto border-0 py-2 px-8 text-lg focus:outline-none rounded\">\n                        Haluan s\u00e4\u00e4st\u00e4\u00e4 rahaa                      <\/button>\n                    <\/a>\n                  <\/div>\n                                      <p class=\"text-xs text-gray-500 mt-3 text-center sm:text-right\">\n                      Pysyt samalla verkkosivustolla                    <\/p>\n                                                                <\/div>\n            <\/div>\n          <\/div>\n        <\/section>\n      \n      <p class=\"text-center leading-relaxed sm:w-3\/4 mx-auto my-10 px-5\">\n        N\u00e4iden tehokkaiden ty\u00f6kalujen avulla sinulla on t\u00e4ysi hallinta menoistasi, voit asettaa selkeit\u00e4 tavoitteita ja seurata edistymist\u00e4si. \u00c4l\u00e4 anna taloutesi hukkua kaaokseen! Tutustu budjetointisovelluksen lataamisen etuihin:      <\/p>\n            <div class=\"flex flex-wrap sm:w-full sm:mx-auto sm:mb-2 px-5\">\n        <div class=\"p-2 sm:w-1\/2 w-full\">\n          <div class=\"bg-gray-100 rounded flex p-4 h-full items-center\">\n            <svg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"3\" class=\"w-6 h-6 flex-shrink-0 mr-4\" viewbox=\"0 0 24 24\">\n              <path d=\"M22 11.08V12a10 10 0 11-5.93-9.14\"><\/path>\n              <path d=\"M22 4L12 14.01l-3-3\"><\/path>\n            <\/svg>\n            <span class=\"title-font font-medium text-left\">\n              Yksinkertaistettu talousorganisaatio            <\/span>\n          <\/div>\n        <\/div>\n        <div class=\"p-2 sm:w-1\/2 w-full\">\n          <div class=\"bg-gray-100 rounded flex p-4 h-full items-center\">\n            <svg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"3\" class=\"w-6 h-6 flex-shrink-0 mr-4\" viewbox=\"0 0 24 24\">\n              <path d=\"M22 11.08V12a10 10 0 11-5.93-9.14\"><\/path>\n              <path d=\"M22 4L12 14.01l-3-3\"><\/path>\n            <\/svg>\n            <span class=\"title-font font-medium text-left\">\n              Helppo ja nopea kulujen seuranta            <\/span>\n          <\/div>\n        <\/div>\n        <div class=\"p-2 sm:w-1\/2 w-full\">\n          <div class=\"bg-gray-100 rounded flex p-4 h-full items-center\">\n            <svg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"3\" class=\"w-6 h-6 flex-shrink-0 mr-4\" viewbox=\"0 0 24 24\">\n              <path d=\"M22 11.08V12a10 10 0 11-5.93-9.14\"><\/path>\n              <path d=\"M22 4L12 14.01l-3-3\"><\/path>\n            <\/svg>\n            <span class=\"title-font font-medium text-left\">\n              Taloudellisten tavoitteiden asettaminen ja seuranta            <\/span>\n          <\/div>\n        <\/div>\n        <div class=\"p-2 sm:w-1\/2 w-full\">\n          <div class=\"bg-gray-100 rounded flex p-4 h-full items-center\">\n            <svg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"3\" class=\"w-6 h-6 flex-shrink-0 mr-4\" viewbox=\"0 0 24 24\">\n              <path d=\"M22 11.08V12a10 10 0 11-5.93-9.14\"><\/path>\n              <path d=\"M22 4L12 14.01l-3-3\"><\/path>\n            <\/svg>\n            <span class=\"title-font font-medium text-left\">\n              Yksityiskohtainen kuluanalyysi ja s\u00e4\u00e4st\u00f6kohteiden tunnistaminen            <\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n      \n              <div class=\"mx-5\" data-anchor-target=\"lazyBlock\">\n          <a class=\"text-white no-underline\"  href=\"https:\/\/morenetcash.com\/fi\/best-budgeting-apps\/\" data-analytics-label=\"landingPageSecondButton\" data-action=\"analytics#trackCTA\">\n            <button id=\"landing-second\" class=\"flex mx-auto mt-16 border-0 py-2 px-8 focus:outline-none rounded text-lg\">\n              Haluan s\u00e4\u00e4st\u00e4\u00e4 rahaa            <\/button>\n          <\/a>\n        <\/div>\n                          <p class=\"text-xs text-gray-500 mt-3 text-center\">\n            Pysyt samalla verkkosivustolla          <\/p>\n                        <\/div>\n  <\/section>\n\n    <script type=\"module\"> function waitFor(conditionFunction) { const poll = resolve => { if(conditionFunction()) resolve(); else setTimeout(_ => poll(resolve), 400); }; return new Promise(poll); } import { Application, Controller } from \"\/wp-content\/themes\/twentytwentyone\/assets\/js\/stimulus.min.js\"; let Stimulus = Application.start(); Stimulus.register(\"anchor\", class extends Controller { static get targets() { return [ \"lazyBlock\", \"lazyBlockAnchor\" ]; } initialize() { this.active = false; this.passed = false; this.closed = false; this.anchorViews = 0; this.boundOnShowAnchor = this.onShowAnchor.bind(this); window.anchorReady = window.anchorReady || false; waitFor(_ => (window.scrollY > this.getHeightBlock() && !this.active)) .then(_ => { !window.anchorReady? this.visible() : ''; window.anchorReady = true; }); if (document.getElementById('landing')) { setTimeout(() => { !window.anchorReady ? this.visible() : ''; window.anchorReady = true; }, 1 * 30000); }; } connect() { this.onShowAnchor(); document.addEventListener(\"scroll\", this.boundOnShowAnchor); } disconnect() { document.removeEventListener(\"scroll\", this.boundOnShowAnchor); } visible() { if (document.getElementById('av-offerwall__wrapper')) { setTimeout(() => this.visible(), 20000); return; } if (document.getElementById('av-fixed__bottomWrapper') && document.getElementById('av-fixed__bottomWrapper').style.display !== 'none' && document.getElementById('av-fixed__bottomWrapper').getBoundingClientRect().height > 100) { setTimeout(() => this.visible(), 1000); return; } if (document.getElementById('av-fixed__bottomWrapper') && document.getElementById('av-fixed__bottomWrapper').style.display !== 'none' && document.getElementById('av-fixed__bottomWrapper').getBoundingClientRect().height > 10) { this.getAnchorElement().style.marginBottom = '60px'; } if (document.querySelector('[data-anchor-shown=\"true\"]') && document.querySelector('[data-anchor-shown=\"true\"]').style.bottom === '0px') { setTimeout(() => this.visible(), 1000); return; } if (!window.km2AnchorReady) { this.active = true; \/*this.getAnchorElement().style.animation = \"none\"; this.getAnchorElement().classList.remove('animate-show-down');*\/ \/*this.getAnchorElement().classList.add('animate-show-up');*\/ \/*setTimeout(() => {*\/ \/*this.getAnchorElement().style.animation = \"\";*\/ this.getAnchorElement().classList.add('animate-show-up'); this.getAnchorElement().classList.remove('hidden'); this.setAnchorViews(this.anchorViews+1); setTimeout(() => this.closeAnchor(), 20000); waitFor(_ => (document.getElementById('av-fixed__bottomWrapper') && document.getElementById('av-fixed__bottomWrapper').style.display !== 'none' && document.getElementById('av-fixed__bottomWrapper').getBoundingClientRect().height > 10 && this.getAnchorElement().style.marginBottom !== '60px')) .then(_ => { this.closeAnchor(); }); this.active = false; \/*}, 10);*\/ } } invisible() { this.active = true; this.getAnchorElement().style.animation = \"none\"; this.getAnchorElement().classList.remove('animate-show-up'); this.getAnchorElement().classList.add('animate-show-down'); setTimeout(() => { this.getAnchorElement().style.animation = \"\"; setTimeout(() => { this.getAnchorElement().classList.add('hidden'); this.active = false; }, 800); }, 10); } onShowAnchor() { let anchorReady = false;  \/*if (!this.active && !anchorReady) { if (this.getAnchorViews() <= 3) { if (window.scrollY > this.getHeightBlock()) { if (!this.passed && !this.closed) { this.visible(); this.passed = true; } } else { if (this.passed) { this.invisible(); this.passed = false; } } } else { if (!this.getAnchorElement().classList.contains('close')) { this.getAnchorElement().classList.add('close'); if (window.scrollY < this.getHeightBlock()) { this.invisible(); } } } }*\/ } closeAnchor() { if (this.closed) return; this.invisible(); this.getAnchorElement().classList.add('close'); this.closed = true; } getAnchorElement() { return this.lazyBlockAnchorTargets[0]; } getAnchorViews() { this.anchorViews = parseInt(sessionStorage.getItem(\"anchorViews\")) >= 1 ? parseInt(sessionStorage.getItem(\"anchorViews\")) : 0; return this.anchorViews; } setAnchorViews(views) { sessionStorage.setItem(\"anchorViews\", views); } getHeightBlock() { return this.lazyBlockTarget.offsetTop + this.lazyBlockTarget.offsetHeight - 110; } }) <\/script>  <div data-anchor-target=\"lazyBlockAnchor\" class=\"fixed w-full sm:w-96 px-3 py-2 bottom-0 left-0 hidden\" style=\"z-index: 999999;\" name=\"lazyBlockAnchor\">\n    <div class=\"grid justify-items-stretch\">        \n              <div class=\"relative justify-self-end top-4 -right-2\">\n          <button data-no-translation class=\"bg-white text-md font-medium text-center rounded-full h-7 w-7 border-2\" data-analytics-label=\"anchorCloseAnchor\" data-action=\"anchor#closeAnchor\" style=\"z-index: 999999;\">\n            X\n          <\/button>\n        <\/div>\n        <div class=\"w-full justify-self-start flex flex-col h-32 bg-white border-solid border-2 shadow-md rounded-md\">\n          <div class=\"mx-2 h-1\/2\">\n            <p class=\"px-5 text-center pt-3 text-xs\">\n              Ei en\u00e4\u00e4 kamppailua kuun lopussa! L\u00f6yd\u00e4 parhaat budjetointisovellukset            <\/p>\n          <\/div>\n          <div class=\"mx-2 mt-1 bottom-0 h-1\/2\">\n            <a class=\"w-full m-auto\" href=\"https:\/\/morenetcash.com\/fi\/best-budgeting-apps\/\"  data-analytics-label=\"anchorButton\" data-action=\"analytics#trackCTA\" >\n              <button class=\"flex m-auto border-0 py-2 px-6 focus:outline-none rounded text-center text-sm\">\n                Jatka lukemista              <\/button>\n            <\/a>\n            <p class=\"text-gray-500 text-center mt-1\" style=\"font-size: 0.50rem;\">\n              Pysyt samalla verkkosivustolla  \n            <\/p>\n          <\/div>\n        <\/div>\n          <\/div>\n  <\/div>\n\n  <link rel=\"prefetch\" href=\"https:\/\/morenetcash.com\/best-budgeting-apps\/\">\n  <link rel=\"prerender\" href=\"https:\/\/morenetcash.com\/best-budgeting-apps\/\">\n\n  <link rel=\"prefetch\" href=\"https:\/\/morenetcash.com\/how-to-download-budgeting-apps\/\">\n  <link rel=\"prerender\" href=\"https:\/\/morenetcash.com\/how-to-download-budgeting-apps\/\">\n\n  <div style=\"margin-top: 100px;\">\n     <script type=\"module\"> function waitFor(conditionFunction) { const poll = resolve => { if(conditionFunction()) resolve(); else setTimeout(_ => poll(resolve), 400); }; return new Promise(poll); } import { Application, Controller } from \"\/wp-content\/themes\/twentytwentyone\/assets\/js\/stimulus.min.js\"; import { Typos } from \"\/wp-content\/themes\/twentytwentyone\/assets\/js\/typos.js\"; import { phoneNumberMask, writeEmailOptions } from \"\/wp-content\/themes\/twentytwentyone\/assets\/js\/commons.js\"; let Stimulus = Application.start(); Stimulus.register(\"quiz\", class extends Controller { static get targets() { return [ \"quiz\", \"body\", \"block\", \"footer\", \"pane\", \"email\", \"name\", \"phone\", \"phoneField\", \"checkbox\", \"overlay\", \"submit\", \"unloader\", \"loader\", \"tooltip\", \"tip\", \"emailOptions\", \"formBox\", \"formData\", \"formMessage\", \"formBoxBackGround\", \"formTitle\", \"soi\", \"successMessage\", \"emailDiv\", \"phoneDiv\", \"nameDiv\", \"soiDiv\", \"skipper\", \"trigger\", \"link\", \"cta\", \"footnote\" ] } static get values() { return { showhighlight: Boolean }; } replaceAll(string, search, replace) { return string.split(search).join(replace); } initialize() { this.index = 0; this.formViews = 0; this.mode = 'email'; this.showContentForm = this.getViewEmailForm() || this.getViewPhoneForm() || this.getViewPushForm(); if (this.showContentForm) { this.showedHighlight = false; this.inProcessAnimate = false; } this.conditions = []; this.country = \"\"; this.phoneMaskOptions = { 'br': {\"areaCod\": \"+55\", \"areaCodSpace\": 2, \"dddSpace\": 2, \"prefixoSpace\": 4, \"prefixoSpace2\": 5, \"sufixoSpace\": 4, \"placeHolder\": \"(XX) XXXX-XXXX\" }, 'us': {\"areaCod\": \"+1\", \"areaCodSpace\": 1, \"dddSpace\": 3, \"prefixoSpace\": 3, \"sufixoSpace\": 4, \"placeHolder\": \"(XXX) XXX-XXXX\" }, 'ca': {\"areaCod\": \"+1\", \"areaCodSpace\": 1, \"dddSpace\": 3, \"prefixoSpace\": 3, \"sufixoSpace\": 4, \"placeHolder\": \"(XXX) XXX-XXXX\" }, 'pt': {\"areaCod\": \"+351\", \"areaCodSpace\": 3, \"dddSpace\": 3, \"prefixoSpace\": 3, \"sufixoSpace\": 2, \"placeHolder\": \"XXX XXX XXX\" }, 'es': {\"areaCod\": \"+34\", \"areaCodSpace\": 2, \"dddSpace\": 3, \"prefixoSpace\": 3, \"sufixoSpace\": 2, \"placeHolder\": \"XXX XXX XXX\" }, 'mx': {\"areaCod\": \"+52\", \"areaCodSpace\": 2, \"dddSpace\": 3, \"prefixoSpace\": 3, \"sufixoSpace\": 4, \"placeHolder\": \"XXX XXX XXXX\" }, 'ar': {\"areaCod\": \"+54\", \"areaCodSpace\": 2, \"dddSpace\": 2, \"prefixoSpace\": 4, \"sufixoSpace\": 4, \"placeHolder\": \"(XX) XXXX-XXXX\" }, 'co': {\"areaCod\": \"+57\", \"areaCodSpace\": 2, \"dddSpace\": 3, \"prefixoSpace\": 3, \"sufixoSpace\": 4, \"placeHolder\": \"XXX XXX XXXX\" }, 'za': {\"areaCod\": \"+27\", \"areaCodSpace\": 2, \"dddSpace\": 2, \"prefixoSpace\": 3, \"sufixoSpace\": 4, \"placeHolder\": \"(XX) XXX-XXXX\" }, 'de': {\"areaCod\": \"+49\", \"areaCodSpace\": 99, \"dddSpace\": 99, \"prefixoSpace\": 99, \"prefixoSpace2\": 99, \"sufixoSpace\": 99, \"placeHolder\": \"\" }, 'fr': {\"areaCod\": \"+33\", \"areaCodSpace\": 99, \"dddSpace\": 99, \"prefixoSpace\": 99, \"prefixoSpace2\": 99, \"sufixoSpace\": 99, \"placeHolder\": \"\" }, 'gb': {\"areaCod\": \"+44\", \"areaCodSpace\": 99, \"dddSpace\": 99, \"prefixoSpace\": 99, \"prefixoSpace2\": 99, \"sufixoSpace\": 99, \"placeHolder\": \"\" }, 'it': {\"areaCod\": \"+39\", \"areaCodSpace\": 99, \"dddSpace\": 99, \"prefixoSpace\": 99, \"prefixoSpace2\": 99, \"sufixoSpace\": 99, \"placeHolder\": \"\" } }; this.phoneMaskOption = (this.country in this.phoneMaskOptions) ? this.phoneMaskOptions[this.country] : this.phoneMaskOptions['br']; this.phoneTarget.placeholder = this.phoneMaskOption.placeHolder; this.searchParams = new URLSearchParams(window.location.search); this.quiz = this.replaceAll(window.location.pathname, '\/', ''); this.slug = this.quiz.split('-').slice(0, this.quiz.split('-').length - 1).join(''); this.hostname = \"morenetcash.com\"; let splitOptions = ['a', 'b', 'c', 'd']; this.splitTag = splitOptions[Math.floor(Math.random() * splitOptions.length)]; this.tags = 'quiz='+this.quiz+',host='+this.hostname+',slug='+this.slug+',split='+this.splitTag; if (this.country !== '') { this.tags += `,country=${this.country}`; } this.autocompleted = false; this.emsAccounts = [\n          {\n              'weight': 1.0,\n              'name': '',\n              'list': 1\n          }\n      ]; this.addPhone = false;; this.showForm = false;; this.skipForm = true;; this.showFormFirst = false;; this.triggerInterstitial = false;; this.exitIntent = \"\"; this.paneTargetsLength = this.paneTargets.length; if (!this.getViewEmailForm() && !this.getViewPhoneForm() && this.showFormFirst && this.paneTargetsLength > 1) { this.skip(); } if (!this.getViewAnyForm() && this.showFormFirst && this.paneTargetsLength > 1) { this.skip(); } if (!this.getViewEmailForm() && !this.getViewPhoneForm() && !this.showFormFirst) { this.paneTargetsLength = this.skipForm ? this.paneTargetsLength : this.paneTargetsLength - 1; this.skipForm = true; } if (!this.getViewAnyForm() && !this.showFormFirst) { this.paneTargetsLength = this.skipForm ? this.paneTargetsLength : this.paneTargetsLength - 1; this.skipForm = true; } this.typos = Typos; for (var paramKey of this.searchParams.keys()) { this.tags += paramKey.includes('utm_') ? `,${paramKey}=${this.searchParams.get(paramKey)}` : ''; } if (this.paneTargetsLength === 1 || this.showFormFirst) { this.insertPixels(); this.chooseEmsAccount(); this.chooseConditions(); this.getAnalyticsData(); } !this.skipForm || this.showhighlightValue ? this.manipulateForm() : ''; if (this.showFormFirst) { this.blockTarget.classList.add(\"animate-fade-in\"); this.blockTarget.classList.remove(\"hidden\"); this.enable(); } if (this.exitIntent.includes('http')) { let search = window.location.search; history.replaceState(null, document.title, location.pathname + \"#!\/history\"); history.pushState(null, document.title, location.pathname + search); window.addEventListener(\"popstate\", (function() { window.location.replace(this.exitIntent); }).bind(this), true); } } manipulateForm() {  if (this.getViewPhoneForm() && this.getViewEmailForm()) { this.mode = 'email'; } else if (this.getViewPhoneForm()) { this.mode = 'phone'; this.emailDivTarget.classList.add(\"hidden\"); } else if (this.getViewEmailForm()) { this.mode = 'email'; this.phoneDivTarget.classList.add(\"hidden\"); } else if (this.getViewPushForm()) { this.mode = 'push'; this.phoneDivTarget.classList.add(\"hidden\"); this.emailDivTarget.classList.add(\"hidden\"); this.nameDivTarget.classList.add(\"hidden\"); this.soiDivTarget.classList.add(\"hidden\"); this.enable(); }  } connect() { if (this.showhighlightValue && this.showContentForm && this.getFormViews() <= 1) { if (this.emsAccount === \"\") { const endpoint = \"https:\/\/form.morenetcash.com\"; if (endpoint !== \"\") { fetch(endpoint).then(response => response.json()).then(response => { if ('form-title' in response['content']) { this.emsAccounts = response['content']['accounts']; this.chooseEmsAccount(); this.country = response['content']['country'].toLowerCase(); this.tags += `,country=${this.country}`; this.phoneMaskOption = (this.country in this.phoneMaskOptions) ? this.phoneMaskOptions[this.country] : this.phoneMaskOptions['br']; this.phoneTarget.placeholder = this.phoneMaskOption.placeHolder; this.formTitleTarget.innerHTML = response['content']['form-title']; this.soiTarget.innerHTML = response['content']['soi']; this.submitTarget.innerHTML = response['content']['cta']; this.successMessageTarget.innerHTML = response['content']['success-message']; this.quizTarget.classList.remove('hidden'); this.observerScrollEmailForm(); this.formMessageTarget.style.height = this.paneTarget.offsetHeight + 'px'; this.formMessageTarget.children[0].style.marginTop = 0.4 * this.paneTarget.offsetHeight + 'px'; if (false && 'success-cta' in response['content'] && 'link' in response['content']) { this.linkTarget.classList.remove('hidden'); this.linkTarget.setAttribute('href', response['content']['link']); this.linkTarget.setAttribute('data-href', 'secondary_link' in response['content'] ? response['content']['secondary_link'] : response['content']['link']); this.ctaTarget.innerHTML = response['content']['success-cta']; if (!response['content']['link'].includes('\/\/morenetcash.com')) { this.footnoteTarget.classList.remove('hidden'); } this.formMessageTarget.children[0].style.marginTop = 0.25 * this.paneTarget.offsetHeight + 'px'; waitFor(_ => (document.cookie.includes(\"avInterstitialViewed=true\"))) .then(_ => { [this.linkTarget].forEach(linkTarget => { if (linkTarget.getAttribute('href') !== linkTarget.getAttribute('data-href')) { linkTarget.setAttribute('href', linkTarget.getAttribute('data-href')); if (!linkTarget.getAttribute('data-href').includes(\"morenetcash.com\")) { linkTarget.setAttribute('rel', 'nofollow'); } if (!linkTarget.getAttribute('data-href').includes('\/\/morenetcash.com')) { this.footnoteTarget.classList.remove('hidden'); } } linkTarget.removeAttribute('data-href'); }) }); } if (typeof window.wildcardController === 'object') { window.wildcardController.replaceWildcards(); } }; }).catch((error) => { console.error('Error:', error); }); } } else { this.quizTarget.classList.remove('hidden'); this.observerScrollEmailForm(); this.formMessageTarget.style.height = this.paneTarget.offsetHeight + 'px'; this.formMessageTarget.children[0].style.marginTop = 0.4 * this.paneTarget.offsetHeight + 'px'; } } } readTextFile(file, callback) { var rawFile = new XMLHttpRequest(); rawFile.overrideMimeType(\"application\/json\"); rawFile.open(\"GET\", file, true); rawFile.onreadystatechange = () => { if (rawFile.readyState === 4 && rawFile.status == \"200\") { callback(rawFile.responseText); } }; rawFile.send(null); } next(event) { this.index++; this.showCurrentPane(event); } insertRudderPixel() { if (typeof window.rudderanalytics !== 'object') { var e=window.rudderanalytics=window.rudderanalytics||[]; e.methods=[\"load\",\"page\",\"track\",\"identify\",\"alias\",\"group\",\"ready\",\"reset\",\"getAnonymousId\",\"setAnonymousId\"], e.factory=function(t){ return function(){ var r=Array.prototype.slice.call(arguments); return r.unshift(t), e.push(r),e } }; for(var t=0;t<e.methods.length;t++){ var r=e.methods[t]; e[r]=e.factory(r) } e.loadJS=function(e,t){ var r=document.createElement(\"script\"); r.type=\"text\/javascript\",r.async=!0,r.src=\"https:\/\/cdn.rudderlabs.com\/v2\/rudder-analytics.min.js?transport=beacon\"; var a=document.getElementsByTagName(\"script\")[0];a.parentNode.insertBefore(r,a) }, e.loadJS(), e.load('1qlJXFMeYUmTyucX6KUVQVEjBBM', 'https:\/\/rudder.adtechpanda.com') }; } insertFacebookPixel() { if (typeof window.av?.findTag !== 'undefined') { if (window.av.findTag('fb', '', 'formConversion') !== undefined) return; }  !function(f,b,e,v,n,t,s){ if(f.fbq)return; n=f.fbq=function(){ n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments) }; if(!f._fbq)f._fbq=n; n.push=n; n.loaded=!0; n.version='2.0'; n.queue=[]; t=b.createElement(e); t.async=!0; t.src=v; s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s) }(window, document,'script','https:\/\/connect.facebook.net\/en_US\/fbevents.js'); fbq('set', 'autoConfig', false, \"\"); fbq('init', \"\"); fbq('track', 'PageView');   } insertGooglePixel() {  window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);}; gtag('js', new Date()); gtag('config', \"\", {'allow_enhanced_conversions': true}); window.gtag = gtag; let gogleScript = document.createElement(\"script\"); gogleScript.type = \"text\/javascript\"; gogleScript.setAttribute('async', 'async'); gogleScript.src = \"https:\/\/www.googletagmanager.com\/gtag\/js?id=\"; this.quizTarget.appendChild(gogleScript);   } insertTiktokPixel() {  !function (w, d, t) { w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=[\"page\",\"track\",\"identify\",\"instances\",\"debug\",\"on\",\"off\",\"once\",\"ready\",\"alias\",\"group\",\"enableCookie\",\"disableCookie\"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);ttq.instance=function(t){for(var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e},ttq.load=function(e,n){var i=\"https:\/\/analytics.tiktok.com\/i18n\/pixel\/events.js\";ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=i,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{};var o=document.createElement(\"script\");o.type=\"text\/javascript\",o.async=!0,o.src=i+\"?sdkid=\"+e+\"&#038;lib=\"+t;var a=document.getElementsByTagName(\"script\")[0];a.parentNode.insertBefore(o,a)}; ttq.load(\"\"); ttq.page(); }(window, document, 'ttq');   } insertTaboolaPixel() {  window._tfa = window._tfa || []; window._tfa.push({notify: 'event', name: 'page_view', id: Number(\"\")}); !function (t, f, a, x) { if (!document.getElementById(x)) { t.async = 1;t.src = a;t.id=x;f.parentNode.insertBefore(t, f); } }(document.createElement('script'), document.getElementsByTagName('script')[0], \"\/\/cdn.taboola.com\/libtrc\/unip\/\/tfa.js\", 'tb_tfa_script');   } insertMedianetPixel() {  !function(a, b, c, d, e, f, g) {if(a.ctrk)return;e=a.ctrk=function(){e.runner? e.runner.apply(e,arguments):e.q.push(arguments)}; e.q=[];f=b.createElement(c);f.async=true; f.src=d+'?d='+a.location.hostname;g=b.getElementsByTagName(c)[0]; g.parentNode.insertBefore(f,g);} (window, document,'script','https:\/\/c.pm-srv.co\/v1\/analytics.js'); ctrk('boot', \"\"); ctrk('record', 'page-land', {dnt: false});   } insertPixels() { this.insertRudderPixel(); this.insertFacebookPixel(); this.insertGooglePixel();    } chooseFrom(weights, results) { let num = Math.random(); let s = 0; let lastIndex = weights.length - 1; for (var i = 0; i < lastIndex; ++i) { s += weights[i]; if (num < s) { return results[i]; } } return results[lastIndex]; } chooseEmsAccount() { let emsAccount = this.chooseFrom( this.emsAccounts.map(account => account['weight']), this.emsAccounts ); this.emsAccount = emsAccount['name']; this.emsList = emsAccount['list']; }; prefetchLandingPages() { let link = document.createElement('link'); \/*let fbclid = this.searchParams.get('fbclid') ? '?fbclid=' + this.searchParams.get('fbclid') : ''; let gclid = this.searchParams.get('gclid') ? '?gclid=' + this.searchParams.get('gclid') : '';*\/ for (const condition of this.conditions) { let landingUrl = new URL(condition['link']); let landingPathname = landingUrl.pathname.split('\/').filter(elem => elem).join('-'); let conditionLink = `${condition['link']}`; if (!landingUrl.search) { conditionLink += window.location.search; } if (document.location.pathname[0] === '\/' && document.location.pathname[3] === '\/' && !conditionLink.includes(document.location.pathname.substr(0,3)) && !conditionLink.includes('app.')) { conditionLink = conditionLink.replace(document.location.hostname, document.location.hostname + document.location.pathname.substr(0,3)); } link = document.createElement('link'); link.rel = 'prefetch'; link.href = conditionLink; this.quizTarget.appendChild(link); link = document.createElement('link'); link.rel = 'prerender'; link.href = conditionLink; this.quizTarget.appendChild(link); } } chooseConditions() { this.conditions = []; if (typeof window.wildcardController !== 'undefined') { this.conditions = this.conditions.map(condition => ({ 'answers': condition['answers'], 'link': window.wildcardController.replace( this.chooseFrom( Object.values(condition['links']), Object.keys(condition['links']) ) ) })); } else { this.conditions = this.conditions.map(condition => ({ 'answers': condition['answers'], 'link': this.chooseFrom( Object.values(condition['links']), Object.keys(condition['links']) ) })); } this.prefetchLandingPages(); } showCurrentPane(event) { if (this.skipForm && event?.target !== undefined) { this.tags += `,answer=${event.target.innerText}`; } if (this.showFormFirst && this.index > 1 && event?.target !== undefined) { this.tags += `,answer=${event.target.innerText}`; } if (!this.showFormFirst && this.index <= this.paneTargetsLength - 1) { this.tags += `,answer=${event.target.innerText}`; } if (this.index > this.paneTargetsLength - 1) { this.submit(event); } else { this.paneTargets.forEach((element, index) => { if (index != this.index) { element.classList.add(\"hidden\"); } else { element.classList.remove(\"hidden\"); } }) } if (!this.showFormFirst && this.index === 1 && this.paneTargetsLength > 1) { this.insertPixels(); this.chooseEmsAccount(); this.chooseConditions(); this.getAnalyticsData(); } if (this.showFormFirst && this.index === 1 && this.isValid()) { this.sendForm(false); } if (this.index === this.paneTargetsLength - 1) { this.enable(); } } match(value, regexp) { const validationRegexp = (regexp instanceof RegExp ? regexp : (new RegExp(regexp))); return validationRegexp.test(value); } emptyInput(target) { target.classList.remove('border-red-700'); target.classList.remove('focus:ring-red-200'); target.classList.remove('border-green-700'); target.classList.remove('focus:ring-green-200'); target.classList.add('border-gray-300'); target.classList.add('focus:ring-gray-200'); } goodInput(target) { target.classList.remove('border-red-700'); target.classList.remove('focus:ring-red-200'); target.classList.remove('border-gray-300'); target.classList.remove('focus:ring-gray-200'); target.classList.add('border-green-700'); target.classList.add('focus:ring-green-200'); } badInput(target) { target.classList.remove('border-green-700'); target.classList.remove('focus:ring-green-200'); target.classList.remove('border-gray-300'); target.classList.remove('focus:ring-gray-200'); target.classList.add('border-red-700'); target.classList.add('focus:ring-red-200'); } checkEmail() { let split = this.emailTarget.value.toLowerCase().split(\"@\"); writeEmailOptions(this.emailTarget.value, this.emailOptionsTarget); let emailDomain = split[split.length - 1]; if (this.emailTarget.value === '' || !this.match(this.emailTarget.value, \/^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$\/i)) { this.emptyInput(this.emailTarget); this.tooltipTarget.classList.add('hidden'); } else if (emailDomain in this.typos) { this.badInput(this.emailTarget); if (this.typos[emailDomain] !== '') { this.tooltipTarget.classList.remove('hidden'); this.tipTarget.innerHTML = `DID_YOU_MEAN ${this.typos[emailDomain]}? TAP_TO_FIX`; } } else { this.goodInput(this.emailTarget); this.tooltipTarget.classList.add('hidden'); } } fixEmail() { let split = this.emailTarget.value.toLowerCase().split(\"@\"); let emailDomain = split[split.length - 1]; this.emailTarget.value = this.emailTarget.value.replace(emailDomain, this.typos[emailDomain]); this.checkEmail(); this.enable(); } checkName() { if (this.nameTarget.value === '') { this.emptyInput(this.nameTarget); } else { this.goodInput(this.nameTarget); } } checkPhone() { if (this.phoneTarget.value != \"\") { this.phoneTarget.value = phoneNumberMask(this.phoneTarget.value, this.phoneMaskOption); } } autocomplete() { if (!this.autocompleted && this.emailTarget.value.endsWith('@g')) { this.emailTarget.value += 'mail.com'; this.autocompleted = true; } } isValid() { if (document.getElementById('doubleoptin') !== null) { return document.getElementById('optin').checked && document.getElementById('doubleoptin').checked; } if (this.mode === 'phone' && this.showhighlightValue) { return ( this.getPhoneNumberAreaCod().length > 5 && this.nameTarget.value !== '' && this.checkboxTarget.checked ); } if (this.mode === 'phone' && this.phoneTarget.value === '') { return true; } if (this.mode === 'email' && this.emailTarget.value === '' && !this.showhighlightValue) { return true; } if (this.mode === 'phone') { return ( this.getPhoneNumberAreaCod().length > 5 && this.nameTarget.value !== '' && this.checkboxTarget.checked ); } if (this.mode === 'push') { return true; } let split = this.emailTarget.value.toLowerCase().split(\"@\"); let emailDomain = split[split.length - 1]; if (this.mode === 'email' && this.emailTarget.value !== '' && !this.showhighlightValue) { if (!this.match(this.emailTarget.value, \/^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$\/i) || emailDomain in this.typos) { return true; } } return ( this.emailTarget.value !== '' && this.nameTarget.value !== '' && this.checkboxTarget.checked && this.match( this.emailTarget.value, \/^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$\/i ) && !(emailDomain in this.typos) ); } enable() { this.submitTarget.disabled = !this.isValid(); } identify() { if (typeof window.rudderanalytics === 'object') { window.rudderanalytics.identify( this.emailTarget.value.toLowerCase(), { email: this.emailTarget.value.toLowerCase(), name: this.nameTarget.value, ip: this.cf?.analyticsIp || '', host: this.hostname, quiz: this.quiz, country: this.country, answers: this.tags, utm_source: this.searchParams.get('utm_source') || localStorage.getItem('analytics_utm_source'), utm_medium: this.searchParams.get('utm_medium') || localStorage.getItem('analytics_utm_medium'), utm_campaign: this.searchParams.get('utm_campaign') || localStorage.getItem('analytics_utm_campaign'), utm_content: this.searchParams.get('utm_content') || localStorage.getItem('analytics_utm_content'), utm_term: this.searchParams.get('utm_term') || localStorage.getItem('analytics_utm_term'), fbclid: this.searchParams.get('fbclid') || localStorage.getItem('avFbclid'), gclid: this.searchParams.get('gclid') || localStorage.getItem('avGclid'), fb_pixel: '', aw_pixel: '', ems_account: this.emsAccount, domain: window.location.host, ems_list: String(this.emsList), phone: this.getPhoneNumberAreaCod(), cf_city: this.cf?.analyticsCity || '', cf_country: this.cf?.analyticsCountry || '', cf_region: this.cf?.analyticsRegion || '', cf_regionCode: this.cf?.analyticsCode || '' } ); if (window.complianceFlags && window.complianceFlags['necessary']) { fetch('https:\/\/id.adtechpanda.com\/new', { method: 'POST', body: JSON.stringify({ email: this.emailTarget.value.toLowerCase() }), headers: {'accept': 'application\/json'}, mode: 'no-cors' } ).then(response => { }).catch(error => { }); } } } trackFacebookPixel() { if (typeof window.av?.findTag !== 'undefined') { if (window.av.findTag('fb', '', 'formConversion') !== undefined) { window.av.triggerTags('formConversion', { email: this.emailTarget.value.toLowerCase(), firstName: this.nameTarget.value.split(' ')[0], lastName: this.nameTarget.value.split(' ').slice(1).join(' '), phoneNumber: this.getPhoneNumberAreaCod().replace('+', '') }, ['fb']); return; }; } if (typeof window.fbq === 'function') { window.fbq('track', 'Lead', {tags: this.tags}); }; } track() {  if (document.cookie.includes(\"quizLeadEvent=true\")) { return true; } this.setCookie(\"quizLeadEvent\", \"true\", 1\/192); this.trackFacebookPixel(); if (typeof window.gtag === 'function') { window.gtag('set', 'user_data', { \"email\": this.emailTarget.value.toLowerCase(), \"phone_number\": this.getPhoneNumberAreaCod() }); window.gtag('event', 'conversion', {'send_to': ``}); }; if (typeof window.ttq === 'object') { window.ttq.track('SubmitForm'); }; if (typeof window._tfa === 'object') { window._tfa.push({notify: 'event', name: 'lead', id: Number(\"\")}); }; if (typeof window.ctrk === 'function') { window.ctrk('record', 'Lead', { dnt: false }); };   } chooseLandingPage() { for (let condition of this.conditions) { if (condition['answers'].every( answer => this.replaceAll(this.replaceAll(this.tags, '\u2013', '-'), ' ', '').includes(this.replaceAll(this.replaceAll(answer, '\u2013', '-'), ' ', '')) )) { this.landingPage = condition['link']; this.landingUrl = new URL(this.landingPage); this.landingPathname = this.landingUrl.pathname.split('\/').filter(elem => elem).join('-'); break; }; }; if (typeof this.landingPage === 'undefined' && document.location.pathname[0] === '\/' && document.location.pathname[3] !== '\/') { this.landingPage = this.conditions[0]['link']; this.landingUrl = new URL(this.landingPage); this.landingPathname = this.landingUrl.pathname.split('\/').filter(elem => elem).join('-'); } if (typeof this.landingPage === 'undefined' && document.location.pathname[0] === '\/' && document.location.pathname[3] === '\/') { this.landingPage = !this.conditions[0]['link'].includes(document.location.pathname.substr(0,3)) && !this.conditions[0]['link'].includes('app.') ? this.conditions[0]['link'].replace(document.location.hostname, document.location.hostname + document.location.pathname.substr(0,3)) : this.conditions[0]['link']; this.landingUrl = new URL(this.landingPage); this.landingPathname = this.landingUrl.pathname.split('\/').filter(elem => elem).join('-'); } } redirect() { \/*let fbclid = this.searchParams.get('fbclid') ? '?fbclid=' + this.searchParams.get('fbclid') : ''; let gclid = this.searchParams.get('gclid') ? '?gclid=' + this.searchParams.get('gclid') : '';*\/ let url = `${this.landingPage}`; if (!this.landingUrl.search) { url += window.location.search; } this.formIgnored() ? this.setViewAnyForm(false) : ''; if (this.triggerInterstitial) { this.triggerTarget.href = url.replace(\"\/quiz.\", \"\/\"); this.triggerTarget.click(); setTimeout(() => { this.unloaderTargets.forEach((element, index) => { element.classList.remove(\"hidden\"); }); this.loaderTargets.forEach((element, index) => { element.classList.add(\"hidden\"); }); }, 1000); } else {  window.location.href = url;   } } skip() { if ((false) &&(window.km2RewardedExists) && (window.km2RewardedReady) && (!window.km2RewardedGranted)) { window.km2MakeRewardedVisible( function() { if (!this.showFormFirst) { this.bodyTarget.classList.add('hidden'); this.footerTarget.classList.add('hidden'); } }.bind(this), function() { this.skip(); }.bind(this) ); this.skipperTarget.disabled = true; this.skipperTarget.innerText = \"\"; this.triggerInterstitial = false; } else if (!this.showFormFirst) { this.chooseLandingPage(); this.identify(); this.track(); this.redirect(); } else { this.next(); } } submit(event) { this.unloaderTargets.forEach((element, index) => { element.classList.add(\"hidden\"); }); this.loaderTargets.forEach((element, index) => { element.classList.remove(\"hidden\"); }); this.chooseLandingPage(); if (this.skipForm) { this.identify(); this.track(); this.redirect(); } else { this.sendForm(true); } } submitEmailForm(event) { this.sendForm(); } sendForm(redirect=false) { this.identify(); let formData = new FormData(); formData.set('email', this.emailTarget.value.toLowerCase()); formData.set('name', this.nameTarget.value); formData.set('phone', this.getPhoneNumberAreaCod()); formData.set('tags', this.tags); formData.set(`p[${this.emsList}]`, this.emsList); fetch(`https:\/\/webhooks.adtechpanda.com\/quiz\/${this.emsAccount}`, { method: 'POST', body: formData, headers: {}, mode: 'no-cors', } ).then(response => { this.track(); this.emailTarget.value.length > 5 ? this.setViewEmailForm(false) : ''; this.getPhoneNumberAreaCod().length > 5 ? this.setViewPhoneForm(false) : ''; if (redirect) { this.redirect(); } else { !this.showFormFirst ? this.successMessage() : ''; } }).catch(error => { if (redirect) { this.redirect(); } else { !this.showFormFirst ? this.successMessage() : ''; } }); } successMessage() { this.formDataTarget.classList.add(\"hidden\"); this.formMessageTarget.classList.remove(\"hidden\"); let event = new CustomEvent(\"sendPulseTriggerPrompt\"); window.dispatchEvent(event); this.setFormViews(0); } getAnalyticsData() { this.cf = JSON.parse(sessionStorage.getItem(\"wildcardData\")); if (sessionStorage.getItem(\"wildcardCountry\") === null) { fetch('https:\/\/tracker.adtechpanda.com\/', { method: 'GET', headers: {'accept': 'application\/json'} }).then(response => response.json()).then(data => { const wildcardData = { analyticsIp: data.ip, analyticsCity: data.city, analyticsRegion: data.region, analyticsCode: data.regionCode, analyticsCountry: data.country }; sessionStorage.setItem(\"wildcardData\", JSON.stringify(wildcardData)); sessionStorage.setItem(\"wildcardCountry\", data.country); sessionStorage.setItem(\"wildcardRegion\", data.regionCode); sessionStorage.setItem(\"wildcardCity\", data.city); sessionStorage.setItem(\"wildcardState\", data.region); this.cf = wildcardData; }); } } getPhoneNumberAreaCod() { return '+'+(''+(this.phoneMaskOption.areaCod+this.phoneTarget.value)).replace(\/\\D\/g, ''); } observerScrollEmailForm() { const observer = new IntersectionObserver(entries => { entries.forEach(entry => { if (entry.isIntersecting) { this.formViews === -1 ? this.addAnimate() : ''; this.setFormViews(this.formViews + 1); } else { this.removeAnimate(); } }); }); observer.observe(this.submitTarget); } addAnimate() { if (!this.showedHighlight) { this.inProcessAnimate = true; this.formBoxBackGroundTarget.style.animation = \"none\"; this.formBoxBackGroundTarget.classList.remove('animate-fast-fade-out'); this.formBoxBackGroundTarget.classList.add('animate-fade-in'); this.formBoxTarget.classList.add('relative'); this.formBoxTarget.classList.add('animate-show-highlight'); setTimeout(() => { this.formBoxBackGroundTarget.style.animation = \"\"; this.formBoxBackGroundTarget.classList.remove('hidden'); this.showedHighlight = true; setTimeout(() => this.removeAnimate(), 5000); }, 10); } } removeAnimate() { if (this.inProcessAnimate) { this.formBoxBackGroundTarget.style.animation = \"none\"; this.formBoxBackGroundTarget.classList.remove('animate-fade-in'); this.formBoxBackGroundTarget.classList.add('animate-fade-out-quickly'); this.formBoxTarget.style.animation = \"none\"; this.formBoxTarget.classList.add('animate-hide-highlight'); this.formBoxTarget.classList.remove('animate-show-highlight'); this.formBoxTarget.classList.remove('relative'); setTimeout(() => { this.formBoxBackGroundTarget.style.animation = \"\"; this.formBoxTarget.style.animation = \"\"; setTimeout(() => { this.formBoxBackGroundTarget.classList.add('hidden'); this.inProcessAnimate = false; }, 1000); }, 10); } } setCookie(key, value, days) { let date = new Date(); date.setTime(date.getTime() + parseInt(days * 24 * 60 * 60 * 1000)); document.cookie = key + \"=\" + value + \";expires=\" + date.toUTCString() + \";domain=.morenetcash.com;path=\/\"; } setViewEmailForm(view) { localStorage.setItem(\"viewEmailForm\", view); this.setCookie(\"viewEmailForm\", String(view), 28); } getViewEmailForm() {  if (document.cookie.includes(\"viewEmailForm=false\")) { return false; } return ((localStorage.getItem(\"viewEmailForm\") || 'true') === 'true'); } setViewPhoneForm(view) { localStorage.setItem(\"viewPhoneForm\", view); this.setCookie(\"viewPhoneForm\", String(view), 28); } getViewPhoneForm() {  if (document.cookie.includes(\"viewPhoneForm=false\")) { return false; } return ((localStorage.getItem(\"viewPhoneForm\") || 'true') === 'true'); } getViewPushForm() { \/*if (typeof navigator.permissions === \"undefined\") { return false; } let permissionStatus = await navigator.permissions.query({name:'push', userVisibleOnly:true}); return (permissionStatus.state === 'granted' || permissionStatus.state === 'denied');*\/ return false; } setViewAnyForm(view) { localStorage.setItem(\"viewAnyForm\", view); this.setCookie(\"viewAnyForm\", String(view), 14); } getViewAnyForm() { if (document.cookie.includes(\"viewAnyForm=false\")) { return false; } return ((localStorage.getItem(\"viewAnyForm\") || 'true') === 'true'); } getFormViews() { this.formViews = parseInt(sessionStorage.getItem(\"quizFormViews\")) >= 1 ? parseInt(sessionStorage.getItem(\"quizFormViews\")) : 0; return this.formViews; } setFormViews(views) { sessionStorage.setItem(\"quizFormViews\", views); } formIgnored() { return (!this.skipForm && this.showForm && Math.max(this.emailTarget.value.length, this.getPhoneNumberAreaCod().length) < 5); } }); <\/script><div data-controller=\"quiz\" data-quiz-target=\"quiz\" data-quiz-showhighlight-value=\"true\" class=\"hidden sm:hidden   py-5 my-10 shadow-lg\">    \n  <div class=\"w-full p-2 md:p-4\" data-quiz-target=\"formBox\" style=\"z-index: 10;\">\n        <div class=\"flex flex-col rounded-lg p-4 w-full my-4 border bg-white shadow-lg\">\n      <div data-quiz-target=\"formData pane\" class=\"flex flex-col\">      \n        <h2 data-quiz-target=\"formTitle\" class=\"text-gray-900 text-base font-medium title-font mb-5 text-center\">\n                  <\/h2>\n        <div data-quiz-target=\"emailDiv\" class=\"text-left relative mb-4\">\n          <label for=\"email\" class=\"px-2 leading-7 text-sm text-gray-600 text-left\">\n            S\u00c4HK\u00d6POSTI_LOMAKE_S\u00c4HK\u00d6POSTI          <\/label>\n          <div data-quiz-target=\"tooltip\" style=\"top: 0px; right: 0px;\" class=\"hidden absolute mx-2\">\n            <button data-action=\"quiz#fixEmail\" class=\"bg-black text-white text-xs rounded py-1 px-4 right-0 bottom-full\">\n                <span data-quiz-target=\"tip\"><\/span>\n              <svg class=\"absolute text-black h-2 w-full left-0 top-full\" x=\"0px\" y=\"0px\" viewbox=\"0 0 255 255\" xml:space=\"preserve\"><polygon class=\"fill-current\" points=\"0,0 127.5,127.5 255,0\"\/><\/svg>\n            <\/button>\n          <\/div>\n          <input data-quiz-target=\"email\" data-action=\"quiz#enable quiz#checkEmail\" list=\"email-options\" type=\"email\" name=\"email\" placeholder=\"S\u00c4HK\u00d6POSTI_LOMAKE_S\u00c4HK\u00d6POSTI_PAIKKAPID\u00c4NT\u00c4\" class=\"w-full mt-1 bg-white rounded-lg border border-gray-300 focus:ring-2 focus:ring-gray-200 text-base outline-none text-gray-700 py-1 px-3 leading-8 transition-colors duration-200 ease-in-out\">\n          <datalist data-quiz-target=\"emailOptions\" id=\"email-options\"><\/datalist>\n        <\/div>  \n        <div data-quiz-target=\"phoneDiv\" class=\"grid grid-cols-3 gap-6 mb-4\">\n          <div class=\"col-span-3 text-left\">\n            <label for=\"phone\" class=\"px-2 leading-7 text-sm text-gray-600 text-left\">\n              S\u00c4HK\u00d6POSTI_LOMAKE_PUHELIN            <\/label>\n            <div class=\"mt-1 flex rounded shadow\">\n              \n              <input data-quiz-target=\"phone\" data-action=\"quiz#enable quiz#checkPhone\" type=\"phone\" name=\"phone\" id=\"phone\" maxlength=\"16\" class=\"rounded-none rounded-r-md w-full bg-white border border-gray-300 focus:border-gray-500 focus:ring-2 focus:ring-gray-200 text-base outline-none text-gray-700 py-1 px-3 leading-8 transition-colors duration-200 ease-in-out\">\n            <\/div>\n          <\/div>\n        <\/div>\n        <div data-quiz-target=\"nameDiv\" class=\"text-left relative mb-4\">\n          <label for=\"name\" class=\"px-2 leading-7 text-sm text-gray-600 text-left\">\n            S\u00c4HK\u00d6POSTI_LOMAKE_ETUNIMI          <\/label>\n          <input data-quiz-target=\"name\" data-action=\"quiz#enable quiz#checkName\" type=\"text\" id=\"name\" name=\"name\" class=\"w-full mt-1 bg-white rounded-lg border border-gray-300 focus:border-gray-500 focus:ring-2 focus:ring-gray-200 text-base outline-none text-gray-700 py-1 px-3 leading-8 transition-colors duration-200 ease-in-out\">\n        <\/div>\n        \n        <div data-quiz-target=\"soiDiv\" class=\"text-left relative mb-4 flex justify-start items-center\">\n          <input data-quiz-target=\"checkbox\" data-action=\"quiz#enable\" type=\"checkbox\" id=\"optin\" style=\"min-width: 25px;\" class=\"w-4 h-4 transition duration-300 rounded focus:ring-2 focus:ring-offset-0 focus:outline-none focus:ring-green-200\" \/>\n          <label data-quiz-target=\"soi\" for=\"optin\" class=\"ml-3 text-sm text-gray-600 text-left\">\n                      <\/label>\n        <\/div>\n                \n        <button aria-label=\"\" disabled data-quiz-target=\"submit\" data-action='quiz#submitEmailForm analytics#trackEmailForm' data-analytics-label=\"submitButton\" class=\"border-0 py-3 px-8 focus:outline-none rounded-lg text-lg disabled:opacity-50 block shadow-lg\">\n                  <\/button>\n      <\/div>\n      <div data-quiz-target=\"formMessage\" class=\"hidden\">\n        <div data-quiz-target=\"successMessage\" class=\"w-full  px-4 py-3 rounded relative text-center\">\n                  <\/div>\n        <p style=\"font-size: 10px;\" data-quiz-target=\"footnote\" class=\"hidden mb-4 text-xs mt-3 text-center sm:text-right\">\n          Sinut ohjataan toiselle verkkosivustolle        <\/p>\n      <\/div>\n    <\/div>\n  <\/div> \n    <div data-quiz-target=\"formBoxBackGround\" class=\"dark-background hidden\" style=\"z-index: 0;\"><\/div> \n<\/div>  <\/div>\n\n<\/div>\n\n<\/div><!--landing--><div class=\"wp-block-lazyblock-accordion lazyblock-accordion-1XygX\"><div data-controller=\"accordion\" class=\"mx-5 sm:mx-0 rounded mt-10 mb-20\">\n\t<div>\n                    <h2>\n                <button data-accordion-target=\"title\" data-accordion-index=\"0\" data-action=\"accordion#update\" type=\"button\" class=\"h-24 sm:h-16 flex justify-between items-center py-5 w-full font-medium text-left text-gray-900 rounded-t-xl border-b border-gray-200 dark:border-gray-700 dark:text-white\">\n                    <span class=\"w-4\/5\" data-accordion-index=\"0\">\n                        Mist\u00e4 tied\u00e4n, tarvitsenko taloushallintoa?                    <\/span>\n                    <svg data-accordion-index=\"0\" data-accordion-target=\"icon\" class=\"w-6 h-6 rotate-180 shrink-0\" fill=\"currentColor\" viewbox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path fill-rule=\"evenodd\" d=\"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\" clip-rule=\"evenodd\"><\/path><\/svg>\n                <\/button>\n            <\/h2>\n            <div data-accordion-target=\"description\" class=\"animate-fade-in-down\">\n                <div class=\"py-5 border-b border-gray-200 dark:border-gray-70 text-left\">\n                    <p class=\"mb-2 text-gray-500 dark:text-gray-400\">\n                        Taloudenhallinta on v\u00e4ltt\u00e4m\u00e4t\u00f6nt\u00e4 kaikille, jotka haluavat hallita henkil\u00f6kohtaista talouttaan. Budjetointisovellus voi auttaa sinua ymm\u00e4rt\u00e4m\u00e4\u00e4n tulosi ja menosi, tunnistamaan kulutustottumuksiasi ja tekem\u00e4\u00e4n tietoisempia taloudellisia p\u00e4\u00e4t\u00f6ksi\u00e4. Tutustu koko sis\u00e4lt\u00f6\u00f6n saadaksesi lis\u00e4tietoja.                    <\/p>\n                <\/div>\n            <\/div>\n                    <h2>\n                <button data-accordion-target=\"title\" data-accordion-index=\"1\" data-action=\"accordion#update\" type=\"button\" class=\"h-24 sm:h-16 flex justify-between items-center py-5 w-full font-medium text-left text-gray-900 rounded-t-xl border-b border-gray-200 dark:border-gray-700 dark:text-white\">\n                    <span class=\"w-4\/5\" data-accordion-index=\"1\">\n                        Miten voin saavuttaa hyv\u00e4n taloudenhallinnan?                    <\/span>\n                    <svg data-accordion-index=\"1\" data-accordion-target=\"icon\" class=\"w-6 h-6 rotate-180 shrink-0\" fill=\"currentColor\" viewbox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path fill-rule=\"evenodd\" d=\"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\" clip-rule=\"evenodd\"><\/path><\/svg>\n                <\/button>\n            <\/h2>\n            <div data-accordion-target=\"description\" class=\"animate-fade-in-down\">\n                <div class=\"py-5 border-b border-gray-200 dark:border-gray-70 text-left\">\n                    <p class=\"mb-2 text-gray-500 dark:text-gray-400\">\n                        Hyv\u00e4n taloudenhallinnan saavuttamiseksi on t\u00e4rke\u00e4\u00e4 hallita menojasi, luoda taloussuunnitelma, asettaa tavoitteita ja seurata edistymist\u00e4si. Budjetointisovellus tarjoaa ty\u00f6kaluja ja resursseja t\u00e4m\u00e4n prosessin virtaviivaistamiseen ja mahdollistaa taloutesi tehokkaan j\u00e4rjest\u00e4misen. Lue lis\u00e4\u00e4 koko sis\u00e4ll\u00f6st\u00e4.                    <\/p>\n                <\/div>\n            <\/div>\n                    <h2>\n                <button data-accordion-target=\"title\" data-accordion-index=\"2\" data-action=\"accordion#update\" type=\"button\" class=\"h-24 sm:h-16 flex justify-between items-center py-5 w-full font-medium text-left text-gray-900 rounded-t-xl border-b border-gray-200 dark:border-gray-700 dark:text-white\">\n                    <span class=\"w-4\/5\" data-accordion-index=\"2\">\n                        Mik\u00e4 on paras budjetointisovellus?                    <\/span>\n                    <svg data-accordion-index=\"2\" data-accordion-target=\"icon\" class=\"w-6 h-6 rotate-180 shrink-0\" fill=\"currentColor\" viewbox=\"0 0 20 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path fill-rule=\"evenodd\" d=\"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z\" clip-rule=\"evenodd\"><\/path><\/svg>\n                <\/button>\n            <\/h2>\n            <div data-accordion-target=\"description\" class=\"animate-fade-in-down\">\n                <div class=\"py-5 border-b border-gray-200 dark:border-gray-70 text-left\">\n                    <p class=\"mb-2 text-gray-500 dark:text-gray-400\">\n                        Paras budjetointisovellus vaihtelee henkil\u00f6kohtaisten tarpeidesi ja mieltymystesi mukaan. Saatavilla on useita vaihtoehtoja, joilla jokaisella on omat ominaisuutensa. Siksi sinun kannattaa tutustua koko sis\u00e4lt\u00f6\u00f6n saadaksesi suosituksia suosituista sovelluksista.                    <\/p>\n                <\/div>\n            <\/div>\n        \t<\/div>\n<\/div><\/div><div class=\"mx-5 sm:mx-0 prose leading-relaxed text-lg mb-5 text-left wp-paragraph\">\n<p>Haluatko hallita henkil\u00f6kohtaista talouttasi tehokkaasti? Budjetointisovellukset tarjoavat ominaisuuksia, joiden avulla voit seurata menojasi, luokitella tapahtumia, asettaa taloudellisia tavoitteita, luoda budjetteja ja analysoida kulutustottumuksia.<\/p>\n<\/div><div class=\"mx-5 sm:mx-0 prose leading-relaxed text-lg mb-5 text-left wp-paragraph\">\n<p>Lis\u00e4ksi ne voivat antaa n\u00e4kemyksi\u00e4 yleisest\u00e4 taloudellisesta tilanteestasi, auttaa sinua noudattamaan parhaita k\u00e4yt\u00e4nt\u00f6j\u00e4 taloudenhallinnassa ja varmistamaan, ett\u00e4 tulosi pysyv\u00e4t tervein\u00e4.<\/p>\n<\/div><div class=\"mx-5 sm:mx-0 prose leading-relaxed text-lg mb-5 text-left wp-paragraph\">\n<p>Tutustu budjetointisovellusten toimintoihin:<\/p>\n<\/div><div class=\"mx-5 sm:mx-0 prose text-left mb-5\">\n<ul><div class=\"mx-5 sm:mx-0 prose text-left mb-5\">\n<li><strong>Kulujen seuranta: <\/strong>N\u00e4iden sovellusten avulla voit tallentaa ja luokitella tulosi ja menosi, mik\u00e4 tarjoaa selke\u00e4n kuvan kassavirrastasi.<\/li>\n<\/div>\n\n<div class=\"mx-5 sm:mx-0 prose text-left mb-5\">\n<li><strong>Taloudellisten tavoitteiden asettaminen:<\/strong> N\u00e4iden sovellusten avulla voit asettaa henkil\u00f6kohtaisia taloudellisia tavoitteita, kuten s\u00e4\u00e4st\u00e4\u00e4 matkaa varten tai maksaa velkoja pois, ja seurata edistymist\u00e4si n\u00e4iden tavoitteiden saavuttamisessa.<\/li>\n<\/div>\n\n<div class=\"mx-5 sm:mx-0 prose text-left mb-5\">\n<li><strong>Yksityiskohtainen analyysi ja raportit: <\/strong>Budjetointisovellukset tarjoavat yksityiskohtaisia kaavioita ja raportteja, joiden avulla voit analysoida menojasi, tunnistaa trendej\u00e4 ja s\u00e4\u00e4st\u00f6kohteita, mik\u00e4 auttaa sinua tekem\u00e4\u00e4n \u00e4lykk\u00e4\u00e4mpi\u00e4 taloudellisia p\u00e4\u00e4t\u00f6ksi\u00e4.<\/li>\n<\/div><\/ul>\n<\/div><!--advertisement--><div class=\"mx-5 sm:mx-0 sm:text-3xl text-2xl font-medium title-font mb-4 text-gray-900 text-left\">\n<h2 class=\"wp-block-heading\" id=\"h-the-main-objectives-of-budgeting-apps-are\">Budjetointisovellusten p\u00e4\u00e4tavoitteet ovat:<\/h2>\n<\/div><div class=\"mx-5 sm:mx-0 prose text-left mb-5\">\n<ul><div class=\"mx-5 sm:mx-0 prose text-left mb-5\">\n<li>Auttaa sinua j\u00e4rjest\u00e4m\u00e4\u00e4n ja hallitsemaan henkil\u00f6kohtaista talouttasi yhdess\u00e4 paikassa.<\/li>\n<\/div>\n\n<div class=\"mx-5 sm:mx-0 prose text-left mb-5\">\n<li>Jotta voit seurata ja hallita kulujasi paremman analysoinnin ja taloudellisen p\u00e4\u00e4t\u00f6ksenteon varmistamiseksi.<\/li>\n<\/div>\n\n<div class=\"mx-5 sm:mx-0 prose text-left mb-5\">\n<li>Auttaa k\u00e4ytt\u00e4ji\u00e4 asettamaan taloudellisia tavoitteita ja seuraamaan edistymist\u00e4\u00e4n niit\u00e4 kohti, tarjoten selke\u00e4n kuvan heid\u00e4n taloudellisista tavoitteistaan.<\/li>\n<\/div><\/ul>\n<\/div><div class=\"mx-5 sm:mx-0 prose text-left mb-5\">\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<\/div><div class=\"mx-5 sm:mx-0 prose leading-relaxed text-lg mb-5 text-left wp-paragraph\">\n<p>Ota selv\u00e4\u00e4, miten budjetointisovellukset voivat mullistaa talousel\u00e4m\u00e4si tarjoamalla j\u00e4rjestelm\u00e4llisyytt\u00e4, hallintaa ja kyky\u00e4 saavuttaa tavoitteesi. Hy\u00f6dynn\u00e4 n\u00e4it\u00e4 ty\u00f6kaluja rakentaaksesi vakaan taloudellisen el\u00e4m\u00e4n. Lue koko artikkeli.<\/p>\n<\/div><div class=\"mx-5 sm:mx-0 prose text-left mb-5\">\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-1\"><div class=\"mx-5 sm:mx-0 prose text-left mb-5\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-vivid-green-cyan-background-color has-background has-text-align-center wp-element-button\" href=\"https:\/\/morenetcash.com\/fi\/best-budgeting-apps\/\">Lue koko artikkeli<\/a><\/div>\n<\/div><\/div>\n<\/div><!--loader--><div class=\"wp-block-lazyblock-loader lazyblock-loader-18V0ue\"><script>\n    Math.min(window.screen.width, window.screen.height) < 768 ? document.getElementById(\"page\").classList.add(\"fixed\") : '';\n<\/script>\n<div id=\"loader\" class=\"flex h-screen fixed bg-white inset-0\" style=\"z-index: 99999;\" >\n    <div class=\"m-auto flex flex-col\">\n        <div class=\"flex\">\n            <svg style=\"color: \" class=\"m-auto animate-spin h-28 w-28\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" fill=\"none\" viewbox=\"0 0 24 24\">\n                <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"><\/circle>\n                <path class=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"><\/path>\n            <\/svg>\n        <\/div>\n                    <div class=\"px-2 my-4 text-center animate-pulse text-xl\">\n                Etsit\u00e4\u00e4n tietoa budjettisovelluksista...            <\/div>\n                    <\/div>\n<\/div>\n<script>\n    function waitFor(conditionFunction) {\n        const poll = resolve => {\n            if(conditionFunction()) resolve();\n            else setTimeout(_ => poll(resolve), 400);\n        };\n        return new Promise(poll);\n    }\n\n    window.loaderHandler = setTimeout(() => {\n        waitFor(_ => ((document.querySelector('[data-google-query-id]') !== null) || (typeof avCustomConfig === 'object' && avCustomConfig.skipAds === true)))\n            .then(_ => {\n                if ((window.location.pathname.includes('\/iow')) && ((document.referrer ?? '').includes('morenetcash.com'.replace('cb.', ''))) && (!document.cookie.includes('avOfferWallRewarded'))) return;\n\n                if (document.getElementById('loader')) {\n                    document.getElementById('loader').addEventListener('animationend', () => {\n                        document.getElementById(\"page\").classList.remove(\"fixed\");\n                        document.getElementById(\"loader\").remove();\n                    });\n                    document.getElementById('loader').classList.add('animate-fade-out-quickly');\n                }\n            });\n    }, 2500);\n\n    window.loaderHandler = setTimeout(() => {\n        waitFor(_ => ((typeof av === 'object' && av.requested === true) || (typeof av === 'object' && av.showLimitedAds() === true && window.googletag && googletag.pubadsReady)))\n            .then(_ => {\n                if ((window.location.pathname.includes('\/iow')) && ((document.referrer ?? '').includes('morenetcash.com'.replace('cb.', ''))) && (!document.cookie.includes('avOfferWallRewarded'))) return;\n                \n                if (document.getElementById('loader')) {\n                    document.getElementById('loader').addEventListener('animationend', () => {\n                        document.getElementById(\"page\").classList.remove(\"fixed\");\n                        document.getElementById(\"loader\").remove();\n                    });\n                    document.getElementById('loader').classList.add('animate-fade-out-quickly');\n                }\n            });\n    }, 3500);\n\n    window.loaderHandler = setTimeout(() => {\n        waitFor(_ => (typeof av === 'object' && av.timeline?.includes('rewarded->visible')))\n            .then(_ => {                        \n                if (document.getElementById('loader')) {\n                    document.getElementById('loader').addEventListener('animationend', () => {\n                        document.getElementById(\"page\").classList.remove(\"fixed\");\n                        document.getElementById(\"loader\").remove();\n                    });\n                    document.getElementById('loader').classList.add('animate-fade-out-quickly');\n                }\n            });\n    }, 5000);\n\n    setTimeout(() => {\n        if (document.getElementById('loader')) {\n            document.getElementById('loader').addEventListener('animationend', () => {\n                document.getElementById(\"page\").classList.remove(\"fixed\");\n                document.getElementById(\"loader\").remove();\n            });\n            document.getElementById('loader').classList.add('animate-fade-out-quickly');\n        }\n    }, ((window.location.pathname.includes('\/iow')) && ((document.referrer ?? '').includes('morenetcash.com'.replace('cb.', ''))) && (!document.cookie.includes('avOfferWallRewarded'))) ? 20000 : 10000);\n<\/script>\n<\/div><!--loader--><!--awpixel--><!--awpixel-->","protected":false},"excerpt":{"rendered":"<p>Haluatko hallita henkil\u00f6kohtaista talouttasi tehokkaasti? Budjetointisovellukset tarjoavat ominaisuuksia, joiden avulla voit seurata menojasi, luokitella tapahtumia, asettaa taloudellisia tavoitteita, luoda budjetteja ja analysoida kulutustottumuksia. Lis\u00e4ksi ne voivat antaa tietoa yleisest\u00e4 taloudellisesta tilanteestasi, auttaa sinua noudattamaan parhaita k\u00e4yt\u00e4nt\u00f6j\u00e4 taloudenhallinnassa ja varmistamaan, ett\u00e4 tulosi pysyv\u00e4t\u2026 <a class=\"more-link\" href=\"https:\/\/morenetcash.com\/fi\/advisor-budget-apps\/\">Jatka lukemista <span class=\"screen-reader-text\">MNT Advisor \u2013 Budjettisovellukset<\/span><\/a><\/p>","protected":false},"author":3,"featured_media":103,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[370,2],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>MNT Advisor - Best Budget Apps - More Net Cash<\/title>\n<meta name=\"description\" content=\"Do you want to efficiently organize your finances? Read the article to discover the best budget apps and manage your financial life.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/morenetcash.com\/fi\/advisor-budget-apps\/\" \/>\n<meta property=\"og:locale\" content=\"fi_FI\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MNT Advisor - Best Budget Apps - More Net Cash\" \/>\n<meta property=\"og:description\" content=\"Do you want to efficiently organize your finances? Read the article to discover the best budget apps and manage your financial life.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/morenetcash.com\/fi\/advisor-budget-apps\/\" \/>\n<meta property=\"og:site_name\" content=\"More Net Cash\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-23T20:53:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-04-03T17:41:25+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/morenetcash.com\/wp-content\/uploads\/2023\/07\/edit-photos.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"384\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Pedro Saynovich\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minuutti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/morenetcash.com\/#organization\",\"name\":\"More Net Cash\",\"url\":\"https:\/\/morenetcash.com\/\",\"sameAs\":[],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fi\",\"@id\":\"https:\/\/morenetcash.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/morenetcash.com\/wp-content\/uploads\/2023\/07\/More-Net-Cash-logo-copy.jpg\",\"contentUrl\":\"https:\/\/morenetcash.com\/wp-content\/uploads\/2023\/07\/More-Net-Cash-logo-copy.jpg\",\"width\":378,\"height\":164,\"caption\":\"More Net Cash\"},\"image\":{\"@id\":\"https:\/\/morenetcash.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/morenetcash.com\/#website\",\"url\":\"https:\/\/morenetcash.com\/\",\"name\":\"More Net Cash\",\"description\":\"Financial Products Reviews\",\"publisher\":{\"@id\":\"https:\/\/morenetcash.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/morenetcash.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fi\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"fi\",\"@id\":\"https:\/\/morenetcash.com\/advisor-budget-apps\/#primaryimage\",\"url\":\"https:\/\/morenetcash.com\/wp-content\/uploads\/2023\/07\/edit-photos.png\",\"contentUrl\":\"https:\/\/morenetcash.com\/wp-content\/uploads\/2023\/07\/edit-photos.png\",\"width\":800,\"height\":384},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/morenetcash.com\/advisor-budget-apps\/#webpage\",\"url\":\"https:\/\/morenetcash.com\/advisor-budget-apps\/\",\"name\":\"MNT Advisor - Best Budget Apps - More Net Cash\",\"isPartOf\":{\"@id\":\"https:\/\/morenetcash.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/morenetcash.com\/advisor-budget-apps\/#primaryimage\"},\"datePublished\":\"2023-07-23T20:53:06+00:00\",\"dateModified\":\"2025-04-03T17:41:25+00:00\",\"description\":\"Do you want to efficiently organize your finances? Read the article to discover the best budget apps and manage your financial life.\",\"breadcrumb\":{\"@id\":\"https:\/\/morenetcash.com\/advisor-budget-apps\/#breadcrumb\"},\"inLanguage\":\"fi\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/morenetcash.com\/advisor-budget-apps\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/morenetcash.com\/advisor-budget-apps\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/morenetcash.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MNT Advisor &#8211; Budget Apps\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/morenetcash.com\/advisor-budget-apps\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/morenetcash.com\/advisor-budget-apps\/#webpage\"},\"author\":{\"@id\":\"https:\/\/morenetcash.com\/#\/schema\/person\/046a23e6d2e3984c5dfe947206a1df4e\"},\"headline\":\"MNT Advisor &#8211; Budget Apps\",\"datePublished\":\"2023-07-23T20:53:06+00:00\",\"dateModified\":\"2025-04-03T17:41:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/morenetcash.com\/advisor-budget-apps\/#webpage\"},\"wordCount\":242,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/morenetcash.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/morenetcash.com\/advisor-budget-apps\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/morenetcash.com\/wp-content\/uploads\/2023\/07\/edit-photos.png\",\"articleSection\":[\"Budgeting\",\"Hidden\"],\"inLanguage\":\"fi\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/morenetcash.com\/advisor-budget-apps\/#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/morenetcash.com\/#\/schema\/person\/046a23e6d2e3984c5dfe947206a1df4e\",\"name\":\"Pedro Saynovich\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fi\",\"@id\":\"https:\/\/morenetcash.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ae24d63a4b296976719eb7b1d4e1c7ca?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ae24d63a4b296976719eb7b1d4e1c7ca?s=96&d=mm&r=g\",\"caption\":\"Pedro Saynovich\"},\"url\":\"https:\/\/morenetcash.com\/fi\/author\/pedrosaynovich\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"MNT Advisor - Best Budget Apps - More Net Cash","description":"Do you want to efficiently organize your finances? Read the article to discover the best budget apps and manage your financial life.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/morenetcash.com\/fi\/advisor-budget-apps\/","og_locale":"fi_FI","og_type":"article","og_title":"MNT Advisor - Best Budget Apps - More Net Cash","og_description":"Do you want to efficiently organize your finances? Read the article to discover the best budget apps and manage your financial life.","og_url":"https:\/\/morenetcash.com\/fi\/advisor-budget-apps\/","og_site_name":"More Net Cash","article_published_time":"2023-07-23T20:53:06+00:00","article_modified_time":"2025-04-03T17:41:25+00:00","og_image":[{"width":800,"height":384,"url":"https:\/\/morenetcash.com\/wp-content\/uploads\/2023\/07\/edit-photos.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Written by":"Pedro Saynovich","Est. reading time":"1 minuutti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/morenetcash.com\/#organization","name":"More Net Cash","url":"https:\/\/morenetcash.com\/","sameAs":[],"logo":{"@type":"ImageObject","inLanguage":"fi","@id":"https:\/\/morenetcash.com\/#\/schema\/logo\/image\/","url":"https:\/\/morenetcash.com\/wp-content\/uploads\/2023\/07\/More-Net-Cash-logo-copy.jpg","contentUrl":"https:\/\/morenetcash.com\/wp-content\/uploads\/2023\/07\/More-Net-Cash-logo-copy.jpg","width":378,"height":164,"caption":"More Net Cash"},"image":{"@id":"https:\/\/morenetcash.com\/#\/schema\/logo\/image\/"}},{"@type":"WebSite","@id":"https:\/\/morenetcash.com\/#website","url":"https:\/\/morenetcash.com\/","name":"More Net Cash","description":"Financial Products Reviews","publisher":{"@id":"https:\/\/morenetcash.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/morenetcash.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fi"},{"@type":"ImageObject","inLanguage":"fi","@id":"https:\/\/morenetcash.com\/advisor-budget-apps\/#primaryimage","url":"https:\/\/morenetcash.com\/wp-content\/uploads\/2023\/07\/edit-photos.png","contentUrl":"https:\/\/morenetcash.com\/wp-content\/uploads\/2023\/07\/edit-photos.png","width":800,"height":384},{"@type":"WebPage","@id":"https:\/\/morenetcash.com\/advisor-budget-apps\/#webpage","url":"https:\/\/morenetcash.com\/advisor-budget-apps\/","name":"MNT Advisor - Best Budget Apps - More Net Cash","isPartOf":{"@id":"https:\/\/morenetcash.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/morenetcash.com\/advisor-budget-apps\/#primaryimage"},"datePublished":"2023-07-23T20:53:06+00:00","dateModified":"2025-04-03T17:41:25+00:00","description":"Do you want to efficiently organize your finances? Read the article to discover the best budget apps and manage your financial life.","breadcrumb":{"@id":"https:\/\/morenetcash.com\/advisor-budget-apps\/#breadcrumb"},"inLanguage":"fi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/morenetcash.com\/advisor-budget-apps\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/morenetcash.com\/advisor-budget-apps\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/morenetcash.com\/"},{"@type":"ListItem","position":2,"name":"MNT Advisor &#8211; Budget Apps"}]},{"@type":"Article","@id":"https:\/\/morenetcash.com\/advisor-budget-apps\/#article","isPartOf":{"@id":"https:\/\/morenetcash.com\/advisor-budget-apps\/#webpage"},"author":{"@id":"https:\/\/morenetcash.com\/#\/schema\/person\/046a23e6d2e3984c5dfe947206a1df4e"},"headline":"MNT Advisor &#8211; Budget Apps","datePublished":"2023-07-23T20:53:06+00:00","dateModified":"2025-04-03T17:41:25+00:00","mainEntityOfPage":{"@id":"https:\/\/morenetcash.com\/advisor-budget-apps\/#webpage"},"wordCount":242,"commentCount":0,"publisher":{"@id":"https:\/\/morenetcash.com\/#organization"},"image":{"@id":"https:\/\/morenetcash.com\/advisor-budget-apps\/#primaryimage"},"thumbnailUrl":"https:\/\/morenetcash.com\/wp-content\/uploads\/2023\/07\/edit-photos.png","articleSection":["Budgeting","Hidden"],"inLanguage":"fi","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/morenetcash.com\/advisor-budget-apps\/#respond"]}]},{"@type":"Person","@id":"https:\/\/morenetcash.com\/#\/schema\/person\/046a23e6d2e3984c5dfe947206a1df4e","name":"Pedro Saynovich","image":{"@type":"ImageObject","inLanguage":"fi","@id":"https:\/\/morenetcash.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ae24d63a4b296976719eb7b1d4e1c7ca?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ae24d63a4b296976719eb7b1d4e1c7ca?s=96&d=mm&r=g","caption":"Pedro Saynovich"},"url":"https:\/\/morenetcash.com\/fi\/author\/pedrosaynovich\/"}]}},"_links":{"self":[{"href":"https:\/\/morenetcash.com\/fi\/wp-json\/wp\/v2\/posts\/68"}],"collection":[{"href":"https:\/\/morenetcash.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/morenetcash.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/morenetcash.com\/fi\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/morenetcash.com\/fi\/wp-json\/wp\/v2\/comments?post=68"}],"version-history":[{"count":0,"href":"https:\/\/morenetcash.com\/fi\/wp-json\/wp\/v2\/posts\/68\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/morenetcash.com\/fi\/wp-json\/wp\/v2\/media\/103"}],"wp:attachment":[{"href":"https:\/\/morenetcash.com\/fi\/wp-json\/wp\/v2\/media?parent=68"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/morenetcash.com\/fi\/wp-json\/wp\/v2\/categories?post=68"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/morenetcash.com\/fi\/wp-json\/wp\/v2\/tags?post=68"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}