fiveampsoftware avatar image
fiveampsoftware asked

Best way to have a timed Special Offer?


What would be the recommended way to setting up a special offer in playfab's game manager?

The idea behind this special offer is to show it to a segment of users, it will have a set amount of items (like a bundle or container), it will have a timer (the user will see a countdown timer like 12hrs remain).

We have come up with a few ways but not sure what the best way would be. The following are some of the methods we've came up with:

- Method 1: Have a JSON field set up in the Title data with segment id -> special offer list. Clients will check this and show the user what special offer is valid w/ an expiration date set.

- Method 2: Grant a 'locked' container to every user in a segment that has a time limit and is a consumable. Requires another item to unlock it that correlates to the specific special offer (would require a reverse look up)

- Method 3: Grant a 'tagged' container to every user in a segment that has a time limit and is a consumable. Doesn't require another item to unlock, but the client will show the option to purchase the container of the same type as long as one exists in their inventory and is tagged.

- Method 4: Run a cloudscript on every user in a segment that sets up a player data JSON structure that has details about the special offer (time remain, special offer bundle id, etc).

There's a lot of ways to skin this cat but I want to make sure we take the path that can scale.



In-Game EconomyPlayer Inventory
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

brendan avatar image
brendan answered

So to be clear, you want to have a period of time during which players who match a certain segment criteria can access a special offer - is that correct? So, from midnight UTC of one day to midnight UTC of the next, those players have access to the special offer? The best thing to do in that case would be to set the segment up with a login time stamp, so that players only see the offer if they signed in within that period. Option 1 above could work as well, but you can't completely block a player from making a purchase using a valid price in the catalog. So if you're exposing a price and hiding it behind discoverability, it's quite likely someone will figure this out and hack their client to purchase items at the special price anyway. Options 2-4 aren't really going to scale well if your title does very well, as they require taking an action for every player in the game via a Task, which could take a long time. One alternative would be to use an "OnLogin" type of Cloud Script which checks the time to determine if any special items should be added to the player when they log in.

10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

fiveampsoftware avatar image fiveampsoftware commented ·

If we used segment actions would that make option 2-4 more feasible? Ie - you made it to Level 3, you are now part of level 3 segment and have access to a special offer that exists for 12 hours. 'Welcome to Level 3! Here's a special offer'

And on the side of having a special offer for all 'level 3' players for a given weekend we chose - you would suggest a cloud script / title data look up for that segment id to special offer (bundle id)?

Or would there be an easier method you would suggest instead of the ones listed?

(the timed containers are essentially a workaround for a timed store override. Would be great to see timed offers in a future release)

0 Likes 0 ·
Andy avatar image Andy ♦♦ fiveampsoftware commented ·

In general, yes, doing the work on segment entry or exit is preferable to a scheduled task, as it will distribute the load more evenly across your special offer period. If you're doing it that way, option 2 makes lot of sense to me.

As to how those players see the special offer, I'd recommend utilizing store overrides and controlling access to the override through a time-limited segment. You'd define your segment as:

Last Login Time > Friday AND

Last Login Time < Monday AND

Level >= 3

So, anyone who met those criteria would get the special store with the time-limited offer.

Also, yes, we're working on a feature we call Event that are designed to do almost exactly what you're talking about. No ETA right now, but we'll share more when we can.

0 Likes 0 ·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.