没有GTIN能填UPC码吗?GMC里没有UPC这一栏
UPC、EAN、JAN、ISBN都是GTIN的格式,Merchant Center的属性表里从来没有过UPC这一栏,手上有码直接填进gtin就是标准做法。这篇把8位UPC-E展开成12位的算法、受限号段与优惠券号段、只有MPN时该填哪一栏、identifier_exists什么时候才允许填no、页面上gtin与mpn与sku与brand四个字段各自的分工,以及Shopify那个藏在变体库存区块里的条形码栏,逐条对着官方文档写清楚,最后附…
UPC、EAN、JAN、ISBN都是GTIN的格式,Merchant Center的属性表里从来没有过UPC这一栏,手上有码直接填进gtin就是标准做法。这篇把8位UPC-E展开成12位的算法、受限号段与优惠券号段、只有MPN时该填哪一栏、identifier_exists什么时候才允许填no、页面上gtin与mpn与sku与brand四个字段各自的分工,以及Shopify那个藏在变体库存区块里的条形码栏,逐条对着官方文档写清楚,最后附…
实验台把53个英文独立站392个商品页的JSON-LD节点全部取下,对每一个Product节点上的url与@id补全成绝对地址,再与页面自身地址逐字比对,据此判断这一页能不能指出它的主体。第一版比对忽略了查询参数,得到的通过率虚高三十多个百分点,翻查具体案例后改成完整地址严格比对。随后逐项统计@id、url、mainEntityOfPage的写入率与取值形态,把WebPage节点、结构化数据里的商品名与页面h1、以及同一页内的h1数量一…
做法是把同一批页面上的form元素连同它的action、method、enctype、novalidate、提交按钮与全部隐藏域一并取下来,按站内签名合并重复渲染的表单,再把每个收邮箱的输入框与它所在的那张表逐一对上,看去向写在哪儿。跨域判据取注册域比较,不看子域;隐藏域按名字归成八类用途,并记下取值长度。另外对每个页面再取一次原始HTML,与渲染后的DOM逐页对照,用来区分“页面本来就这么写”和“脚本后来插进去的”。
实验台用真实浏览器逐页打开53个英文独立站的392个商品页,等页面渲染完成后取出全部application/ld+json脚本,递归遍历每一个带@type的对象,按类型和它在JSON结构里的位置分别计数,同时记录字节量与脚本标签数。为了把模板复制与变体展开这两种不同的膨胀来源分开,每个站另外抽取了主推款与长尾款做同站对照;三个拿不到真实商品页的站——反爬拦截、跳转首页、地址全部失效——从统计中整体剔除。最后用加长等待时间的第二轮采集做自…
实验台从60个英文独立站的公开商品清单接口取回43912件在售商品的描述字段,先按站算空值率并观察整体分布形态,再用逐站剔除法看单个站对行业指标的影响幅度。随后给每一件空值商品跑一遍归因,按站级用法、非商品条目、占位测试、整条半成品四档依次往下扣。最后用真实浏览器打开商品页,把JSON-LD里的description与页面meta描述取出来跟接口值三方对照——正是这一步推翻了第一档的扣减依据,把2542件从待定改判回真缺,缺口最终从最初…
实验台从60个英文独立站的公开商品清单接口取回43912件在售商品的品牌字段,先按站算出主品牌,再把每一个非主品牌的取值做三级归一化——去掉重音符号、把与号换成and、砍掉地区码与公司后缀,据此把它们分成同一品牌的别写、字面空值、真正的另一个牌子三类,并逐条做字符级差异归因。随后用真实浏览器逐站打开商品页,等页面渲染完成后取出JSON-LD里Product节点的brand属性,与接口值一件件对照,判断这些取值有多少原样进入了搜索引擎读取…
量法是同一个地址问五遍:普通GET、带压缩的Range、不带压缩的Range、只要末尾一百字节、一次要两段、以及一个不可能满足的越界范围,每一遍都记原始字节数而不只是状态码;再对同一批站的CSS与JS各问一遍做对照;最后在自己的nginx上把动态压缩、预压缩、不压缩三档摆开,逐个开关复现。
量法是三条基线并排:静态HTML按body节点数一遍、真浏览器按四个时刻各拍一次快照、再用同一个浏览器把它自己收到的原始文档存下来数第三遍。第三条基线是关键,没有它就分不清脚本造的元素和解析器还没走到的元素。
量法分两层:131个站的首页各抓两轮,流式记下首字节与末字节的时刻;再把112份文档按字节位置摊开,找第一个能被预扫描发现的资源引用落在第几位。两层各自成立,但坐标系不同,一层是压缩后的字节,一层是解压后的字符,中间不能互相换算。
做法是把每一条声明连同它所在的选择器一起抓出来,按类名前缀归到九类第三方去。密度一律折算成每千条声明,并且只算声明数超过200条的样式表——那11个零条站的样式表中位只有6KB,是碎片不是主干。
测法是三档请求头加一次定宽对照:先把每条地址的尺寸参数统一改成800,再用现代、只认WebP、两样都不认三种身份各要一次。尺子先自查——把通配符去掉重问一遍,那16个站16个照旧。
判据分三层:先看HTML里的nomodule属性,再看文件名里的polyfill与legacy,最后给每份下载到的产物算内容哈希。第三层撞出了意外——同一串哈希在十几个互不相识的品牌站上反复出现。
量法分三步:先把五类内联内容从HTML里挖出来称重,再用brotli和gzip各压一遍验证压缩会不会推翻结论,最后隔段时间重抓一次逐块比哈希。第二步的结果和直觉相反。
量法是三层:先从HTML抓地址逐条问文件大小,再用无头浏览器停60秒记实际传输,最后整套重跑一遍。三层给出三个数,而第三层才暴露出前两层都不是尺子。
做法是三条通道并用:URL路径里写着的版本、打包器留下的banner注释、库自己给版本变量赋的值。上全量之前先拿16份版本已知的官方文件验尺子,命中12份、读错0份,所以所有数字都是下限。
用RDAP协议逐个拉130个大牌域名的注册局记录,解析EPP状态位、到期事件、注册商归属与DNSSEC委派标记,再用DNS over HTTPS查DS记录两边对账;聚合服务限流掉的44个站,改从IANA引导表直连各注册局补齐。四把尺子中途改过,其中一把关系到整篇的分母。
先用公共解析器把131个海外站的SOA七个字段全部取下来,再直连各自的权威服务器复核,最后隔几秒重问一遍,剔掉那些每次都在变的动态读数。尺子中途改过三次,其中一次把已经写好的结论砍掉了一半还多。
取127个海外电商站首页的全部外链脚本,把每份文件里的块注释扒出来,先按写法筛出构建工具刻意保留的那批,再判断哪些真是许可声明;随后把webpack抽到旁边的36个LICENSE文件逐个访问。第一版判据太窄,把短格式的声明整批判成了非许可,修完结论方向就变了。
对131个海外电商站首页引用的JS与CSS逐个下载,在文件尾部搜sourceMappingURL声明,顺着声明拉map并解析;用正文首字节而不是状态码判真伪,剔掉单页应用的兜底首页和只有29字节的空壳map,最后把拿到的自有源码全文扫一遍工单链接、非生产域名与实验配置。五道尺子全部修过一遍。
逐台连上130个大牌域名的收信服务器25端口,EHLO看能力清单、STARTTLS握手取证书,再逐张比对主机名在不在SAN里;同时用DNS over HTTPS查MTA-STS声明与TLS-RPT回执地址,抓HTTPS上的策略文件做三处对账。四把尺子中途改过,其中两把改变了结论方向。