How to verify how many CDF fields are in a CDF report

The Customer Data Feed reports contain several fields of data, delimited with ASCII characters that are not normally visible on screen. This article will describe how to determine the number of fields your report contains. To see which fields are available in the report, please visit https://marketing.adobe.com/resources/help/en_US/aam/c_cdf_fields.html

In the reports, the following delimiters are used:

  • For field separation, the ASCII character corresponding to code 01. This is usually referred to as SOH (start of heading).
  • For array separation, the ASCII character corresponding to code 02. This is usually referred to as STX (start of text).
  • For dictionaries:
    • Key/value separation will be the ASCII character corresponding to code 03. This is usually referred to as ETX (end of text).
    • Elements separation will be the same as for arrays (02). These separator characters occur very infrequently in raw data, so there is no risk of having data mixed up.
There are two known ways to view the delimiters, using a Unix/Linux terminal, or Cygwin command-line interface in Windows. With visible delimiters, you can count these and determine the number of fields, even if the fields are empty.
 
 
1- Using the 'translate' command ("tr") - Translates ASCII code 01 (field separation, SOH) to "|" 
 
$ zcat /path/to/dir/AAM_CDF_1234_000001_0.gz | head -5 | tr '\001' '|' | tr '\002' ',' | tr '\003' ':'2013-10-01 
 
18:11:09|00042314524877950034124736683724775790|1083|318722|32619|\N|http://www.acmeflights.com/?cs:e=m&cs:q=&cs:m=&cs:cid=&seg=dap&cs:tv=449&cs:a=pb_retention_search&cs:pro=cpb&cs:ki=581078065|199.30.25.942013-10-01 17:48:52|00067720900173020484560039672852520207|684|64766|\N|d_cb:demdexDestCallback1380649775741,d_dst:1,d_px:19400,d_ld:vin_crm%3D5138.1380649775159.4959%26containerid%3D684%26_ts%3D1380649775741,d_rtbd:json,d_cts:1|http://www.acmemotors.com/|165.234.104.462013-10-01 17:48:52|00067720900173020484560039672852520207|684|64675|32619,20406,20407,2246,20396|d_cb:demdexDestCallback1380649775740,d_dst:1,d_px:19315,d_ld:containerid%3D684%26_ts%3D1380649775740,d_rtbd:json,d_cts:1|http://www.acmemotors.com/|165.234.104.462013-10-01 17:49:14|00067720900173020484560039672852520207|684|64766|\N|d_cb:demdexDestCallback1380649797960,d_dst:1,d_px:19400,d_ld:vin_crm%3D5138.1380649775159.4959%26containerid%3D684%26_ts%3D1380649797960,d_rtbd:json,d_cts:1|http://www.acmemotors.com/inventory/newsearch/Used/|165.234.104.462013-10-01 17:49:14|00067720900173020484560039672852520207|684|64675|32619,20406,20407,2246,20396|d_cb:demdexDestCallback1380649797957,d_dst:1,d_px:19315,d_ld:containerid%3D684%26_ts%3D1380649797957,d_rtbd:json,d_cts:1|http://www.acmemotors.com/inventory/newsearch/Used/|165.234.104.46
 
 
2- Using the "less" command - A screenshot of Cygwin, on a Windows computer, viewing a line of data
The symbol "^A" indicates the location of the field separator
 
$ zcat  /path/to/dir/AAM_CDF_1234_000001_0.gz | head -1 | less
Capture