If the "maximize_conversion_value.target_roas" and/or "target_roas.target_roas" fields have been added to one of your Google Ads datasets, you may notice that some of the values are null. Why is that?
Our research has found that it is expected for target ROAS to be null when the bidding strategy type is not "MAXIMIZE_CONVERSION_VALUE" or "TARGET_ROAS". The thing to keep in mind here is that target ROAS is not a metric, it is a dimension. That means that it would make sense for it to be null if it does not apply to the other fields in the data, like "bidding strategy type".
In this Google Help Center article about ROAS underneath the "When to use value bidding" header, Google explains, "Value based bidding is most helpful if various conversions have different value for your business or if you have a specific Return On Ads Spend (ROAS) target that you're trying to achieve." The table underneath that statement then shows that only "Max conversion value" and "Target ROAS" conversions "have different value for your business." It would follow then that "maximize_conversion_value.target_roas" and "target_roas.target_roas" would be null for all other bidding strategy types that are not "MAXIMIZE_CONVERSION_VALUE" and "TARGET_ROAS".
In addition, if you read through the previously linked article, you'll see that Google always calculates an "average target ROAS" for campaigns where that bidding strategy applies. When that metric is added to the API call, only "MAXIMIZE_CONVERSION_VALUE" and "TARGET_ROAS" come through the API and all other instances of the other bidding strategy types are lost from the data. Given how Google Ads filters data based on the dimensions and metrics applied and their relevance to the query provided to the API, that must mean that Google only considers those two bidding strategy types as applicable to target ROAS.