PlayerOffer
An offer the player has engaged with, in-progress or completed, with per-goal completion.
type PlayerOffer {
id: String!
campaign_id: Int!
name: String!
tracking_type: String!
total_payout_usd: Float!
total_amount: Float!
is_multi_reward: Boolean!
completion_difficulty: Int!
is_featured_campaign: Boolean!
campaign_vertical: String
store_id: String
start_datetime: String!
updated_at: String
attribution_window_days: Int
creatives: OfferCreatives!
links: OfferLinks!
platform_availability: [PlatformAvailability]!
goals: [OfferGoal]!
status: PlayerOfferStatus!
transaction_id: String!
started_at: String!
availability: OfferAvailability!
}
Fields
PlayerOffer.id ● String! non-null scalar
The unique id for the offer.
Example: "123456789012345678"
PlayerOffer.campaign_id ● Int! non-null scalar
The campaign id for the offer.
Example: 12345
PlayerOffer.name ● String! non-null scalar
The name of the offer.
Example: "Play Game X to level 10"
PlayerOffer.tracking_type ● String! non-null scalar
The tracking type of the offer.
Example: "CPE"
PlayerOffer.total_payout_usd ● Float! non-null scalar
The total payout in USD for completing every goal on the offer.
Example: 1.25
PlayerOffer.total_amount ● Float! non-null scalar
The total amount of virtual currency awarded for completing every goal on the offer.
Example: 125
PlayerOffer.is_multi_reward ● Boolean! non-null scalar
Indicates whether the offer rewards the player more than once.
Example: true
PlayerOffer.completion_difficulty ● Int! non-null scalar
The relative difficulty of completing the offer.
Example: 3
PlayerOffer.is_featured_campaign ● Boolean! non-null scalar
Indicates whether the offer is a featured campaign.
Example: false
PlayerOffer.campaign_vertical ● String scalar
The vertical the campaign belongs to.
Example: "Gaming"
PlayerOffer.store_id ● String scalar
The app store id for the offer.
Example: "com.example.game"
PlayerOffer.start_datetime ● String! non-null scalar
When the offer became available.
Example: "2026-06-01T00:00:00Z"
PlayerOffer.updated_at ● String scalar
When the offer was last updated.
Example: "2026-08-10T14:03:22Z"
PlayerOffer.attribution_window_days ● Int scalar
The number of days after engagement in which a conversion is still attributed.
Combined with started_at and a goal's maximum_completion_time_days, this makes the time a
player has left derivable without a dedicated field.
Example: 30
PlayerOffer.creatives ● OfferCreatives! non-null object
PlayerOffer.links ● OfferLinks! non-null object
PlayerOffer.platform_availability ● [PlatformAvailability]! non-null object
PlayerOffer.goals ● [OfferGoal]! non-null object
The offer's goals, each carrying whether this player has completed it.
PlayerOffer.status ● PlayerOfferStatus! non-null enum
The player's progress on the offer. Never reports a not-started state, since an offer only appears here once the player has engaged with it.
Example: IN_PROGRESS
PlayerOffer.transaction_id ● String! non-null scalar
The Player API transaction id behind this engagement, for correlation and support.
Example: "987654321098765432"
PlayerOffer.started_at ● String! non-null scalar
When the player engaged with the offer.
Example: "2026-08-14T09:12:44Z"
PlayerOffer.availability ● OfferAvailability! non-null enum
Whether the offer is still live. Disabled and deleted offers remain completable by a player who already started them, so they are reported rather than hidden.
Example: ACTIVE
Member Of
PlayerOffers object