gpt4 book ai didi

reactjs - 如何在 gatsby 网站中实现 Google Ad Manager(又名 DFP)?

转载 作者:行者123 更新时间:2023-12-04 03:38:21 25 4
gpt4 key购买 nike

为了在 gastby.js 网站上转换 GAM/DFP 广告,我应该将这段代码放在头部:

<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
<script>
window.googletag = window.googletag || {cmd: []};
googletag.cmd.push(function() {
googletag.defineSlot('/22274312948/lm1_lb1', [728, 90], 'div-gpt-ad-1614985862735-0').addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});
</script>

正文中的这段代码,我想在其中展示广告:

<!-- /22274312948/lm1_lb1 -->
<div id='div-gpt-ad-1614985862735-0' style='width: 728px; height: 90px;'>
<script>
googletag.cmd.push(function() { googletag.display('div-gpt-ad-1614985862735-0'); });
</script>
</div>

我的 gatsby 网站基于 MDX 文件,我想通过从 MDX 文件本身调用它们来在段落之间放置广告。

最佳答案

<head>脚本可以使用 <Helmet> 放置在任何 React(例如 Gatsby)应用程序中零件。基本上,它都被包裹在里面,它被放置在 <head> 中。你的应用程序。因此,在任何组件中,例如 <Layout>你可以:

import React from "react";
import {Helmet} from "react-helmet";

const Layout = ({ children }) => {
return <section>
<Helmet>
<script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
<script>
{`window.googletag = window.googletag || {cmd: []};
googletag.cmd.push(function() {
googletag.defineSlot('/22274312948/lm1_lb1', [728, 90], 'div-gpt-ad-1614985862735-0').addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();
});`}
</script>
</Helmet>
<Header />
<main>{children}</main>
</section>;
};

小心 dealing with global objects such as window or document in Gatsby在 React 的生命周期之外,它可能会导致水合作用问题和警告。因此,其中一些在 SSR 期间不可用(S-Side Rendering) 如果您可以使用 Gatsby 插件而不是手动添加脚本,我强烈建议这样做,例如,使用 gatsby-plugin-google-adsense ,简单地使用:

// In your gatsby-config.js
module.exports = {
plugins: [
{
resolve: `@isamrish/gatsby-plugin-google-adsense`,
options: {
googleAdClientId: "YOUR_GOOGLE_ADSENSE_TRACKING_ID",
head: false // Optional
}
}
]
};

关于您的 MDX 脚本,因为您的 MDX 文件允许您嵌入 JSX 逻辑(因此得名),您可以将它添加到任何您想要的地方:

import { Box, Heading, Text } from 'somewhere'

# Here is a JSX block

It is using imported components!

<Box>
<Heading>Here's a JSX block</Heading>
<Text>It's pretty neat</Text>
<YourScriptComponent />
</Box>

在你的YourScriptComponent.js你可以像任何其他组件一样添加你的脚本,比如:

const YourScriptComponent = () =>{

return <>
<!-- /22274312948/lm1_lb1 -->
<div id='div-gpt-ad-1614985862735-0' style='width: 728px; height: 90px;'>
<script>
googletag.cmd.push(function() { googletag.display('div-gpt-ad-1614985862735-0'); });
</script>
</div>
</>
}

为那些可能提供帮助的人更新问题并提供最终解决方案。上述解决方法显示了在 Gatsby/React 站点中添加 GAM 广告的路径。这个想法是使用 MDX 导入一个自定义组件,该组件加载一个包含广告本身的基于 promise 的组件/模块。像这样的东西:

---

import DFPWrapper from '../../../src/components/DFPWrapper';

This is the body of the markdown

<DFPWrapper />

在那里,您可以导入自己的或第三方的依赖项,例如 react-gpt 。 :

const DFPWrapper = props => {
return <>
<Helmet>
<script async src='https://securepubads.g.doubleclick.net/tag/js/gpt.js' />
<script>
{`window.googletag = window.googletag || { cmd: [] };
googletag.cmd.push(function() {
googletag.defineSlot('/22274312948/lm1_lb1', [728, 90], 'div-gpt-ad-1614985862735-0').addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();`}
</script>
</Helmet>
<div>
<GPT adUnitPath='/22274312948/lm1_lb1' slotSize={[728, 90]} />
</div>
</>
}

react-gpt 所需的信息存储在这一行中:

googletag.defineSlot('/22274312948/lm1_lb1', [728, 90], 'div-gpt-ad-1614985862735-0').addService(googletag.pubads());

关于reactjs - 如何在 gatsby 网站中实现 Google Ad Manager(又名 DFP)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66511859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com