In most cases beacons ‘just work’ but it’s sometimes the case that beacon detection is erratic. A beacon might be detected but not all the time. Problems can be due to the strength and/or quality of the received signal. The first step is to quantify the signal strength so you can measure it at various distances and beacon positions. The post on Testing if a Beacon is Working explains how to use an app such as nRF Connect to measure signal strength (RSSI) using a smartphone.
If you are not getting a large enough signal at longer distances then try increasing the transmit power. This is labelled ‘Tx power’ in most setup apps. Make sure it is at least 0dBm and increase it to +4dBm for a longer range. Note that changing from 0dBM to +4dBm will reduce battery life by over a half. Another option is to use a beacon with a longer range.
Another reason for poor detection is blocking of the line of sight. The degree of blocking depends on the blocking material. The post on What Can Block Beacon Signals? provides more information.
If beacon detection is erratic irrespective of the distance you need to look into the relationship between how often the beacon is advertising vs how often the receiver is listening. The post on Why Bluetooth LE Scanning Doesn’t Always See Devices (the First Time) provides a detailed explanation. This kind of problem can often be solved by decreasing the advertising period. This is sometimes labelled ‘Advertising interval’ as in the above example screenshot. Again, reducing this by, for example, a half will halve the battery life. It needs to be 600ms or less if iOS is to reliably detect beacons.
It’s rare but there’s also the possibility of too many Bluetooth signals advertising at the same time. You can learn more in the articles on Managing Bluetooth LE Advertising Congestion and The Affect of the Number of Beacons on the Detection Time.