Hi Alex,
Please find my inline response below:
1) Is the documentation wrong about MostSpecificCriteriaId?
MostSpecificCriteriaId is an attribute it is supposed to give the most specific Location criterion associated with the specific impression. If you are seeing any issues while using this attribute, could you please share your report definition along with the CID so that I can cross check?
2) What is the MetroCriteriaId ? In my report it is always zero.
It is not necessary to have a metro area associated with all the locations. If that information is not available to AdWords for the specific impression, it might be blank in your reports.
3) Are there only 5 layers of ids? ( metro + country + city + region + postal code )?
In Geo Performance report, you will get above ids, you can look up the corresponding name of the location like city, country, region, metro etc. using LocationCriterionService. If you are looking for the complete list of types, please refer to this table. You can apply filter 'Target type' to see all the available location types.
4) Do the metrics in a GeoPerformanceReport depend on targeted locations? In my report germany has fewer impressions than a region in germany. I know that targeted locations work this way, but it seems that the GeoPerformanceReport acts similarly.
The Geo Performance is all the locations where your Ads were shown. If you are looking for the report specific to your campaign location targets, you will need to use the Campaign Location Target report.Let me know if you have any further questions.Thanks,Milind, AdWords API Team