FIX: handle no ad size given for AdSense and DFP ad units

For AdSense, assume responsive size.
For DFP, don't attempt to render the ad unit.
This commit is contained in:
Neil Lalonde 2019-09-10 17:01:01 -04:00
parent 2ad24e4a60
commit 62888e734f
2 changed files with 23 additions and 6 deletions

View File

@ -14,14 +14,24 @@ function parseAdWidth(value) {
if (value === "responsive") {
return "auto";
}
return `${parseInt(value.substring(0, 3).trim())}px`;
const w = parseInt(value.substring(0, 3).trim());
if (isNaN(w)) {
return "auto";
} else {
return `${w}px`;
}
}
function parseAdHeight(value) {
if (value === "responsive") {
return "auto";
}
return `${parseInt(value.substring(4, 7).trim())}px`;
const h = parseInt(value.substring(4, 7).trim());
if (isNaN(h)) {
return "auto";
} else {
return `${h}px`;
}
}
function loadAdsense() {

View File

@ -126,10 +126,14 @@ function getWidthAndHeight(placement, settings, isMobile) {
renderCounts[placement] += 1;
}
return {
const sizeObj = {
width: parseInt(splitWidthInt(size)),
height: parseInt(splitHeightInt(size))
};
if (!isNaN(sizeObj.width) && !isNaN(sizeObj.height)) {
return sizeObj;
}
}
function defineSlot(
@ -290,21 +294,24 @@ export default AdComponent.extend({
"showToTrustLevel",
"showToGroups",
"showAfterPost",
"showOnCurrentPage"
"showOnCurrentPage",
"size"
)
showAd(
publisherId,
showToTrustLevel,
showToGroups,
showAfterPost,
showOnCurrentPage
showOnCurrentPage,
size
) {
return (
publisherId &&
showToTrustLevel &&
showToGroups &&
showAfterPost &&
showOnCurrentPage
showOnCurrentPage &&
size
);
},