Approvals, thresholds and versions
Owners and admins can always approve. Owners can also add specific members as approvers in Controls. If a campaign's daily budget (or lifetime budget divided by the number of days) is above the owner threshold, only an owner can approve it.
Nobody can approve a request they made themselves, except an owner. Requesting changes requires a comment. Each decision is stored permanently with a snapshot of the exact campaign content and its SHA-256 hash, and is also written to the audit log.
Every edit (budget, dates, copy, URL, ad groups) creates a new version. Approval covers a single version, so editing an approved campaign means approving it again before it can be pushed. A campaign that is already live keeps running the last pushed version in the meantime.