This is a skincare must have!
Being in my early 30s the thing I look for most in a good serum is how hydrated it makes my skin look and feel.
If it makes my skin more firm and blurs the fine lines too, that is also a plus.
I’ve tried a lot of different skin care products that I’ve heard people rave about and some have been worth the hype, while others haven’t.
One product that I started using last month that I will absolutely be buying again though is the Ole Henriksen Banana Bright Vitamin C serum because honestly, it’s Botox in a bottle.
The Ole Henriksen Banana Bright serum has all the good stuff in it including 15 per cent Vitamin C, five per cent PHAs and hyaluronic acid.
It smells really fruity and refreshing so I usually use it first time in the morning as it’s just one of those scents that makes you feel more awake.
One thing you’ll notice if you decide to give the Banana Bright serum a try is how quickly you can feel it start to firm your skin.
It just instantly makes your skin feel tighter and more lifted, while also giving your skin a dewy glow.
I’ve been using it for over a month now and while I used to rush for my concealer almost everyday to get rid of redness or under eye circles, I’ve noticed a huge improvement in the quality of my skin.
Given that I’ve been in lockdown homeschooling for the better part of a year at this stage I’d say my face is looking pretty fresh and awake (even if I’m not feeling very awake).
The Banana Bright serum is quite a rich and creamy consistency and personally I think it’s probably going to be too heavy if you’re in your early 20s, but for late 20s and upwards this is definitely a must have.
I haven’t found any other serum that has given my skin the same glow as this.
Boots currently stock it for €69 and while it’s not cheap it really works and to be honest a really good skin product is always a good investment.
var host="www.her.ie"; var element = document.createElement('script'); var firstScript = document.getElementsByTagName('script')[0]; var url="https://quantcast.mgr.consensu.org" .concat('/choice/', 'wFs6Tqd6-pgRC', '/', host, '/choice.js') var uspTries = 0; var uspTriesLimit = 3; element.async = true; element.type="text/javascript"; element.src = url;
firstScript.parentNode.insertBefore(element, firstScript);
function makeStub() { var TCF_LOCATOR_NAME = '__tcfapiLocator'; var queue = []; var win = window; var cmpFrame;
function addFrame() var doc = win.document; var otherCMP = !!(win.frames[TCF_LOCATOR_NAME]);
if (!otherCMP) if (doc.body) var iframe = doc.createElement('iframe');
iframe.style.cssText="display:none"; iframe.name = TCF_LOCATOR_NAME; doc.body.appendChild(iframe); else setTimeout(addFrame, 5);
return !otherCMP;
function tcfAPIHandler() var gdprApplies; var args = arguments;
if (!args.length) return queue; else if (args[0] === 'setGdprApplies') if ( args.length > 3 && args[2] === 2 && typeof args[3] === 'boolean' ) gdprApplies = args[3]; if (typeof args[2] === 'function') args[2]('set', true);
else if (args[0] === 'ping') var retr = gdprApplies: gdprApplies, cmpLoaded: false, cmpStatus: 'stub' ;
if (typeof args[2] === 'function') args[2](retr);
else queue.push(args);
function postMessageEventHandler(event) { var msgIsString = typeof event.data === 'string'; var json = ;
try if (msgIsString) json = JSON.parse(event.data); else json = event.data;
catch (ignore)
var payload = json.__tcfapiCall;
if (payload) window.__tcfapi( payload.command, payload.version, function(retValue, success) var returnMsg = __tcfapiReturn: returnValue: retValue, success: success, callId: payload.callId
; if (msgIsString) returnMsg = JSON.stringify(returnMsg);
event.source.postMessage(returnMsg, '*'); , payload.parameter );
}
while (win) try if (win.frames[TCF_LOCATOR_NAME]) cmpFrame = win; break;
catch (ignore)
if (win === window.top) break;
win = win.parent;
if (!cmpFrame) addFrame(); win.__tcfapi = tcfAPIHandler; win.addEventListener('message', postMessageEventHandler, false);
};
makeStub();
var uspStubFunction = function() var arg = arguments; if (typeof window.__uspapi !== uspStubFunction) setTimeout(function() if (typeof window.__uspapi !== 'undefined') window.__uspapi.apply(window.__uspapi, arg);
, 500);
;
var checkIfUspIsReady = function()
uspTries++;
if (window.__uspapi === uspStubFunction && uspTries < uspTriesLimit)
console.warn('USP is not accessible');
else
clearInterval(uspInterval);
;
if (typeof window.__uspapi === 'undefined')
window.__uspapi = uspStubFunction;
var uspInterval = setInterval(checkIfUspIsReady, 6000);
// This callback is triggered on each page load
__tcfapi('addEventListener', 0, function(tcData, success) );
function processCmpData(tcData)
// Flag that CMP has been processed.
consentManager.cmpProcessed = true;
// Permutive disabling needed?
if (tcData.purpose.consents[1] && tcData.purpose.consents[3])
consentManager.permutive.isAllowed = true;
if (consentManager.isAllowed('permutive'))
window.localStorage.removeItem('permutive-opt-out');
else
window.localStorage.setItem('permutive-opt-out', 'true');
consentManager.setUserConsent(tcData);
// Consent String is needed as DFP target
consentManager.setConsentString(tcData.tcString);
consentManager.trackPublisherConsentLevel(tcData.publisher.consents);
consentManager.trackVendorConsentLevel(tcData.vendor.consents);
/**
* According to Google policies, if Publisher Purpose 1 is revoked, we should not display ads at all
* Check https://support.google.com/admanager/answer/9805023?hl=en for more information
* Here we update the flag that points if ads should be rederer or not.
*/
consentManager.hideAds(tcData.purpose.consents[1]);
// Posts tagged as sensitive shouldn't be showing any ads. Since we have a way to control ads viewability through
// the consent manager, it's easy to check for the posts tags and flagged if they should shown or not.
// According to Google policies, if Publisher Purpose 1 is revoked, we should not display ads at all
// Check https://support.google.com/admanager/answer/9805023?hl=en for more information
if (consentManager.hasBeenProcessed() && consentManager.displayAds)
consentManager.renderAds();
// If consent was processed once the page was loaded, there are some ads that may not appear. Let's run prebid again.
if (typeof executeParallelAuctionAlongsidePrebid !== 'undefined' && !consentManager.prebidProcessed && consentManager.displayAds)
executeParallelAuctionAlongsidePrebid()
// If consent was processed once the page was loaded, there are some ads that may not appear. Let's run prebid again.
if (typeof fetchHeaderBids !== 'undefined' && !consentManager.joeUkPrebidProcessed && consentManager.displayAds)
fetchHeaderBids(apstagSlots);
// Facebook and Twitter are non IAB vendors, so we need to check their consents using a different callback
__tcfapi('getNonIABVendorConsents', 0, function(consent, success)
if (success && consent.gdprApplies)
consentManager.setUserNonIabConsent(consent);
)
if (!consentManager.sentEventFbPixel && consentManager.isAllowed('facebook'))
!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','//connect.facebook.net/en_US/fbevents.js');
fbq('init', '1021712967898776');
fbq('track', "PageView");
fbq('track', 'ViewContent');
consentManager.sentEventFbPixel = true;
Source link