Passing the store review the first time
The common reasons for rejection
A permission requested with no clear reason why it's needed; a missing or broken privacy policy; a test account not provided so the reviewer couldn't log in; content that looks unfinished; and payments that bypass the store's mechanism where it's required.
What to prepare in advance
An accurate, honest description, screenshots that show the app as it is, full reviewer access including a one-time code if needed, and a short text explaining each sensitive permission.
If there's user-generated content — prepare a reporting and blocking mechanism. That's a requirement, not a recommendation.
Planning the timeline
Assume one round of fixes. Don't tie a campaign to a date that depends on approval. Keep a path for an urgent fix, and make sure the previous version keeps working against the server — users don't all update in a day.
Going deeper
Set up a remote-config mechanism that lets you turn off a problematic capability without releasing a new version. That shortens an incident from days to minutes, and enables gradual rollout — two things you can't achieve when every change goes through store review.