In order for us to advertise Sleep Cycle on Facebook, the Sleep Cycle app needs to include the FacebookSDK.
When Sleep Cycle is launched on iOS, the Facebook SDK is initiated and reads an identifier from the iOS device called IDFA.
Sleep Cycle does not share any other data with Facebook (no email, sleep data or other), aside from the IDFA at startup, so we can only guess how Facebook ties a specific IDFA to a specific user, but our guess is that Facebook collects this data from a vast amount of sources:
Any other app that uses the FacebookSDK, If you've ever shared anything from iOS to Facebook using the built-in share functionality, tracking cookies, IP-matching, Instagram, WhatsApp or any other company that Facebook has acquired over the years... the list can be quite long on how Facebook can possibly tie a Facebook user to a specific IDFA.
However, all of this can be limited. On your iPhone, go to Settings->Privacy->Advertising - you'll notice that you can turn "Limit ad tracking" and reset advertising identifier.