В этой статье я покажу, как реализовать DFP в различных интерфейсных фреймворках, включая React.js, Vue.js и AMP.
Вы можете найти все примеры здесь.
Что такое DFP (DoubleClick for Publishers)?
DFP - это рекламная платформа, приобретенная Google в 2007 году.
Если у вас есть веб-сайт и вы хотите разместить рекламу, чтобы заработать деньги, вы можете использовать Google AdSense. Но если вы хотите продавать рекламу самостоятельно, DFP - мощный инструмент, который поможет вам управлять рекламой.
Как использовать DFP для управления рекламой на вашем сайте?
Во-первых, вам нужно создать рекламные блоки в консоли DFP (рекламный менеджер). и установите именно то место, где вы хотите показывать рекламу на своем веб-сайте.
Затем вы можете создать заказ объявлений для своего клиента в admanager и указать рекламный блок, в котором вы хотите отображать заказ. DFP автоматически отобразит созданный вами материал на основе заказа в зависимости от позиции рекламного блока.
В admanager есть множество настроек, которые помогут вам контролировать свою рекламу. Вы можете определить период отображения, максимальное количество показов и кликов, а также частоту для каждого отдельного пользователя (например, показывать только два раза в неделю) и т. Д.
В этой статье я остановлюсь на том, как интегрировать рекламный блок на ваш сайт. Если вы не знакомы с тем, как использовать admanager для создания рекламного блока и заказа рекламы, вы можете проверить официальный документ здесь.
Реализуйте DFP с помощью ванильного JavaScript.
[Пример]
Как и в Google Analytics, мы можем сгенерировать скрипт в консоли DFP:
1. перейти к инвентарю ›Рекламные блоки› Выберите рекламный блок
2. Нажмите СОЗДАТЬ ТЭГИ
Скрипты, включающие три шага, перечислены ниже:
- загрузить скрипт gpt (Google Publisher Tag)
<script async="async" src="https://www.googletagservices.com/tag/js/gpt.js"></script>
2. определить рекламное место
<script> var googletag = googletag || {}; googletag.cmd = googletag.cmd || []; </script> <script> googletag.cmd.push(function() { googletag.defineSlot( '/21737763597/adunit-1', [320, 100], 'div-gpt-ad-1559997122392–0', ).addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); }); </script>
3. отображать рекламный элемент и медийную рекламу.
<div id="div-gpt-ad-1559997122392–0" style="height:100px; width:320px;" > <script> googletag.cmd.push(function() { googletag.display('div-gpt-ad-1559997122392–0'); }); </script> </div>
React.js (хук)
["пример"]
Используя DFP в React, просто выполните три шага, как указано выше: загрузите скрипт gpt, определите рекламное место, обработайте элемент объявления и покажите рекламу.
Здесь мы используем перехватчик React для реализации DFP. Если вы не знакомы с хуком, вы можете проверить документ здесь.
- загрузить скрипт gpt
@public/index.html <script async="async" src="https://www.googletagservices.com/tag/js/gpt.js" ></script>
2. Создайте настраиваемую ловушку для определения и отображения рекламного места.
@src/useDfpSlot.js const useDfpSlot = ({ path, size, id }) => { useEffect(() => { const googletag = window.googletag || {}; googletag.cmd = googletag.cmd || []; googletag.cmd.push(function() { googletag.defineSlot(path, size, id) .addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.enableServices(); }); googletag.cmd.push(function() { googletag.display(id); }); }, [path, size, id]); };
3. отображать рекламный элемент.
@src/App.js const App = () => { useDfpSlot({ path: '/21737763597/adunit-1', size: [320, 100], id: 'div-gpt-ad-1559997122392–0', }); return ( <div id="div-gpt-ad-1559997122392–0" style={{ width: '320px', height: '100px' }} /> ) };
Vue.js
["пример"]
Поскольку у нас еще нет хуков в Vue.js, поэтому здесь мы используем хуки жизненного цикла компонентов для обработки DFP.
- загрузить скрипт gpt
@public/index.html <script async="async" src="https://www.googletagservices.com/tag/js/gpt.js" ></script> <script type="text/javascript"> window.googletag = window.googletag || {}; window.googletag.cmd = window.googletag.cmd || []; </script>
2. отобразить рекламный элемент, определить и отобразить рекламное место в установленном крючке.
PS. destroySlots в обработчике beforeCreate для предотвращения дублирования adUnit во время горячей перезагрузки
@src/components/DfpSlot.vue <template> <div :id="id"></div> </template> <script> export default { name: 'DfpSlot', props: { size: Array, path: String, id: String }, beforeCreate() { window.googletag.cmd.push(() => { window.googletag.destroySlots(); }); }, mounted() { const { path, size, id } = this; window.googletag.cmd.push(() => { window.googletag.defineSlot(path, size, id) .addService(window.googletag.pubads()); window.googletag.pubads().enableSingleRequest(); window.googletag.enableServices(); window.googletag.display(id); }); }, }; </script>
3. примените компонент DfpSlot
<dfp-slot path="/21737763597/adunit-1" :size="[320, 100]" id="div-gpt-ad-1559997122392–0" />
AMP
["пример"]
Внедрить DFP в AMP довольно просто, просто используйте amp-ad, как показано ниже:
- импортировать компонент amp-ad
<script async custom-element="amp-ad" src="https://cdn.ampproject.org/v0/amp-ad-0.1.js"></script>
2. добавить рекламный элемент
<amp-ad width="320" height="100" type="doubleclick" data-slot="/21737763597/adunit-1" ></amp-ad>
Но некоторые форматы DFP не поддерживаются в AMP.
- Межстраничные объявления
- Вспышка
- Креативы обслуживаются по HTTP.
GPT API
Вот API GPT, который мы использовали в наших примерах. Для получения дополнительной информации ознакомьтесь с документом.
- googletag.cmd | Ссылка на глобальную очередь команд для асинхронного выполнения вызовов, связанных с GPT.
- googletag.defineSlot (путь, размер, [div]) | Создает рекламное место с заданным путем и размером рекламного блока и связывает его с идентификатором элемента div на странице, которая будет содержать объявление.
- googletag.enableServices () | Включает все службы GPT, определенные для рекламных мест на странице.
- googletag.pubads () | Возвращает ссылку на службу pubads.
- googletag.display (divOrSlot) | Дает указание сервисам слотов визуализировать слот.
- googletag.destroySlots ([слоты]) | Уничтожает указанные слоты, удаляя все связанные объекты и ссылки на эти слоты из GPT.
Вывод
DFP - это мощная платформа для управления рекламой на вашем веб-сайте, которую легко интегрировать со всеми современными интерфейсными фреймворками. Но консоли DFP (admanager) может потребоваться время, чтобы ознакомиться со всеми сложными настройками.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять свои комментарии.
Спасибо за чтение.
—
Ссылка
- Что такое DFP: https://www.quora.com/What-is-DFP
- admanager: https://admanager.google.com
- элемент в admanager: https://support.google.com/admanager/answer/6012282
- Как избежать распространенных ошибок: https://developers.google.com/doubleclick-gpt/common_implementation_mistakes)
- GPT API: https://developers.google.com/doubleclick-gpt/reference
- amp-ad doubleclick: https://github.com/ampproject/amphtml/blob/master/extensions/amp-ad-network-doubleclick-impl/amp-ad-network-doubleclick-impl-internal.md
- Тег издателя Google для DFP в одностраничном приложении Vue.js: https://blog.jordinebot.me/posts/google-publisher-tag-dfp-vue-js-spa