Примечание. Я замаскировал данные в целях конфиденциальности.
У меня есть ответ API, который дает мне следующую информацию: Кроме того, ответ API является динамическим c, поэтому в зависимости от требований бизнеса я получаю 2 или 20 объявлений. информация о слоте.
{
"googletags":[
{
"networkId":"xyz",
"targetedAdUnit":"Test_Offers_1",
"adSlotCreativeSize":[
[
336,
280
],
[
320,
100
]
],
"divGPTId":"div-gpt-ad-1"
},
{
"networkId":"xyz",
"targetedAdUnit":"Test_Offers_2",
"adSlotCreativeSize":[
[
336,
280
],
[
320,
100
]
],
"divGPTId":"div-gpt-ad-2"
}
.
.
.
.
.
.
.
.
{
"networkId":"xyz",
"targetedAdUnit":"Test_Offers_n",
"adSlotCreativeSize":[
[
336,
280
],
[
320,
100
]
],
"divGPTId":"div-gpt-ad-n"
}
]
}
Я использую этот ответ и определяю слот во время выполнения.
javascript код:
window.googletag = window.googletag || { cmd: [] };
function googleTags(url, cFunction) {
const xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
cFunction(this);
}
};
xhttp.open('GET', url, true);
xhttp.send();
}
function pushGTMtags(xhttp) {
const tags = JSON.parse(xhttp.responseText)['googletags'];
window.googletag.cmd.push(function () {
for (let i = 0; i < tags.length; i++) {
const str = `/${tags[i].networkId}/${tags[i].targetedAdUnit}`;
const adSlotCreativeSize = tags[i].adSlotCreativeSize;
const divGPTId = tags[i].divGPTId;
window.googletag
.defineSlot(
str,
adSlotCreativeSize,
divGPTId
)
.addService(window.googletag.pubads());
}
window.googletag.pubads().enableSingleRequest();
window.googletag.pubads().collapseEmptyDivs();
window.googletag.enableServices();
});
}
googleTags('apiUrl', pushGTMtags);
HTML: Подумайте об этом HTML как динамически изменяющийся с divGPTId. Ниже приведен только один пример. Я использую div, основанный на API response.length.
<div class="slot " id="div-gpt-ad-0">
<script>
googletag.cmd.push(function () {
googletag.display('div-gpt-ad-0');
});
</script>
</div>
После выполнения приведенного выше кода с реальными подробностями я не вижу ошибки кода в консоли браузера. Кроме того, я не могу видеть рекламу на странице. Я что-то пропустил?
Я попытался отладить в браузере, я не получаю никакой ошибки.