Project Settings Sync

Project Settings Sync

How the iOS SDK stays up to date  

The iOS SDK manages project settings synchronisation automatically. You don't call an API to trigger it — the SDK runs a background polling loop that checks for updates, compares them against the locally cached configuration, and updates if anything has changed.
Project settings include:
  • Active experiments and their configurations
  • Variation definitions and traffic allocation
  • Audience targeting rules
  • Goal configurations
  • Experiment status updates

Polling behaviour  

The SDK's polling loop is tied to the iOS app lifecycle — it runs when it should, and stops when it shouldn't.

Polling starts automatically when:

  • The app enters the foreground
  • Network connectivity becomes available

Polling stops automatically when:

  • The app moves to the background
  • The app is terminated
This means no background polling, which keeps the SDK compliant with iOS background execution policies and doesn't drain battery.

Poll schedule and intervals  

Setting
Value
Default polling interval
5 minutes
Minimum allowed interval
5 minutes
Configuration method
PageSenseSDKOptions.pollingInterval
Any value set below 5 minutes is automatically normalised to 5 minutes. This floor exists to balance configuration freshness against device resource usage.

How the SDK handles poll responses  

HTTP 200 OK — Settings updated
The server has new configuration. The SDK:
  • Retrieves the full project settings payload and version headers
  • Parses and updates the locally cached configuration
  • Updates internal SDK metadata
  • Logs the transaction for diagnostics
HTTP 204 No Content — No changes
Nothing has changed on the server. The SDK:
  • Processes the project version headers (no response body)
  • Runs a consistency check:
    • If the local version is missing → triggers an immediate full settings fetch
    • If the local version differs from the server → triggers an immediate full settings fetch
  • Logs the transaction for diagnostics

You don't need to manage this  

The SDK handles all of this internally. There's no manual API call to trigger a sync, no polling lifecycle to manage, and no cache invalidation to worry about. Cached configurations are used to keep experiment evaluation consistent even when network connectivity is intermittent.





We’ve designed this documentation to guide you every step of the way. If you need further assistance or have any questions, don’t hesitate to contact us at support@zohopagesense.com - we’re always here to help!