Skip to main content
Apostra sends a creative to each seller on a media buy separately. When a creative has not reached a seller, or the seller turned it down, the creative’s platformLinks tell you which of those happened, who must act, and why. Read them before you tell anyone that a seller rejected a creative: a seller rejection is one reason among several, and in most cases the seller never saw the creative. get with kind: "creative" returns one entry in platformLinks per seller. The same read in v2 returns platform_links, with the names in the last column of the tables below.

Where the creative stands

Each seller link is in exactly one stage, or in none when there is nothing to report (the creative is synced and approved).

Who must act

The party who must act follows the cause, not the step where it showed up. A not_sent creative always names Apostra.

Why

In v2, sync_reason carries the reason. In v3, failureReason carries it for links that are not_sent or failed, and is absent for a link that is pending or live. For a pending link, read status and approvalStatus: a seller reviewing the creative reads as approvalStatus: "pending", and a seller that asked for changes reads as approvalStatus: "changes_requested". Every reason fixes its stage and the party who must act. The set is closed. A link with no reason has nothing to report, or was last written before reasons were recorded; it fills in the next time the creative is sent to that seller.

What to say to a buyer

  • Say a seller rejected a creative only for seller_rejected_content, or when approvalStatus is rejected.
  • For not_sent, say the creative was not sent and Apostra must fix it. The buyer does not need to change the creative.
  • For buyer, say what must change, using the reason above.
  • rejectionReason (v2: rejection_reason) is only the seller’s own note. A creative that was not sent has none.
See Creative approval for the two review gates a creative passes through after a media buy is forwarded.