Import data with feeds that is not in the source file
To get the importer's machine name from the source, instead of doing $source-&gt;id, this should be $source-&gt;importer-&gt;id.

I don't know what you are trying to do with $mapping['_ad_area'] exactly. $mapping contains target configuration (aka mapping settings). I don't see form_callbacks on your target code. The default taxonomy reference field also doesn't have an option called '_ad_area'. If you added mapping for the 'field_ad_area' target, values coming from the source should exist in $values.

You say you want to provide a value that is not in your original source. If this is a fixed value, you can use the Tamper plugin &quot;Set default value&quot; from the Feeds Tamper module. If you are using the CSV parser, on the mapping form you can just enter a source column name that does not exist in your CSV file. Otherwise, select &quot;Blank source&quot;.
If you programmatically want to set a value, you can implement the hook hook_feeds_after_parse() in a custom module:


/**
 * Implements hook_feeds_after_parse().
 */
function mymodule_feeds_after_parse(FeedsSource $source, FeedsParserResult $result) {
  if ($source-&gt;importer-&gt;id != 'qc_data_generic_import') {
    return;
  }

  foreach ($result-&gt;items as &amp;$item) {
    $item['Blank source 1'] = 'My value';
  }
}