Facebook Pixel绑定目录提示未就绪的schema.org微数据问题排查
问题背景
我已创建Facebook Pixel并完成基础连接,调试工具运行时可正常选中并列出样本商品项,但尝试将商品目录与Pixel关联时,系统提示Pixel未就绪。当前用于输出schema.org结构化微数据的服务端代码如下:
<?php $current_url = base64_encode($url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); $results = $mysqli->query("SELECT products.id,products.image,products.name,products.description, product_variant.discounted_price, product_variant.price FROM products LEFT JOIN product_variant ON products.id = product_variant.product_id where subcategory_id = 41 ORDER BY id ASC LIMIT 12"); if ($results) { //fetch results set as object and output HTML while($obj = $results->fetch_object()) { $a = $obj->price; $b = $obj->discounted_price; $epsilon = 0; if(!$b == $epsilon) { $price = number_format($b,0); } else { $price = number_format($a,0); } //Microdata Tags echo '<div itemscope itemtype="http://schema.org/Product"> <meta itemprop="brand" content="'.$obj->made_in.'"> <meta itemprop="name" content="'.$obj->name.'"> <meta itemprop="description" content="'.$obj->description.'"> <meta itemprop="productID" content="'.$obj->id.'"> <meta itemprop="url" content="https://mgcmax.com/single.php?id='.$obj->id.'"> <meta itemprop="image" content="https://www.vendor.mgcmax.com/'.$obj->image.'"> <div itemprop="value" itemscope itemtype="http://schema.org/PropertyValue"> <span itemprop="propertyID" content="item_group_id"></span> <meta itemprop="value" content="Electroics"></meta> </div> <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> <link itemprop="availability" href="http://schema.org/InStock"> <link itemprop="itemCondition" href="http://schema.org/NewCondition"> <meta itemprop="product:category" content="888"> <meta itemprop="price" content="'.$price.'"> <meta itemprop="priceCurrency" content="UGX"> </div> </div>'; } } ?>
微数据缺失/格式错误排查
以下是会导致Pixel无法绑定商品目录的具体问题:
- 必填字段取值无效:现有SQL查询未拉取
made_in字段,导致brand属性取值为空,Facebook商品目录要求商品必须有有效品牌字段。 - item_group_id配置错误:当前
item_group_id的值写死为拼写错误的Electroics(正确应为Electronics),且该字段应对应同组商品的公共ID,和现有商品ID逻辑不匹配,会导致Pixel识别商品组失败。 - 分类字段不符合规范:使用的
product:category不是schema.org标准属性,Facebook要求google_product_category必须填写谷歌官方分类表的完整分类路径或对应有效数字ID,现有取值888不是合法分类ID,和收到的分类警告直接对应。 - price格式错误:
number_format默认会给价格加千位分隔符,schema.org要求price属性取值必须为纯数字,不能包含千位分隔符、货币符号等额外字符。 - 属性嵌套错误:
PropertyValue类型的父级属性应为additionalProperty而非value,现有嵌套结构不符合schema.org规范,Facebook爬虫无法识别自定义属性。
修复建议
- 调整SQL查询,补充拉取
products.made_in字段,确保brand属性有有效取值 - 调用
number_format时清空千位分隔符参数,输出纯数字价格:$price = number_format($b,0,'',''); - 把
<div itemprop="value">修改为<div itemprop="additionalProperty">,修正属性嵌套结构,同时修正item_group_id的拼写和取值逻辑 - 将
<meta itemprop="product:category" content="888">替换为有效的谷歌商品分类字段,填写对应分类的完整路径或官方数字ID
内容的提问来源于stack exchange,提问作者Wandera Emmanuel Van
相关产品推荐
相关产品推荐

