首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用react-ga在ReactJS中注册转换为Google Adwords?

如何使用react-ga在ReactJS中注册转换为Google Adwords?
EN

Stack Overflow用户
提问于 2020-10-30 04:56:23
回答 1查看 801关注 0票数 1

我正在使用react-ga,并且工作得很好。我可以调用事件并跟踪页面。

但Google Adwords中的转换脚本略有不同:

代码语言:javascript
复制
<script>
function gtag_report_conversion(url) {
  var callback = function () {
    if (typeof(url) != 'undefined') {
      window.location = url;
    }
  };
  gtag('event', 'conversion', {
      'send_to': 'AW-XXXX/XXXX',
      'value': 140.0,
      'currency': 'BRL',
      'transaction_id': '',
      'event_callback': callback
  });
  return false;
}
</script>

使用React-GA,我可以像这样注册事件:

代码语言:javascript
复制
ReactGA.event({
      category: "User",
      action: "Click Whatsapp button",
      value: 1,
    });

问题是对象没有"send_to“、"event_callback”、"currency“、"transaction_id”属性。

所以我必须使用ga对象来做这件事(我想)。我不知道ga对象和Google Adwords告诉我使用的gtag对象之间是否有区别。

我尝试注册转换,但什么也没有发生:

代码语言:javascript
复制
 ReactGA.ga("event", "conversion", {
      send_to: "AW-XXXX/XXXX",
      value:  140.0,
      currency: "BRL",
      transaction_id: "",
 });
EN

回答 1

Stack Overflow用户

发布于 2020-10-30 07:33:18

在尝试了许多不同的方法之后,这才是真正解决这个问题的方法:

在public/index.html中添加标记,而不调用配置:

代码语言:javascript
复制
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-XXXXXXXX"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag() {
        dataLayer.push(arguments);
      }
      gtag('js', new Date());
    </script>

然后将此路由添加到所有路由之上和交换机组件之外:

代码语言:javascript
复制
       // This will be called every time the location change
       <Route
          path="/"
          render={({ location }) => {
            window.gtag('config', 'UA-XXXXXXXXX', {
              page_path: location.pathname + location.search,
            });
          }}
        />

现在,您可以在任何位置使用带有所有参数的gtag对象:

代码语言:javascript
复制
    window.gtag('event', 'purchase', {
      send_to: 'AW-XXXX/XXXX',
      value: order.orderTotal,
      currency: 'BRL',
      transaction_id: order.orderId,
      shipping: parseFloat(order.shipping.price),
      items: formatedItems,
    });.
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64599106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档