ads.txt是一个文件,每个广告支持的网站都应放在其根文件夹中。 IAB ads.txt specification指示它看起来像:
<FIELD #1>, <FIELD #2>, <FIELD #3>, <FIELD #4>
在接受具有不同空格或字段的文件时,数据应该是自由的 分离字符。
但同样的呼吸也提到:
消费者系统应该忽略任何空格或制表符序列。 任何字段都不应包含标签,逗号或空格,否则应使用网址编码进行转义[13]。
我的问题是:如果&#34;没有字段应包含空格&#34; ,为什么规范在其自己的示例中使用空格[更新:我的意思是之间的空格田野]?是否可以接受?应该是什么默认值? Stackoverflow itself使用空格,BTW,但它并不意味着它是对的。
答案 0 :(得分:1)
你问:
如果“没有字段应该包含空格”,为什么规范在它自己的例子中使用空格?
混淆的根源仅在于<FIELD #1>, <FIELD #2>, ...
不是示例,而是要遵循的格式或结构,换句话说是语法。作为语法 <FIELD #1>
实际上是一个符号,是标记位置的替身。您可以使用greenadexchange.com
规则:
任何字段都不应包含...空格
可以更好地理解为:
没有字段值应包含...空格
field
此处用于某个地点或位置的内容,换句话说就是field value
<FIELD #1>
。也就是说,IAB编写器可能通过编写第一个字段不使用<FIELD#1>
空格的符号,第二个字段使用<FIELD#2>
来改进,依此类推。这有助于避免潜在的混淆风险,同时仍然传达此位置有第一个区域,该位置有第二个区域,等等。
您还想澄清一下:
但是周围的空间怎么样?默认情况下,规范是
<FIELD#1>,<FIELD#2>,<FIELD#3>,<FIELD#4>
还是<FIELD#1>, <FIELD#2>, <FIELD#3>, <FIELD#4>
?
规范似乎没有偏好,规范只有允许周围的空间,因为它被忽略。
建议:
以下详细说明。
查看您最初引用的<FIELD...
附近的其他文字IAB ads.txt specification,PDF第7页:
... The records consist of a set of
lines of the form:
<FIELD #1>, <FIELD #2>, <FIELD #3>, <FIELD #4>
or
<VARIABLE>=<VALUE>
它说of the form:
,它表明它将要呈现的是结构,换句话说是语法,而不是一个例子。它在以后的页面中也不会使用example
这个词,所以这个<FIELD #1>, ...
更好地理解为不是文字示例,而是说明语法。
此外,当您在尖括号(<
,>
)中看到某些内容时,例如<FIELD #1>
和<VARIABLE>
,这是技术手册或文档中经常使用的惯例表示当你实际使用它时,尖括号和其中的任何内容将被替换一个值。
field
限制(例如PDF第8页:No field should contain tabs, commas or whitespace
)更好地理解为对您最终编写的字段值的限制,而与<FIELD #1>
无关,仅仅是惯例,一种与你沟通的方式,即在那个地方或“位置”有第一个字段。
稍后部分:4. EXAMPLES
我们可以看到之前看到的语法:
<FIELD #1>, <FIELD #2>, <FIELD #3>, <FIELD #4>
这样应用:
greenadexchange.com, XF7342, DIRECT, 5jyxf8k54
我们可以将语法与其实现进行比较,如下所示:
| SYNTAX | EXAMPLE | WHAT |
| --- | --- | --- |
| <FIELD #1> | greenadexchange.com | Domain value |
| , | , | Delimiter |
| | | Ignorable whitespace |
| <FIELD #2> | XF7342 | Publisher's Account ID value |
| , | , | Delimiter |
| | | Ignorable whitespace |
| <FIELD #3> | DIRECT | Type of account value |
| , | , | Delimiter |
| | | Ignorable whitespace |
| <FIELD #4> | 5jyxf8k54 | Certification Authority ID value |
<FIELD #1>
语法,已替换为greenadexchange.com
,而greenadexchange.com
中没有空格,
)是分隔符,因为规范,PDF第7页:a comma separated format
所以它是分隔符或分隔符
)将被忽略,因为通常会忽略所有空格:The consumer systems should ignore any sequence of whitespace or tabs.
同样的理解适用于本例中的其余部分
这些是规则,但就首选项而言,我无法在逗号后找到任何特别喜欢空格或没有空格的内容。
但我强烈建议写下逗号后跟 space (,
),因为它比不间断的文本行更清晰,更易读。清晰度有助于将误解和错误的风险降至最低,并且从长远来看通常使其更易于维护。
当您阅读更多技术文档时,您可能会看到尖括号(<...>
)的其他示例表示您要替换的内容。一个有趣的例子是 The Open Group Base Specifications Issue 7,2018 edition, 12. Utility Conventions:
4. Frequently, names of parameters that require substitution by actual values are shown with embedded <underscore> characters. Alternatively, parameters are shown as follows:
<parameter name>
<FIELD 1>
似乎是这种替代方法如果IAB编写者想要更有帮助并避免混淆的风险,他们可能已经编写了没有空格的语法
<FIELD#1>, <FIELD#2>, <FIELD#3>, <FIELD#4>
或Open Group Base建议的“嵌入下划线”字符:
<FIELD_1>, <FIELD_2>, <FIELD_3>, <FIELD_4>
这可能会更有帮助,因为它进一步强调了关于没有空白的观点,并避免了潜在的混淆。