从iFrame小组件跟踪Adwords转化次数

时间:2015-11-19 02:46:24

标签: javascript iframe google-adwords google-tag-manager

网站

Saritias

情况

我的客户希望跟踪Google Adwords转化次数。当客户点击广告,到达网站然后使用第三方预订窗口小部件(ResDiary)预订桌面时,即可进行转换。

问题

小部件位于iframe中,据我了解,这意味着插入小部件的代码管理器代码无法在父窗口中看到Google设置的与Adwords相关的Cookie。

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:1)

我的解决方案

我在跟踪代码管理器中创建了2个帐户。

  1. 主站点
  2. 一个用于小部件网站
  3. 小组件网站包含一个自定义HTML标记,用于将事件发送到父iframe:

    
    
    <script>
    var topOrigin = 'http://www.saritas.com.au';
    if (window.postMessage) {
      window.parent.postMessage('confirmation', topOrigin);
    }
    </script>
    &#13;
    &#13;
    &#13;

    我将触发器设置为在窗口小部件中的所需确认页面上触发。

    对于主站点,我再次使用了一个自定义HTML标记,其中包含一个使用Google Async Conversion Library的事件监听器,并在触发监听器时触发事件。

    &#13;
    &#13;
    <script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion_async.js" charset="utf-8"></script>
    
    <script>
          /* <![CDATA[ */
        var google_conversion_id = 952604500;
        var google_conversion_language = "en";
        var google_conversion_format = "3";
        var google_conversion_color = "ffffff";
        var google_conversion_label = "eMKnCNzU5F8Q1K6exgM";
        var google_remarketing_only = false;
        /* ]]> */
      
      function trackConv(google_conversion_id, google_conversion_label) {
            window.google_trackConversion({
    			google_conversion_id: google_conversion_id, 
    			google_remarketing_only: false
    		});
       }
      
    // Replace with your domain here.
    var allowedOrigins = ['https://widget-au.resdiary.com'];
    function xDomainHandler(event) {
      event = event || window.event;
      var origin = event.origin;
    
      // Check for the whitelist.
      var found = false;
      for (var i = 0; i < allowedOrigins.length; i++) {
        if (allowedOrigins[i] == origin) {
          found = true;
          break;
        }
      }
      if (!found) return;
    
      // Might be a different message.
      if (event.data != 'confirmation') return;
      trackConv(google_conversion_id, google_conversion_label);
    }
    if (window.addEventListener) {
      window.addEventListener('message', xDomainHandler, false);
    } else if (window.attachEvent) {
      window.attachEvent('onmessage', xDomainHandler);
    }
    
    </script>
    &#13;
    &#13;
    &#13;

    我将触发器设置为小部件显示的单个页面。