{"product_id":"umino-um-d1","title":"Umino D1 Mini \u0026 D1 Pro | Travel Dashcams for Rental Cars","description":"\u003cstyle\u003e\n  .umino-d1-main-container {\n    --umino-d1: #f7e341;\n  }\n\n  .umino-d1-main-container .text-umino-d1 {\n    color: var(--umino-d1);\n  }\n\n  .umino-d1-main-container .btn-round-umino-d1 {\n    background-color: var(--umino-d1);\n    color: #fff;\n    border-radius: 50px;\n    padding: 1rem 2rem;\n    text-transform: uppercase;\n    font-weight: bold;\n  }\n\n  @media (max-width: 768px) {\n    .umino-d1-main-container .btn-round-umino-d1 {\n      align-items: center;\n      border-radius: 50px;\n      display: inline-flex;\n      justify-content: center;\n      line-height: 1.2;\n      min-height: 50px;\n      padding: 0 2rem;\n      text-transform: uppercase;\n      font-weight: bold;\n    }\n  }\n\n  .umino-d1-main-container .btn-round-umino-d1:hover {\n    background-color: #fff;\n    color: #f0de3d;\n    border-color: #f0de3d;\n  }\n\n  .umino-d1-main-container #mc_embed_shell {\n    display: flex;\n    justify-content: center;\n  }\n\n  .umino-d1-main-container #mc_embed_shell input {\n    border: medium none;\n    color: gray;\n    font-size: 16px;\n    padding: 8px 25px;\n    width: auto;\n    height: 50px;\n    border-radius: 25px 0px 0px 25px;\n  }\n\n  @media (max-width: 575.98px) {\n    .umino-d1-main-container #mc_embed_shell input {\n      width: 100%;\n      height: 40px;\n      font-size: 13px;\n    }\n  }\n\n  .umino-d1-main-container #mc_embed_shell input.email {\n    background: #fff;\n  }\n\n  @media (max-width: 575.98px) {\n    .umino-d1-main-container #mc_embed_shell input.email {\n      font-size: 13px;\n    }\n  }\n\n  .umino-d1-main-container #mc_embed_shell input[type=submit] {\n    background-color: #00A5BD;\n    text-align: center;\n    transition: 0.5s;\n    background-size: 200% auto;\n    font-weight: bold;\n    color: #fff;\n    border-radius: 0 25px 25px 0;\n    display: block;\n    margin: 0;\n  }\n\n  .umino-d1-main-container #mc_embed_shell input[type=submit]:hover {\n    background-color: #222222;\n    background-position: right center;\n    color: #fff;\n    text-decoration: none;\n  }\n\n  .umino-d1-main-container #mc_embed_shell #mc-embedded-subscribe-form {\n    width: auto;\n    justify-content: start;\n  }\n\n  @media (max-width: 991.98px) {\n    .umino-d1-main-container #mc_embed_shell #mc-embedded-subscribe-form {\n      margin: auto;\n      justify-content: center;\n    }\n  }\n\n  .umino-d1-main-container .top-banner {\n    height: 80vh;\n    background-size: cover;\n    background-repeat: no-repeat;\n    background-position: center bottom;\n    background-image: url(\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/umino-d1_hero_banner.jpg\");\n  }\n\n  @media (max-width: 991px) {\n    .umino-d1-main-container .top-banner {\n      height: 70vh;\n      background-image: url(\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/umino-d1_hero_banner_mobile.jpg\");\n      background-position: center bottom;\n    }\n  }\n\n  .umino-d1-main-container .top-banner .bg-img {\n    position: absolute;\n  }\n\n  .umino-d1-main-container .top-banner .bg-img img {\n    object-fit: cover;\n  }\n\n  .umino-d1-main-container .top-banner .row {\n    padding-top: 10vh;\n  }\n\n  @media (max-width: 768px) {\n    .umino-d1-main-container .top-banner .row {\n      padding-top: 1.5rem;\n    }\n  }\n\n  .umino-d1-main-container .top-banner .row .d-flex img {\n    max-height: 94px;\n  }\n\n  @media (max-width: 576px) {\n    .umino-d1-main-container .top-banner .row .d-flex img {\n      max-height: 70px;\n    }\n  }\n\n  .umino-d1-main-container .top-banner .row .d-flex img.glinet-logo {\n    max-height: 62px;\n    padding: 0 0 0.45rem 0.5rem;\n  }\n\n  @media (max-width: 576px) {\n    .umino-d1-main-container .top-banner .row .d-flex img.glinet-logo {\n      max-height: 43px;\n      padding: 0 0 0.15rem 0.5rem;\n    }\n  }\n\n  .umino-d1-main-container .top-banner .logo img {\n    width: auto;\n    height: 58px;\n    max-height: inherit;\n    margin-right: 1rem;\n    filter: brightness(0) invert(1);\n  }\n\n  .umino-d1-main-container .top-banner .logo-separator {\n    display: inline-block;\n    position: relative;\n    width: 36px;\n    height: 36px;\n    margin-right: 1rem;\n    vertical-align: middle;\n  }\n\n  .umino-d1-main-container .top-banner .logo-separator::before,\n  .umino-d1-main-container .top-banner .logo-separator::after {\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    width: 2px;\n    height: 100%;\n    background-color: currentColor;\n    content: \"\";\n  }\n\n  .umino-d1-main-container .top-banner .logo-separator::before {\n    transform: translate(-50%, -50%) rotate(36deg);\n  }\n\n  .umino-d1-main-container .top-banner .logo-separator::after {\n    transform: translate(-50%, -50%) rotate(-36deg);\n  }\n\n  @media (max-width: 767px) {\n    .umino-d1-main-container .top-banner .logo img {\n      height: 42px;\n      margin-bottom: 0.75rem;\n    }\n\n    .umino-d1-main-container .top-banner .logo-separator {\n      width: 26px;\n      height: 26px;\n      margin-bottom: 0.75rem;\n    }\n  }\n\u003c\/style\u003e\n\u003cmain class=\"umino-d1-main-container\"\u003e\n  \u003csection class=\"top-banner\" id=\"subscribe\"\u003e\n    \u003cdiv class=\"container h-100\"\u003e\n      \u003cdiv class=\"row justify-content-center align-items-start text-center text-light h-100\"\u003e\n        \u003cdiv class=\"col-11\"\u003e\n          \u003cdiv class=\"logo pb-lg-4\"\u003e\n            \u003cimg class=\"img-fluid\" src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/umino_new_logo.svg\" alt=\"Umino Logo\"\u003e\n            \u003cspan class=\"logo-separator\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n            \u003cimg class=\"img-fluid\" src=\"https:\/\/static.gl-inet.com\/www\/images\/products\/umino-d1\/glinet_logo.svg\" alt=\"GL.iNet Logo\"\u003e\n          \u003c\/div\u003e\n\n          \u003ch1 class=\"font-weight-bold\"\u003eMeet Umino D1 Mini \u0026amp; Pro\u003c\/h1\u003e\n          \u003ch3 class=\"mb-0\"\u003eThe Travel Dashcams Built for Rental Cars\u003c\/h3\u003e\n          \u003cp class=\"pt-3\"\u003eSubscribe now for exclusive launch discounts, progress updates, and new feature announcements.\n          \u003c\/p\u003e\n          \u003cdiv id=\"global-banner-container\" style=\"width: 100%; height: 50px;\"\u003e\u003c\/div\u003e\n          \u003cdiv id=\"zf_div_NQISHJHnTfSITvrfpf8hR513YTZK9Hdkvx5Y2RXyhnU\" style=\"display: none;\"\u003e\n          \u003c\/div\u003e\n          \u003cscript type=\"text\/javascript\"\u003e\n            (function () {\n              try {\n                var f = document.createElement(\"iframe\");\n\n                var ifrmSrc = 'https:\/\/forms.zohopublic.com\/glinet\/form\/UMD1ProductNewsletterSignup\/formperma\/NQISHJHnTfSITvrfpf8hR513YTZK9Hdkvx5Y2RXyhnU?zf_rszfm=1';\n\n\n                try {\n                  if (typeof ZFAdvLead != \"undefined\" \u0026\u0026 typeof zfutm_zfAdvLead != \"undefined\") {\n                    for (var prmIdx = 0; prmIdx \u003c ZFAdvLead.utmPNameArr.length; prmIdx++) {\n                      var utmPm = ZFAdvLead.utmPNameArr[prmIdx];\n                      utmPm = (ZFAdvLead.isSameDomian \u0026\u0026 (ZFAdvLead.utmcustPNameArr.indexOf(utmPm) == -1)) ? \"zf_\" + utmPm : utmPm;\n                      var utmVal = zfutm_zfAdvLead.zfautm_gC_enc(ZFAdvLead.utmPNameArr[prmIdx]);\n                      if (typeof utmVal !== \"undefined\") {\n                        if (utmVal != \"\") {\n                          if (ifrmSrc.indexOf('?') \u003e 0) {\n                            ifrmSrc = ifrmSrc + '\u0026' + utmPm + '=' + utmVal;\n                          } else {\n                            ifrmSrc = ifrmSrc + '?' + utmPm + '=' + utmVal;\n                          }\n                        }\n                      }\n                    }\n                  }\n                  if (typeof ZFLead !== \"undefined\" \u0026\u0026 typeof zfutm_zfLead !== \"undefined\") {\n                    for (var prmIdx = 0; prmIdx \u003c ZFLead.utmPNameArr.length; prmIdx++) {\n                      var utmPm = ZFLead.utmPNameArr[prmIdx];\n                      var utmVal = zfutm_zfLead.zfutm_gC_enc(ZFLead.utmPNameArr[prmIdx]);\n                      if (typeof utmVal !== \"undefined\") {\n                        if (utmVal != \"\") {\n                          if (ifrmSrc.indexOf('?') \u003e 0) {\n                            ifrmSrc = ifrmSrc + '\u0026' + utmPm + '=' + utmVal;\/\/No I18N\n                          } else {\n                            ifrmSrc = ifrmSrc + '?' + utmPm + '=' + utmVal;\/\/No I18N\n                          }\n                        }\n                      }\n                    }\n                  }\n                  if (!((new RegExp(\"[?\u0026]referrername=\")).test(ifrmSrc))) {\n                    var rfr = window.location.href;\n\n                    try {\n                      rfr = window.self !== window.top ?\n                        window.top.location.href :\n                        (\/^https?:\\\/\\\/[\\w.-]+\\.[a-zA-Z]{2,}\/i.test(rfr) ? rfr : \"\");\n                    } catch (e) { }\n\n                    if (rfr \u0026\u0026 rfr !== \"\") {\n                      if (rfr.length \u003e 1800) {\n                        var queryIndex = rfr.indexOf('?');\n                        if (queryIndex \u003e -1) {\n                          rfr = rfr.substring(0, queryIndex);\n                        }\n                        if (rfr.length \u003e 1800) {\n                          rfr = rfr.substring(0, 1800);\n                        }\n                      }\n                      ifrmSrc += ((ifrmSrc.indexOf('?') \u003e 0) ? '\u0026' : '?') + 'referrername=' + encodeURIComponent(rfr);\n                    }\n                  }\n                } catch (e) { }\n\n\n                f.src = ifrmSrc;\n                f.style.border = \"none\";\n                f.style.height = \"220px\";\n                f.style.width = \"99%\";\n                f.style.transition = \"all 0.5s ease\";\n                f.setAttribute(\"aria-label\", 'UM\\-D1 Product Newsletter Signup');\n\n                var d = document.getElementById(\"zf_div_NQISHJHnTfSITvrfpf8hR513YTZK9Hdkvx5Y2RXyhnU\");\n                d.appendChild(f);\n                window.addEventListener('message', function () {\n                  var evntData = event.data;\n                  if (evntData \u0026\u0026 evntData.constructor == String) {\n                    var zf_ifrm_data = evntData.split(\"|\");\n                    if (zf_ifrm_data.length == 2 || zf_ifrm_data.length == 3) {\n                      var zf_perma = zf_ifrm_data[0];\n                      var zf_ifrm_ht_nw = (parseInt(zf_ifrm_data[1], 10) + 35) + \"px\";\n                      var iframe = document.getElementById(\"zf_div_NQISHJHnTfSITvrfpf8hR513YTZK9Hdkvx5Y2RXyhnU\").getElementsByTagName(\"iframe\")[0];\n                      if ((iframe.src).indexOf('formperma') \u003e 0 \u0026\u0026 (iframe.src).indexOf(zf_perma) \u003e 0) {\n                        var prevIframeHeight = iframe.style.height;\n                        var zf_tout = false;\n                        if (zf_ifrm_data.length == 3) {\n                          iframe.scrollIntoView();\n                          zf_tout = true;\n                        }\n\n                        if (prevIframeHeight != zf_ifrm_ht_nw) {\n                          if (zf_tout) {\n                            setTimeout(function () {\n                              iframe.style.height = zf_ifrm_ht_nw;\n                            }, 500);\n                          } else {\n                            iframe.style.height = zf_ifrm_ht_nw;\n                          }\n                        }\n                      }\n                    }\n                  }\n                }, false);\n              } catch (e) { }\n\n\n            })();\n          \u003c\/script\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/section\u003e\n\u003c\/main\u003e\n\u003cscript src=\"https:\/\/js.appboycdn.com\/web-sdk\/6.1\/braze.min.js\"\u003e\u003c\/script\u003e\n\u003cscript\u003e\n  (function () {\n    \/*\n     * 防止 Shopify 重复执行脚本。\n     *\/\n    if (window.__brazeBannerLoaded) {\n      return;\n    }\n\n    window.__brazeBannerLoaded = true;\n\n    const placementId = 'pdp_top_banner_um-d1';\n    let bannerInserted = false;\n\n    function showZohoFallback() {\n      const bannerContainer = document.getElementById('global-banner-container');\n      const zohoFallback = document.getElementById('zf_div_NQISHJHnTfSITvrfpf8hR513YTZK9Hdkvx5Y2RXyhnU');\n\n      if (bannerContainer) {\n        bannerContainer.style.display = 'none';\n      }\n\n      if (zohoFallback) {\n        zohoFallback.style.display = '';\n      } else {\n        console.warn('[Braze] Zoho fallback container not found');\n      }\n    }\n\n    try {\n      if (typeof braze === 'undefined') {\n        throw new Error('Braze SDK is unavailable');\n      }\n\n      \/*\n       * 初始化 Braze Web SDK。\n       *\/\n      const initialized = braze.initialize('a3cb3cae-dc89-461c-9ddf-ca3980efb0c6', {\n        baseUrl: 'sdk.iad-07.braze.com',\n        enableLogging: true,\n        allowUserSuppliedJavascript: true,\n      });\n\n      if (!initialized) {\n        console.error('[Braze] SDK initialization failed');\n        showZohoFallback();\n        return;\n      }\n\n      \/*\n       * 监听 Banner 数据更新。\n       *\/\n      braze.subscribeToBannersUpdates(function (banners) {\n        console.log('[Braze] Banners updated:', banners);\n\n        const container = document.getElementById('global-banner-container');\n\n        if (!container) {\n          console.warn('[Braze] Banner container not found');\n          return;\n        }\n\n        \/*\n         * Banner 已经插入后不再重复插入。\n         *\/\n        if (bannerInserted) {\n          console.log('[Braze] Banner already inserted, skipping duplicate render');\n          return;\n        }\n\n        const banner = braze.getBanner(placementId);\n\n        console.log('[Braze] Banner:', banner);\n\n        if (!banner) {\n          console.warn('[Braze] No Banner for placement:', placementId);\n          return;\n        }\n\n        \/*\n         * Control Group 不显示 Banner。\n         *\/\n        if (banner.isControl) {\n          console.warn('[Braze] Banner is control');\n          container.style.display = 'none';\n          return;\n        }\n\n        container.innerHTML = '';\n        container.style.display = '';\n\n        \/*\n         * 把 Banner 插入 Shopify 容器。\n         *\/\n        braze.insertBanner(banner, container);\n        bannerInserted = true;\n\n        console.log('[Braze] Banner inserted:', placementId);\n      });\n\n      \/*\n       * 启动 Braze Session。\n       *\/\n      braze.openSession();\n\n      \/*\n       * 请求指定 Placement 的 Banner。\n       *\/\n      setTimeout(function () {\n        console.log('[Braze] Requesting Banner:', placementId);\n        braze.requestBannersRefresh([placementId]);\n      }, 1500);\n    } catch (error) {\n      console.error('[Braze] SDK initialization failed:', error);\n      showZohoFallback();\n    }\n  })();\n\u003c\/script\u003e","brand":"GL.iNet","offers":[{"title":"Default Title","offer_id":49055701139639,"sku":null,"price":0.0,"currency_code":"GBP","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0711\/7733\/9063\/files\/3A013936-8060-4ECD-B594-536D8D623A43.png?v=1787735049","url":"https:\/\/www.gl-inet.com\/en-gb\/products\/umino-um-d1","provider":"GL.iNet","version":"1.0","type":"link"}