2016-01-28 31 views
0

我想使用sendBeacon API(傳輸"beacon": true)將分析數據發送到自定義URL。在查詢字符串中編碼的有效負載效果很好,但我想把它放到POST主體中。如何將帶有sendBeacon有效載荷的放大器分析用作POST?

我嘗試了PR #1162中建議的配置,但後來我意識到它沒有合併到amp-analytics中。有沒有在當前實現中配置它的方法?

+0

我看到[這裏](https://www.ampproject.org/docs/reference/extended/amp-analytics。 html),您可以使用[navigator.sendBeacon](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon)傳輸請求。這將發送一個POST請求,憑證和一個空的主體。這裏是語法:'navigator.sendBeacon(url,data);'。請注意,MDM網站聲明這是一項實驗性技術。 – abielita

回答

1

嘗試增加

"transport": { 
    "beacon": true, 
    "xhrpost": false, 
    "image": false 
} 

你的代碼。

一個完整的例子看起來是這樣的:

<amp-analytics> 
 
<script type="application/json"> 
 
{ 
 
    "requests": { 
 
    "pageview": "https://example.com/analytics?url=${canonicalUrl}&title=${title}&acct=${account}", 
 
    "event": "https://example.com/analytics?eid=${eventId}&elab=${eventLabel}&acct=${account}" 
 
    }, 
 
    "vars": { 
 
    "account": "ABC123" 
 
    }, 
 
    "triggers": { 
 
    "trackPageview": { 
 
     "on": "visible", 
 
     "request": "pageview" 
 
    }, 
 
    "trackAnchorClicks": { 
 
     "on": "click", 
 
     "selector": "a", 
 
     "request": "event", 
 
     "vars": { 
 
     "eventId": "42", 
 
     "eventLabel": "clicked on a link" 
 
     } 
 
    } 
 
    }, 
 
    "transport": { 
 
    "beacon": true, 
 
    "xhrpost": false, 
 
    "image": false 
 
    } 
 
} 
 
</script> 
 
</amp-analytics>