{"id":39762,"date":"2025-05-26T09:00:00","date_gmt":"2025-05-26T07:00:00","guid":{"rendered":"https:\/\/www.everyday-guide.com\/site\/concord-health-supply-whats-worth-buying-and-what-to-skip\/"},"modified":"2026-02-07T11:00:03","modified_gmt":"2026-02-07T10:00:03","slug":"concord-health-supply-whats-worth-buying-and-what-to-skip","status":"publish","type":"post","link":"https:\/\/www.everyday-guide.com\/site\/concord-health-supply-whats-worth-buying-and-what-to-skip\/","title":{"rendered":"Concord Health Supply: What&#8217;s Worth Buying (And What to Skip)"},"content":{"rendered":"\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/www.everyday-guide.com\/site\/7l1d\" title=\"www.concordhealthsupply.com\" class=\"pretty-link-keyword\"rel=\"nofollow sponsored \" target=\"_blank\">Concord Health Supply<\/a> is a small online retailer that specializes in pulse oximeters and basic home health monitoring equipment at prices that undercut big-box retailers.<\/strong><\/li>\n<li><strong>Their biggest advantage is being an authorized dealer for medical-grade brands like Nonin and Masimo, which means you're not rolling the dice on counterfeit devices from random marketplace sellers.<\/strong><\/li>\n<li><strong>The product catalog is narrow, the website looks like it's from 2009, and customer support can be slow, but for the specific items they carry, the prices and authenticity guarantees are hard to beat.<\/strong><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"788\" src=\"https:\/\/www.everyday-guide.com\/site\/wp-content\/uploads\/2026\/02\/concord-vital-signs-monitor.jpg\" alt=\"Hospital vital signs monitor displaying heart rate and oxygen levels\" class=\"wp-image-40241\" srcset=\"https:\/\/www.everyday-guide.com\/site\/wp-content\/uploads\/2026\/02\/concord-vital-signs-monitor.jpg 1200w, https:\/\/www.everyday-guide.com\/site\/wp-content\/uploads\/2026\/02\/concord-vital-signs-monitor-300x197.jpg 300w, https:\/\/www.everyday-guide.com\/site\/wp-content\/uploads\/2026\/02\/concord-vital-signs-monitor-1024x672.jpg 1024w, https:\/\/www.everyday-guide.com\/site\/wp-content\/uploads\/2026\/02\/concord-vital-signs-monitor-768x504.jpg 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n\n<h2 class=\"wp-block-heading\">Who Is Concord Health Supply?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.everyday-guide.com\/site\/7l1d\" title=\"www.concordhealthsupply.com\" class=\"pretty-link-keyword\"rel=\"nofollow sponsored \" target=\"_blank\">Concord Health Supply<\/a> is an online medical supply store that focuses on a few categories of home health products. They're not trying to be Amazon. They're not trying to be a full-service DME (durable medical equipment) provider. They sell pulse oximeters, blood pressure monitors, thermometers, nebulizers, and some CPAP supplies. That's basically the whole store.<\/p><div id=\"relatedsearches1\" class=\"every-content-2 every-entity-placement\" style=\"height: 450px;\"><script>console.log(\"RSOC loading..\");<\/script>\r\n<!-- Initialize Google CSA object - Required for ad functionality -->\r\n<script type=\"text\/javascript\" charset=\"utf-8\">\r\n\t(function(g,o){g[o]=g[o]||function(){(g[o]['q']=g[o]['q']||[]).push(\r\n\t\targuments)},g[o]['t']=1*new Date})(window,'_googCsa');\r\n<\/script><\/div><style>\r\n  #relatedsearches1,\r\n  #relatedsearches2 {\r\n    \/* Base container styles - final appearance *\/\r\n    margin-bottom: 20px;\r\n    padding: 15px;\r\n    background-color: #111827; \/* Final background color (gray-900) *\/\r\n    border-radius: 8px;\r\n    min-height: 250px; \/* Restore a reasonable min-height *\/\r\n    box-sizing: border-box;\r\n    overflow: hidden;\r\n    position: relative; \/* Needed to contain the absolute overlay *\/\r\n  }\r\n\r\n  \/* REMOVED .skeleton-active styles *\/\r\n\r\n  .skeleton-overlay {\r\n    position: absolute;\r\n    inset: 0; \/* Cover parent *\/\r\n    z-index: 10; \/* Ensure it's on top *\/\r\n    pointer-events: none; \/* Prevent interaction *\/\r\n    border-radius: 8px; \/* Match parent *\/\r\n\r\n    \/* --- Skeleton visuals applied directly to the overlay --- *\/\r\n    --skeleton-bar-height: 35px;\r\n    --skeleton-gap-height: 15px;\r\n    --skeleton-unit-height: calc(var(--skeleton-bar-height) + var(--skeleton-gap-height));\r\n    --skeleton-padding: 15px;\r\n    --skeleton-bar-color: #374151; \/* gray-700 *\/\r\n    --skeleton-bg-color: #1f2937;  \/* gray-800 *\/\r\n    --skeleton-shimmer-color: rgba(52, 211, 153, 0.1); \/* emerald-400 10% *\/\r\n\r\n    background-color: var(--skeleton-bg-color);\r\n    background-image:\r\n      linear-gradient(to right, transparent, var(--skeleton-shimmer-color), transparent),\r\n      linear-gradient(var(--skeleton-bar-color) var(--skeleton-bar-height), transparent 0);\r\n    background-size:\r\n      200% var(--skeleton-bar-height),\r\n      calc(100% - (2 * var(--skeleton-padding))) var(--skeleton-unit-height);\r\n    background-repeat: repeat-y;\r\n    background-position:\r\n      calc(-200% + var(--skeleton-padding)) var(--skeleton-padding),\r\n      var(--skeleton-padding) var(--skeleton-padding);\r\n    animation: shimmer 1.5s infinite linear;\r\n    \/* --- End Skeleton Visuals --- *\/\r\n\r\n    \/* --- Visibility Control --- *\/\r\n    opacity: 0;\r\n    transition: opacity 0.3s ease-out;\r\n  }\r\n\r\n  .skeleton-overlay.skeleton-visible {\r\n    opacity: 1;\r\n  }\r\n\r\n  @keyframes shimmer {\r\n    to {\r\n       background-position:\r\n        calc(200% + var(--skeleton-padding)) var(--skeleton-padding),\r\n        var(--skeleton-padding) var(--skeleton-padding);\r\n    }\r\n  }\r\n\r\n  \/* No longer need rules for .skeleton-loading class or :empty *\/\r\n\r\n<\/style>\n\n\n\n<p class=\"wp-block-paragraph\">What sets them apart from random online sellers is that they're an authorized dealer for brands like Nonin, Masimo, and Contec. This matters more than most people realize. When you buy a Nonin pulse oximeter from Concord, you're getting a device covered by the manufacturer's warranty. Buy that same device from an unauthorized third-party on Amazon, and Nonin won't honor the warranty if something goes wrong.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They also sell their own Concord-branded devices. These are budget-friendly alternatives that won't match the accuracy or build quality of a Nonin or Masimo, but they work fine for casual home monitoring. Think of them as the Kirkland Signature of pulse oximeters.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">What They Sell (And What's Actually Good)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Pulse Oximeters: The Main Event<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This is where <a href=\"https:\/\/www.everyday-guide.com\/site\/7l1d\" title=\"www.concordhealthsupply.com\" class=\"pretty-link-keyword\"rel=\"nofollow sponsored \" target=\"_blank\">Concord Health Supply<\/a> shines. They carry one of the widest selections of fingertip and tabletop pulse oximeters you'll find outside of a medical equipment distributor. Their lineup includes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Concord brand fingertip oximeters:<\/strong> Starting around $15 to $30. Basic models that give you SpO2 and pulse rate. Good enough for general wellness checks, not precise enough for clinical decisions.<\/li>\n<li><strong>Nonin Onyx Vantage 9590:<\/strong> Around $170 to $200. This is a clinical-grade, FDA-cleared pulse oximeter used in hospitals. It's the gold standard for home use if you have a condition like COPD, asthma, or sleep apnea that requires reliable oxygen monitoring.<\/li>\n<li><strong>Masimo MightySat:<\/strong> Around $300 to $400. Top-of-the-line consumer oximeter with Bluetooth connectivity, perfusion index, and hospital-level accuracy. Overkill for most people, but if your doctor told you to monitor closely, this is the one.<\/li>\n<li><strong>Contec CMS50D:<\/strong> Around $20 to $35. A step up from the cheapest Concord models. Decent accuracy for the price, and widely used in clinical studies internationally.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The Nonin Onyx Vantage is the sweet spot for most buyers who need reliable readings. It's not cheap, but it reads accurately on a wider range of skin tones and in low-perfusion conditions (cold fingers, poor circulation) where budget oximeters fail completely.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Blood Pressure Monitors<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Concord carries a smaller selection of upper-arm and wrist blood pressure monitors, primarily from Omron and their own Concord label. Prices range from about $25 to $80. Omron is the brand most doctors recommend for home blood pressure monitoring, and Concord's prices on Omron units are competitive with (sometimes lower than) Amazon.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Their Concord-brand blood pressure monitors are functional budget options, but if you're monitoring blood pressure for a medical condition, spend the extra $20 to $30 and get an Omron. The accuracy difference matters.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Thermometers<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">They stock infrared forehead thermometers and ear thermometers, mostly from their own brand and a few third-party options. Prices are in the $15 to $50 range. These are fine for home use. Honestly, thermometers are thermometers at this price point. Don't overthink it.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Nebulizers and CPAP Supplies<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This is where the selection gets thinner. They carry a handful of portable and tabletop nebulizers (roughly $40 to $100), plus CPAP masks, tubing, filters, and cleaning supplies. If you already know your CPAP mask model and just need replacement parts, Concord's prices are solid. But if you're buying a CPAP machine or need help selecting a mask, you're better off with a dedicated CPAP retailer that offers fitting assistance and insurance billing.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1200\" height=\"800\" src=\"https:\/\/www.everyday-guide.com\/site\/wp-content\/uploads\/2026\/02\/concord-mobility-wheelchair.jpg\" alt=\"Young man assisting elderly woman in a modern wheelchair outdoors\" class=\"wp-image-40242\" srcset=\"https:\/\/www.everyday-guide.com\/site\/wp-content\/uploads\/2026\/02\/concord-mobility-wheelchair.jpg 1200w, https:\/\/www.everyday-guide.com\/site\/wp-content\/uploads\/2026\/02\/concord-mobility-wheelchair-300x200.jpg 300w, https:\/\/www.everyday-guide.com\/site\/wp-content\/uploads\/2026\/02\/concord-mobility-wheelchair-1024x683.jpg 1024w, https:\/\/www.everyday-guide.com\/site\/wp-content\/uploads\/2026\/02\/concord-mobility-wheelchair-768x512.jpg 768w\" sizes=\"auto, (max-width: 1200px) 100vw, 1200px\" \/><\/figure>\n\n\n\n\n<h2 class=\"wp-block-heading\">Pricing: Where Concord Actually Saves You Money<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.everyday-guide.com\/site\/7l1d\" title=\"www.concordhealthsupply.com\" class=\"pretty-link-keyword\"rel=\"nofollow sponsored \" target=\"_blank\">Concord Health Supply<\/a> positions itself as a discount medical supply retailer, and the prices back that up on most items. Here's how they compare on popular products:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Nonin Onyx Vantage 9590:<\/strong> Around $175 at Concord vs. $190 to $220 at most medical supply retailers. Amazon prices fluctuate wildly depending on the seller, and many aren't authorized dealers.<\/li>\n<li><strong>Basic fingertip oximeter:<\/strong> $15 to $25 at Concord vs. $15 to $40 on Amazon (though the cheapest Amazon options are often unbranded imports with questionable accuracy).<\/li>\n<li><strong>Omron blood pressure monitors:<\/strong> Generally $5 to $15 cheaper than MSRP, roughly matching Amazon's best non-sale price.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The savings aren't dramatic on most items. You're saving $10 to $30 on premium oximeters, which is meaningful when you're spending $200+, but marginal on cheaper items. The real value is the authorized dealer guarantee. You know the product is genuine, covered by warranty, and hasn't been sitting in a third-party <a href=\"https:\/\/www.everyday-guide.com\/site\/kta5\" title=\"Sam&#039;s Club\" class=\"pretty-link-keyword\"rel=\"nofollow sponsored \" target=\"_blank\">warehouse<\/a> with unknown storage conditions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One thing to know: Concord rarely runs sales or promotions. The prices you see are the prices you get. There's no Black Friday blowout or seasonal clearance event. They keep margins thin and prices consistent.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Shipping and Returns: The Good and the Frustrating<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Shipping<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.everyday-guide.com\/site\/7l1d\" title=\"www.concordhealthsupply.com\" class=\"pretty-link-keyword\"rel=\"nofollow sponsored \" target=\"_blank\">Concord Health Supply<\/a> offers free standard shipping on most orders within the US. That's a genuine perk, especially for heavier items like nebulizers. Standard shipping typically takes 3 to 7 business days, which is slower than Amazon Prime but reasonable for a small retailer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Expedited shipping options are available at additional cost. But here's a real complaint that pops up in reviews: processing times can be slow. Some customers report that it takes 2 to 3 business days for an order to ship after being placed. Combined with standard shipping transit time, you might be waiting 7 to 10 days total. If you need something urgently, this isn't the place to order from.<\/p><div id=\"every-1335021831\" class=\"every-content-4 every-entity-placement\"><div class='content_4' style='min-width: 300px; min-height: 250px;'>\r\n  <\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Returns<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Their return policy is fairly standard for <a href=\"https:\/\/www.everyday-guide.com\/site\/7l1d\" title=\"www.concordhealthsupply.com\" class=\"pretty-link-keyword\"rel=\"nofollow sponsored \" target=\"_blank\">medical supplies<\/a>. Unopened items can be returned within 30 days for a full refund. Opened items are generally not returnable unless defective, which is common across the medical supply industry (for hygiene and safety reasons).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you receive a defective product, Concord will replace it or issue a refund. But some customers note that the process isn't always smooth. You may need to contact them by email and wait a few days for a response. There's no live chat, and phone support hours are limited.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">The Authorized Dealer Advantage (Why It Matters More Than You Think)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the biggest reason to consider Concord over random Amazon sellers. Here's why authorized dealer status actually matters for medical devices:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Warranty protection:<\/strong> Nonin, Masimo, and other premium brands only honor warranties on devices purchased from authorized dealers. Buy from an unauthorized seller, and you're on your own if the device fails.<\/li>\n<li><strong>Product authenticity:<\/strong> Counterfeit medical devices are a real problem on Amazon and eBay. A 2023 study found that a significant percentage of &#8220;brand name&#8221; oximeters sold by third-party marketplace sellers were either counterfeit or gray-market imports not intended for the US market.<\/li>\n<li><strong>Proper storage and handling:<\/strong> Authorized dealers receive products directly from the manufacturer and store them according to specifications. Third-party sellers may have items that have been through multiple warehouses, returned and resold, or stored improperly.<\/li>\n<li><strong>FDA compliance:<\/strong> Authorized dealers sell FDA-cleared devices with proper documentation. Unauthorized sellers sometimes sell devices that haven't been cleared for the US market.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">For a $20 fingertip oximeter you're using casually, this probably doesn't matter much. But if you're spending $200+ on a Nonin or Masimo and relying on it for medical decisions, buying from an authorized dealer like Concord is worth the peace of mind.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Concord Brand vs. Premium Brands: Which Should You Buy?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the question most buyers struggle with. Concord's own-brand pulse oximeters cost a fraction of what Nonin and Masimo charge. But you get what you pay for.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Buy Concord Brand If:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You're a generally healthy person who wants to spot-check oxygen levels occasionally<\/li>\n<li>You want a backup device for travel or the gym bag<\/li>\n<li>You're monitoring a mild respiratory illness at home and just need a rough reading<\/li>\n<li>Budget is the top priority and you understand the accuracy tradeoffs<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Buy Nonin or Masimo If:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You have COPD, asthma, sleep apnea, or another condition requiring regular monitoring<\/li>\n<li>Your doctor specifically told you to track oxygen saturation<\/li>\n<li>You have darker skin tones (premium oximeters are clinically validated across a wider range of skin tones)<\/li>\n<li>You have circulation issues, cold hands, or nail polish that might interfere with readings<\/li>\n<li>Accuracy is non-negotiable<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The accuracy gap between a $20 Concord oximeter and a $175 Nonin can be significant. Budget oximeters typically claim accuracy of plus or minus 2 to 3%, while the Nonin Onyx Vantage is accurate to plus or minus 1% across a wider range of conditions. That 1 to 2% difference doesn't sound like much, but when you're distinguishing between &#8220;everything is fine&#8221; (96% SpO2) and &#8220;go to the ER&#8221; (90% SpO2), accuracy matters a lot.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">The Downsides (Let's Be Honest)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.everyday-guide.com\/site\/7l1d\" title=\"www.concordhealthsupply.com\" class=\"pretty-link-keyword\"rel=\"nofollow sponsored \" target=\"_blank\">Concord Health Supply<\/a> has some real weaknesses that you should know about before ordering:<\/p><div id=\"relatedsearches2\" class=\"every-content-5 every-entity-placement\"><script>console.log(\"RSOC bottom loading..\");<\/script>\r\n<\/div><script type=\"text\/javascript\" charset=\"utf-8\">\r\n    console.log('[DEBUG] Ad script block started');\r\n\r\n    \/\/ Debug function to log important events and states\r\n    function debugLog(type, message, data = null) {\r\n        const timestamp = new Date().toISOString();\r\n        console.log(`[${timestamp}] [${type}]`, message);\r\n        if (data) {\r\n            console.log('Debug data:', data);\r\n        }\r\n    }\r\n\r\n    \/\/ Validate required parameters before initialization\r\n    function validateConfig(config) {\r\n        const required = ['pubId', 'styleId', 'relatedSearchTargeting', 'resultsPageBaseUrl'];\r\n        const missing = required.filter(param => !config[param]);\r\n        \r\n        if (missing.length > 0) {\r\n            throw new Error(`Missing required parameters: ${missing.join(', ')}`);\r\n        }\r\n        \r\n        if (config.relatedSearchTargeting !== 'content' && config.relatedSearchTargeting !== 'query') {\r\n            throw new Error('relatedSearchTargeting must be either \"content\" or \"query\"');\r\n        }\r\n        \r\n        return true;\r\n    }\r\n\r\n    \/\/ Enhanced URL parameter parsing function with title fallback for referrerAdCreative\r\n    function getUrlParameter(name, defaultValue = '') {\r\n        try {\r\n            const urlParams = new URLSearchParams(window.location.search);\r\n            const value = urlParams.get(name);\r\n            \r\n            \/\/ Special handling for referrerAdCreative\r\n            if (name === 'referrerAdCreative' && !value) {\r\n                let siteTitle = document.title || defaultValue;\r\n                \r\n                \/\/ Clean up the site title if needed\r\n                if (siteTitle !== defaultValue) {\r\n                    siteTitle = siteTitle.replace(' \u2013 Everyday Guide \u2013 Your Source of Information for Daily Topics!', '').trim();\r\n                    debugLog('WARNING', 'Using modified page title as fallback for referrerAdCreative', {\r\n                        originalTitle: document.title,\r\n                        cleanedTitle: siteTitle,\r\n                        source: 'document.title'\r\n                    });\r\n                    return siteTitle;\r\n                }\r\n            }\r\n            \r\n            return value ? decodeURIComponent(value) : defaultValue;\r\n        } catch (error) {\r\n            debugLog('ERROR', `Failed to parse URL parameter: ${name}`, error);\r\n            return defaultValue;\r\n        }\r\n    }\r\n\r\n    \/\/ Add tracking domain and CID handling with validation\r\n    function getTrackingParams() {\r\n        const trackingDomain = getUrlParameter('td', '');\r\n        const cid = getUrlParameter('cid', '');\r\n        \r\n        \/\/ Only validate if tracking domain is provided\r\n        if (trackingDomain && !trackingDomain.match(\/^[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$\/)) {\r\n            debugLog('WARNING', 'Invalid tracking domain format', {\r\n                provided: trackingDomain\r\n            });\r\n            return {\r\n                trackingDomain: '',\r\n                cid: cid\r\n            };\r\n        }\r\n        \r\n        return {\r\n            trackingDomain: trackingDomain,\r\n            cid: cid\r\n        };\r\n    }\r\n\r\n    const { trackingDomain, cid } = getTrackingParams();\r\n\r\n    \/\/ Get parameters from URL with defaults\r\n    const urlStyleId = getUrlParameter('styleid', '9024836547');\r\n    const urlTerms = getUrlParameter('terms', '');\r\n    const urlChannel = getUrlParameter('channel', '2273637055'); \/\/ edg 1871989443\r\n    const urlAdTitle = getUrlParameter('adtitle', '');\r\n    const urlCpid = getUrlParameter('cpid', '');\r\n    const urlOid = getUrlParameter('oid', '');\r\n\r\n    \/\/ Set tracking IDs immediately at script start, before any async operations\r\n    \/\/ Only call set_tracking_ids if it exists (tracker.js has initialized)\r\n    try {\r\n        \/\/ Debug tracker state\r\n        const trackerState = window._trackerInternalState || {};\r\n        const hasTrackerFunction = typeof window.set_tracking_ids === 'function';\r\n        const sessionData = sessionStorage.getItem('ctrkr_click_data');\r\n        let parsedSessionData = null;\r\n        try { parsedSessionData = sessionData ? JSON.parse(sessionData) : null; } catch(e) {}\r\n        \r\n        debugLog('TRACKING_DEBUG', 'Tracker state before setting IDs', {\r\n            trackerInitialized: trackerState.ready === true,\r\n            hasSetTrackingFunction: hasTrackerFunction,\r\n            hasSessionStorage: !!sessionStorage,\r\n            hasSessionData: !!sessionData,\r\n            clickId: parsedSessionData?.clickId,\r\n            existingParams: parsedSessionData?.adParams\r\n        });\r\n        \r\n        if (hasTrackerFunction) {\r\n            window.set_tracking_ids({\r\n                ad_client_id: \"partner-pub-9681717277196944\", \/\/ Your AdSense publisher ID\r\n                style_id: urlStyleId,\r\n                channel_id: urlChannel\r\n            });\r\n            \r\n            \/\/ Check if the params were actually set\r\n            setTimeout(() => {\r\n                try {\r\n                    const afterSessionData = sessionStorage.getItem('ctrkr_click_data');\r\n                    let afterParsedData = null;\r\n                    try { afterParsedData = afterSessionData ? JSON.parse(afterSessionData) : null; } catch(e) {}\r\n                    \r\n                    debugLog('TRACKING_DEBUG', 'Tracker state after setting IDs', {\r\n                        hasSessionData: !!afterSessionData,\r\n                        clickId: afterParsedData?.clickId,\r\n                        updatedParams: afterParsedData?.adParams\r\n                    });\r\n                } catch (e) {\r\n                    debugLog('TRACKING_DEBUG', 'Error checking session after update', e);\r\n                }\r\n            }, 50);\r\n            \r\n            debugLog('TRACKING', 'Successfully called set_tracking_ids');\r\n        } else {\r\n            debugLog('TRACKING', 'Tracker set_tracking_ids function not available');\r\n        }\r\n    } catch (e) {\r\n        debugLog('TRACKING_ERROR', 'Error in tracking setup', e);\r\n    }\r\n\r\n    \/\/ Define base URL constant\r\n    const BASE_RESULTS_URL = \"https:\/\/www.everyday-guide.com\/site\/search-results\/\";\r\n\r\n    \/\/ Page level configuration for related searches\r\n    var pageOptions = {\r\n        \/\/ Required Parameters\r\n        \"pubId\": \"partner-pub-9681717277196944\",    \/\/ Your AdSense publisher ID\r\n        \"styleId\": urlStyleId,                       \/\/ From URL or default\r\n        \"relatedSearchTargeting\": \"content\",         \/\/ Must use 'content' for content pages\r\n        \"resultsPageBaseUrl\": BASE_RESULTS_URL,      \/\/ Placeholder, will be finalized later\r\n        \"resultsPageQueryParam\": \"q\",\r\n        \/\/\"ivt\": false,\r\n        \/\/ Safety and Filtering\r\n        \"adsafe\": \"low\",\r\n        \/\/\"adtest\": \"off\",\r\n        \"terms\": \"\",\r\n        \"referrerAdCreative\": \"\",\r\n\r\n        \/\/ Tracking and Analytics\r\n        \"channel\": urlChannel,                       \/\/ From URL or default\r\n        \r\n        \/\/ Additional Settings\r\n        'ignoredPageParams': Array.from(new URLSearchParams(location.search).keys()).join(', '),\r\n\r\n        \/\/ Callback function for ad loading\r\n        \"adLoadedCallback\": function(containerName, adsLoaded, isExperimentVariant, callbackOptions) {\r\n            try {\r\n                \/\/ Find the container element\r\n                const container = document.getElementById(containerName);\r\n                if (!container) {\r\n                    debugLog('ERROR', `Container not found: ${containerName}`);\r\n                    return;\r\n                }\r\n\r\n                \/\/ Find the overlay within this container\r\n                const overlay = container.querySelector('.skeleton-overlay');\r\n\r\n                \/\/ Fade out and remove the overlay\r\n                if (overlay && overlay.classList.contains('skeleton-visible')) {\r\n                    overlay.classList.remove('skeleton-visible'); \/\/ Start fade out\r\n                    debugLog('SKELETON', `Fading out overlay in ${containerName}`);\r\n\r\n                    \/\/ Remove from DOM after transition\r\n                    setTimeout(() => {\r\n                        if (overlay) { \/\/ Check if it still exists\r\n                             overlay.remove();\r\n                             debugLog('SKELETON', `Removed overlay from DOM in ${containerName}`);\r\n                        }\r\n                    }, 300); \/\/ Match CSS transition duration\r\n                }\r\n\r\n                if (adsLoaded && callbackOptions && callbackOptions.termPositions) {\r\n                    const terms = Object.keys(callbackOptions.termPositions);\r\n                    console.log('Related Search Terms Shown:', terms);\r\n                    console.log('Term Positions:', callbackOptions.termPositions);\r\n                }\r\n                \r\n                debugLog('CALLBACK', `Container: ${containerName}`, {\r\n                    adsLoaded,\r\n                    isExperimentVariant,\r\n                    callbackOptions\r\n                });\r\n\r\n                if (adsLoaded) {\r\n                    debugLog('SUCCESS', 'Related searches loaded successfully');\r\n                    \/\/ Remove legacy tracking call\r\n                    \/\/ window.trackEvent('adview');\r\n                    \/\/ Debug tracking state before sending event\r\n                    try {\r\n                        const eventSessionData = sessionStorage.getItem('ctrkr_click_data');\r\n                        let eventParsedData = null;\r\n                        try { eventParsedData = eventSessionData ? JSON.parse(eventSessionData) : null; } catch(e) {}\r\n                        \r\n                        debugLog('TRACKING_EVENT', 'State before ad_view event', {\r\n                            hasSessionData: !!eventSessionData,\r\n                            clickId: eventParsedData?.clickId,\r\n                            params: eventParsedData?.adParams\r\n                        });\r\n                    } catch (e) {\r\n                        debugLog('TRACKING_ERROR', 'Error checking session before event', e);\r\n                    }\r\n                    \r\n                    \/\/ Send tracking event using new API with parameters as fallback\r\n                    window.track_event('ad_view', {});\r\n                    \/\/ Track Facebook Pixel ViewContent event\r\n                    fbq('track', 'ViewContent');\r\n                    \r\n                    \/\/ Log terms and their positions if available\r\n                    if (callbackOptions && callbackOptions.termPositions) {\r\n                        console.log('Related Search Terms:', Object.keys(callbackOptions.termPositions));\r\n                        console.log('Term Positions:', callbackOptions.termPositions);\r\n                    }\r\n                    \r\n                    \/\/ Log container dimensions for debugging layout issues\r\n                    const rect = container.getBoundingClientRect();\r\n                    debugLog('LAYOUT', 'Container dimensions', {\r\n                        width: rect.width,\r\n                        height: rect.height,\r\n                        visible: rect.height > 0\r\n                    });\r\n                } else {\r\n                    debugLog('WARNING', 'No related searches available');\r\n                    container.style.display = 'none';\r\n                    \/\/ Remove legacy tracking call\r\n                    \/\/ window.trackEvent('noresult');\r\n                    \/\/ Debug tracking state before sending event\r\n                    try {\r\n                        const eventSessionData = sessionStorage.getItem('ctrkr_click_data');\r\n                        let eventParsedData = null;\r\n                        try { eventParsedData = eventSessionData ? JSON.parse(eventSessionData) : null; } catch(e) {}\r\n                        \r\n                        debugLog('TRACKING_EVENT', 'State before no_result event', {\r\n                            hasSessionData: !!eventSessionData,\r\n                            clickId: eventParsedData?.clickId,\r\n                            params: eventParsedData?.adParams\r\n                        });\r\n                    } catch (e) {\r\n                        debugLog('TRACKING_ERROR', 'Error checking session before event', e);\r\n                    }\r\n                    \r\n                    \/\/ Send tracking event using new API with parameters as fallback\r\n                    window.track_event('rsoc_not_monetized', {});\r\n                    \r\n                    \/\/ Log possible reasons for no results\r\n                    debugLog('DEBUG', 'Checking possible issues', {\r\n                        url: window.location.href,\r\n                        containerExists: !!container,\r\n                        containerVisible: container.offsetParent !== null,\r\n                        pageContent: document.body.textContent.length\r\n                    });\r\n                }\r\n            } catch (error) {\r\n                debugLog('ERROR', 'Error in callback', {\r\n                    message: error.message,\r\n                    stack: error.stack\r\n                });\r\n            }\r\n        }\r\n    };\r\n\r\n    \/\/ Configuration for the related searches containers\r\n    const rsblock1 = {\r\n        \/\/ Required Parameters\r\n        \"container\": \"relatedsearches1\",\r\n        \"width\": 700,\r\n        \r\n        \/\/ Optional Parameters\r\n        \"relatedSearches\": 6,\r\n        \r\n        \/\/ Reference to the callback in pageOptions\r\n        \"adLoadedCallback\": pageOptions.adLoadedCallback\r\n    };\r\n\r\n    const rsblock2 = {\r\n        \/\/ Required Parameters\r\n        \"container\": \"relatedsearches2\",\r\n        \"width\": 700,\r\n        \r\n        \/\/ Optional Parameters\r\n        \"relatedSearches\": 6,\r\n        \r\n        \/\/ Reference to the callback in pageOptions\r\n        \"adLoadedCallback\": pageOptions.adLoadedCallback\r\n    };\r\n\r\n    \/\/ --- Ad Initialization Logic ---\r\n\r\n    let adsInitialized = false;\r\n    const AD_INIT_TIMEOUT = 2500; \/\/ Timeout in milliseconds (e.g., 2.5 seconds)\r\n    let initTimeoutId = null;\r\n\r\n    \/\/ Function to inject skeleton overlay SYNCHRONOUSLY\r\n    function injectSkeletonOverlay(containerId) {\r\n        const container = document.getElementById(containerId);\r\n        if (container) {\r\n            if (!container.querySelector('.skeleton-overlay')) {\r\n                const overlay = document.createElement('div');\r\n                overlay.className = 'skeleton-overlay skeleton-visible';\r\n                container.appendChild(overlay);\r\n                debugLog('SKELETON', `Injected overlay into ${containerId}`);\r\n            } else {\r\n                debugLog('SKELETON', `Overlay already exists in ${containerId}`);\r\n            }\r\n        } else {\r\n            debugLog('WARNING', `Container ${containerId} not found for overlay injection.`);\r\n        }\r\n    }\r\n\r\n    \/\/ Function to hide skeletons if initialization fails\r\n    function hideSkeletonsOnError() {\r\n        ['relatedsearches1', 'relatedsearches2'].forEach(containerId => {\r\n            const container = document.getElementById(containerId);\r\n            const overlay = container?.querySelector('.skeleton-overlay.skeleton-visible');\r\n            if (overlay) {\r\n                overlay.classList.remove('skeleton-visible');\r\n                \/\/ Optionally remove after fade, but maybe just hide on error\r\n                debugLog('SKELETON', `Hiding overlay in ${containerId} due to init error.`);\r\n            }\r\n            \/\/ Also hide the main container if ads fail to load\r\n            if(container) container.style.display = 'none';\r\n        });\r\n    }\r\n\r\n    \/\/ Main function to initialize Google CSA ads\r\n    function initializeGoogleAds() {\r\n        if (adsInitialized) return; \/\/ Prevent double initialization\r\n        adsInitialized = true;\r\n        clearTimeout(initTimeoutId); \/\/ Clear the timeout if event fired\r\n        debugLog('ADS_INIT', 'Proceeding with _googCsa initialization.');\r\n\r\n        injectSkeletonOverlay('relatedsearches1');\r\n        injectSkeletonOverlay('relatedsearches2');\r\n\r\n        \/\/ Re-evaluate tracking params based on the final state from event-tracker.js\r\n        const trackerState = window._trackerInternalState || {};\r\n        const finalCid = trackerState.clickId || getUrlParameter('cid', ''); \/\/ Use state's CID or fallback to original URL param\r\n        \/\/ Note: Tracking domain (td) is primarily used by event-tracker, but include if needed for URL construction\r\n        const finalTd = (trackerState.trackingMethod === 'redirect' ? trackerState.domain : null) || getUrlParameter('td', ''); \/\/ Get TD if redirect, else fallback\r\n        \r\n        \/\/ Tracking IDs already set at the beginning of script\r\n\r\n        \/\/ Re-construct the results URL using the potentially updated CID\/TD\r\n        pageOptions.resultsPageBaseUrl = BASE_RESULTS_URL;\r\n        debugLog('ADS_INIT', 'Final resultsPageBaseUrl:', { url: pageOptions.resultsPageBaseUrl });\r\n\r\n        \/\/ Add referrerAdCreative only if urlAdTitle has a value (moved here to be part of final options)\r\n        if (urlAdTitle) {\r\n            pageOptions.referrerAdCreative = urlAdTitle;\r\n            debugLog('INFO', 'referrerAdCreative parameter included in configuration', { referrerAdCreative: urlAdTitle });\r\n        } else {\r\n            delete pageOptions.referrerAdCreative;\r\n            debugLog('INFO', 'No referrerAdCreative parameter provided, removed from configuration');\r\n        }\r\n\r\n        \/\/ Add terms if provided (moved here)\r\n        if (urlTerms) {\r\n            pageOptions.terms = urlTerms;\r\n        }\r\n\r\n        \/\/ Update ignoredPageParams (moved here)\r\n        pageOptions.ignoredPageParams = Array.from(new URLSearchParams(location.search).keys()).join(', ');\r\n\r\n        \/\/ Debug log all parameters before initialization\r\n        debugLog('PARAMS', 'Page Options Configuration:', {\r\n            \/\/ Required Parameters\r\n            pubId: pageOptions.pubId,\r\n            styleId: pageOptions.styleId,\r\n            relatedSearchTargeting: pageOptions.relatedSearchTargeting,\r\n            resultsPageBaseUrl: pageOptions.resultsPageBaseUrl,\r\n            resultsPageQueryParam: pageOptions.resultsPageQueryParam,\r\n            referrerAdCreative: pageOptions.referrerAdCreative,\r\n            \r\n            \/\/ Optional Parameters\r\n            terms: pageOptions.terms || '(not set)',\r\n            maxTermLength: pageOptions.maxTermLength,\r\n            linkTarget: pageOptions.linkTarget,\r\n            \r\n            \/\/ Safety and Filtering\r\n            adsafe: pageOptions.adsafe,\r\n            adtest: pageOptions.adtest,\r\n            ivt: pageOptions.ivt,\r\n            \r\n            \/\/ Language and Encoding\r\n            hl: pageOptions.hl,\r\n            \r\n            \/\/ Tracking and Analytics\r\n            channel: pageOptions.channel,\r\n            \r\n            \/\/ Container Configurations\r\n            containerSettings: {\r\n                block1: {\r\n                    container: rsblock1.container,\r\n                    width: rsblock1.width,\r\n                    relatedSearches: rsblock1.relatedSearches\r\n                },\r\n                block2: {\r\n                    container: rsblock2.container,\r\n                    width: rsblock2.width,\r\n                    relatedSearches: rsblock2.relatedSearches\r\n                }\r\n            }\r\n        });\r\n\r\n        \/\/ --- Call Google CSA ---\r\n        try {\r\n            verifyScriptLoading(); \/\/ Verify dependent scripts\r\n            validateConfig(pageOptions); \/\/ Validate final config\r\n\r\n            \/\/ Log the final pageOptions before initialization\r\n            console.log('[DEBUG] Final pageOptions just before _googCsa:', JSON.stringify(pageOptions, null, 2));\r\n\r\n            _googCsa('relatedsearch', pageOptions, rsblock1, rsblock2);\r\n            debugLog('ADS_INIT', '_googCsa called successfully.');\r\n\r\n        } catch (error) {\r\n            console.error('[ERROR] Google CSA Initialization Failed!', error);\r\n            debugLog('ERROR', 'Google CSA Initialization failed', {\r\n                message: error.message,\r\n                stack: error.stack\r\n            });\r\n            \/\/ Hide skeletons and containers on error\r\n            hideSkeletonsOnError();\r\n        }\r\n    }\r\n\r\n    \/\/ --- Event Listener and Timeout --- \r\n\r\n    \/\/ Check if tracker is already ready *before* setting up listener\/timeout\r\n    if (window._trackerInternalState?.ready) {\r\n        debugLog('ADS_INIT', 'Tracker was already ready. Initializing ads immediately.');\r\n        initializeGoogleAds();\r\n    } else {\r\n        debugLog('ADS_INIT', 'Tracker not ready yet. Setting up listener and timeout.');\r\n\r\n        \/\/ Listener for the tracker signal\r\n        const trackerListener = (event) => {\r\n            debugLog('ADS_INIT', 'Received trackerInitialized event', event.detail);\r\n            window.removeEventListener('trackerInitialized', trackerListener); \/\/ Clean up listener\r\n            initializeGoogleAds();\r\n        };\r\n        window.addEventListener('trackerInitialized', trackerListener);\r\n\r\n        \/\/ Timeout fallback: Initialize ads if the tracker event doesn't arrive promptly\r\n        initTimeoutId = setTimeout(() => {\r\n            debugLog('ADS_INIT', `Timeout waiting for trackerInitialized event after ${AD_INIT_TIMEOUT}ms. Proceeding.`);\r\n            window.removeEventListener('trackerInitialized', trackerListener); \/\/ Clean up listener if timeout fires first\r\n            initializeGoogleAds();\r\n        }, AD_INIT_TIMEOUT);\r\n    }\r\n\r\n    \/\/ Add script loading verification\r\n    function verifyScriptLoading() {\r\n        debugLog('SCRIPT', 'Entering verifyScriptLoading');\r\n        debugLog('SCRIPT', 'Checking script loading status', {\r\n            adsScriptLoaded: !!document.querySelector('script[src*=\"ads.js\"]'),\r\n            googCsaAvailable: typeof _googCsa === 'function'\r\n        });\r\n        debugLog('SCRIPT', 'Exiting verifyScriptLoading');\r\n    }\r\n\r\n    \/\/ --- Modify constructUrlWithTracking to accept parameters --- \r\n    \/\/ (Keep the original getTrackingParams for initial values if needed elsewhere, or remove if redundant)\r\n    function constructUrlWithTracking(baseUrl, cid, td, styleid, channel) {\r\n        try {\r\n            const url = new URL(baseUrl);\r\n            \/\/ Add parameters if they exist\r\n            if (td) url.searchParams.set('td', td);\r\n            if (cid) url.searchParams.set('cid', cid);\r\n            if (styleid) url.searchParams.set('styleid', styleid);\r\n            if (channel) url.searchParams.set('channel', channel);\r\n            return url.toString();\r\n        } catch (error) {\r\n            debugLog('ERROR', 'Failed to construct results page URL with tracking parameters', {\r\n                baseUrl,\r\n                error: error.message\r\n            });\r\n            return baseUrl;\r\n        }\r\n    }\r\n\r\n<\/script>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The website is outdated.<\/strong> It's functional, but the design looks like it was built over a decade ago. Product pages can be cluttered, and filtering through options isn't intuitive. You'll need to know what you're looking for before you start shopping.<\/li>\n<li><strong>Limited product selection.<\/strong> If you need anything beyond basic monitoring equipment (<a href=\"https:\/\/www.everyday-guide.com\/site\/7l1d\" title=\"www.concordhealthsupply.com\" class=\"pretty-link-keyword\"rel=\"nofollow sponsored \" target=\"_blank\">mobility aids<\/a>, wound care, bathroom safety, incontinence supplies), you'll need to shop elsewhere. This is a niche store, not a one-stop shop.<\/li>\n<li><strong>Slow customer service.<\/strong> Email response times can stretch to 2 to 3 business days. There's no live chat. Phone support exists but isn't always easy to reach. If you have an urgent issue, this can be frustrating.<\/li>\n<li><strong>No Medicare\/insurance billing.<\/strong> Concord is a direct-to-consumer retailer. They don't bill insurance or Medicare. You pay out of pocket and can submit receipts to your insurer for potential reimbursement, but that's on you to handle.<\/li>\n<li><strong>Product information can be sparse.<\/strong> Some listings lack detailed specs, comparison charts, or enough photos. If you're not already familiar with the products, you might need to research elsewhere and then come back to buy.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Who Should (And Shouldn't) Shop at Concord Health Supply<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Shop Here If:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You want a pulse oximeter from a reputable brand with an authorized dealer guarantee<\/li>\n<li>You already know what product you need and want a good price with free shipping<\/li>\n<li>You're stocking up on CPAP replacement supplies (masks, tubing, filters)<\/li>\n<li>You want a budget oximeter for casual home use and don't want to gamble on Amazon quality<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Shop Elsewhere If:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You need a wide range of <a href=\"https:\/\/www.everyday-guide.com\/site\/7l1d\" title=\"www.concordhealthsupply.com\" class=\"pretty-link-keyword\"rel=\"nofollow sponsored \" target=\"_blank\">medical supplies<\/a> beyond monitoring devices<\/li>\n<li>You need insurance or Medicare billing<\/li>\n<li>You need the product urgently (within 1 to 2 days)<\/li>\n<li>You want extensive product guidance, live chat support, or hand-holding through the buying process<\/li>\n<li>You're looking for the cheapest possible option and don't care about authorized dealer status<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">The Bottom Line<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.everyday-guide.com\/site\/7l1d\" title=\"www.concordhealthsupply.com\" class=\"pretty-link-keyword\"rel=\"nofollow sponsored \" target=\"_blank\">Concord Health Supply<\/a> isn't glamorous. The website won't win any design awards, the product catalog is narrow, and customer service could be faster. But they do one thing really well: they sell legitimate, authorized medical monitoring equipment at competitive prices with free shipping.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you need a pulse oximeter, blood pressure monitor, or basic home health equipment and you want to know that what you're getting is the real deal, Concord is a solid choice. The authorized dealer guarantee removes the guesswork that comes with buying medical devices from random marketplace sellers. And for premium brands like Nonin and Masimo, their prices are consistently among the lowest you'll find from an authorized source.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>For anyone buying a medical device they'll actually rely on for health decisions, <a href=\"https:\/\/www.everyday-guide.com\/site\/7l1d\" title=\"www.concordhealthsupply.com\" class=\"pretty-link-keyword\"rel=\"nofollow sponsored \" target=\"_blank\">Concord Health Supply<\/a>'s combination of competitive pricing and authorized dealer status makes it one of the smarter places to shop. Just don't expect Amazon-speed shipping or a pretty website.<\/strong><\/p>\n      <div class=\"prli-link-to-disclosures\">\n        <a href=\"https:\/\/www.everyday-guide.com\/site\/disclaimer\/\">(*)This post contains affiliate links. If you use these links to buy something we may earn a commission. Thanks.<\/a>\n      <\/div>\n      ","protected":false},"excerpt":{"rendered":"<p>Concord Health Supply is a small online retailer that specializes in pulse oximeters and basic home health monitoring equipment at prices that undercut big-box [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":40240,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[105,3],"tags":[],"class_list":["post-39762","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-buying-guide","category-health"],"_links":{"self":[{"href":"https:\/\/www.everyday-guide.com\/site\/wp-json\/wp\/v2\/posts\/39762","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.everyday-guide.com\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.everyday-guide.com\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.everyday-guide.com\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.everyday-guide.com\/site\/wp-json\/wp\/v2\/comments?post=39762"}],"version-history":[{"count":0,"href":"https:\/\/www.everyday-guide.com\/site\/wp-json\/wp\/v2\/posts\/39762\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.everyday-guide.com\/site\/wp-json\/wp\/v2\/media\/40240"}],"wp:attachment":[{"href":"https:\/\/www.everyday-guide.com\/site\/wp-json\/wp\/v2\/media?parent=39762"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.everyday-guide.com\/site\/wp-json\/wp\/v2\/categories?post=39762"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.everyday-guide.com\/site\/wp-json\/wp\/v2\/tags?post=39762"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}