Unless overridden, BGP takes -distance- into account where distance =
AS path length.
An AS_PATH length of 10 could be a physical distance of 1 mile.
An AS_PATH length of 1 could be a physical distance of 1000 miles.
BGP TE communities exist to provide signalling in the event that the standards implemented by a provider don't align with the desires of an ASN. They are certainly imperfect, but they are a very useful tool in the toolbox that can solve problems exactly as you are experiencing.
If you chose not to even attempt to use them, for whatever your reasons may be, I guess that's all there is to say at this point.