2017-06-19 71 views
0

,我使用作为实施使用GTM DOM变量产品模式的自定义HTML标签的产品架构代码..如何使用DOM元素变量在GTM中添加AggregateRatingin?

<script> 
var jsonData = { 
    "@context": "http://schema.org", 
    "@type": "Product", 
    "name": {{productName}}, 
    "image": {{productImg}}, 
    "url": {{Page URL}}, 
    "aggregateRating": { 
    "@type": "AggregateRating", 
"ratingValue": {{avgRating}}, 
    "reviewCount": {{ratingsCount}}, 
    } 
    } 

    var script = document.createElement('script'); 
    script.type = 'application/ld+json'; 
    script.text = JSON.stringify(jsonData); 
    $("head").append(script); 
</script> 

如何配置的DOM元素变量在AggregateRating变量(avgRating,ratingsCount) GTM。

这里是标记

<div class="woocommerce-product-rating"> 
     <div class="star-rating"> 
      <span style="width:100%"> 
       <strong class="rating">5.00</strong> out of <span>5</span>    based on <span class="rating">1</span> customer rating   </span> 
     </div> 
     <a href="#reviews" class="woocommerce-review-link" rel="nofollow">(<span class="count">1</span> customer review)</a> </div> 
+0

能否请您HTML标记添加到您的问题,因为我们需要了解在哪里可以找到它在你的标记 –

+0

加入上面的HTML标记( avgrating,avgreviews).. –

+0

我也尝试通过ID也类...但整个评论文章显示...但我想这些变量的平均整数值。我如何提取这些的确切的平均整数值.. –

回答

0

您需要创建GTM两个变量

1)进入Variables->User-Defined Variables->New->Custom Javascript

2)名称ProductAvgRating和JS代码创建变量:

function() { 
    try { 
    return parseFloat(document.querySelector('.woocommerce-product-rating strong.rating').innerText); 
    } 
    catch(e) {return 0;} 
} 

2)创建名称为的变量和JS代码:

function() { 
    try { 
    return parseInt(document.querySelector('.woocommerce-product-rating span.rating').innerText); 
    } 
    catch(e) {return 0;} 
} 

,然后改变你的HTML标记那样:

<script> 
var jsonData = { 
    "@context": "http://schema.org", 
    "@type": "Product", 
    "name": {{productName}}, 
    "image": {{productImg}}, 
    "url": {{Page URL}}, 
    "aggregateRating": { 
    "@type": "AggregateRating", 
"ratingValue": {{ProductAvgRating}}, 
    "reviewCount": {{ProductRatingsCount}}, 
    } 
    } 

    var script = document.createElement('script'); 
    script.type = 'application/ld+json'; 
    script.text = JSON.stringify(jsonData); 
    $("head").append(script); 
</script> 

附:你没问productNameproductImg变量,我想你已经拥有了它

+0

非常感谢你的回复。希望它能起作用。是的,对于productName和productImg使用DOM变量CSS元素。在调试时,它显示确切的值。这就是为什么我不提。 –

+0

如果我的解决方案为您工作,请接受我的回答 –

+0

它正在工作。非常感谢你的回复。帮助我很多。我刚来这地方。我的声誉还不好。所以我无法upvote .. –

相关问题