Postbacks

Gamesight has a robust postback (webhook) system that provides real-time notifications of new attributed installs. These postbacks can be sent to Ad Networks, BI platforms, or other external services that would want to be notified of new attributed goals.

Postbacks are sent as HTTP requests to an external web server, most frequently GET or POST requests.

🚧

Postback Events

Postbacks are only available for triggered Goals. Postbacks for clicks/impressions are not supported.

Filters

When a goal is triggered, eligible postbacks are determined by applying the set of filters configured on each postback. The available postback filters are:

  • Game - Trigger this postback for all goals attributed in this game
  • Team - Trigger this postback for all goals attributed to this team
  • Network - Trigger this postback for all goals attributed to this network (most common)
  • Goal Type - Trigger this postback for a specific goal, this is commonly combined with the above filters. E.g. to send D5 retention goal triggers attributed to Facebook back to FB Ads for optimization.

Adding Postbacks

Currently, postbacks must be reviewed and configured by Gamesight staff before they go in effect. If you would like to get a new postback in place please provide the following information to your account manager.

Verb: (GET, POST, etc)
URL: (https://mysite.com/postback?type={touchpoint.type})
Headers: (List any header values your endpoint expects)
Body: (Provide the format of the body of the request, for POST/PUT requests)
Filters: (What filters do you want to apply, eg "D5 goal triggers attributed to Facebook")

The macros section below provides details on the variables that are available in your postbacks.

Macros

When setting up a new postback there are many macros that are available. Macros are dynamic values or variables that you can request

Global

These macros are available on all postbacks.

Macro

Description

Example Value

{touchpoint.id}

The Touchpoint ID that was attributed to the Goal (either Click or Impression ID) - String - 32 bytes

5f13a20a7e65424b8da117affaaf2f84

{touchpoint.network_touchpoint_id}

Either the network_click_id or network_impression_id passed into the tracking url - String

myNetworkClickId123

{touchpoint.type}

The type of touchpoint attributed - String

click or impression

{touchpoint.created_at}

Time the touchpoint was triggered - String - ISO8601

2018-01-01T00:00:00

{touchpoint.sub1}

Sub 1 value from tracking link - String

{touchpoint.sub2}

Sub 2 value from tracking link - String

{touchpoint.sub3}

Sub 3 value from tracking link - String

{touchpoint.sub4}

Sub 4 value from tracking link - String

{touchpoint.sub5}

Sub 5 value from tracking link - String

{click.id}

The Click ID that was attributed to the Goal. Empty if touchpoint was an Impression - String(32) - 32 bytes

5f13a20a7e65424b8da117affaaf2f84

{click.network_click_id}

The network_click_id passed into the tracking url - String

myNetworkClickId123

{impression.id}

The Impression ID that was attributed to the Goal. Empty if touchpoint was a Click - String(32) - 32 bytes

5f13a20a7e65424b8da117affaaf2f84

{impression.network_impression_id}

The network_impression_id passed into the tracking url - String

myNetworkImpressionId123

{goal.created_at}

Timestamp that the Goal was created at - String - ISO8601

2018-01-01T00:00:00

{goal.goal_type_id}

The Goal Type ID that triggered with postback - UInt32

1234

{goal.trigger_type}

The type of trigger that occurred - String

standard or assist or contribution

Restricted

These macros are only available to postbacks that are defined by the customer. These details cannot be shared with third parties.

Macro

Description

Example Value

{event.id}

Event ID that triggered the Goal - String - 32 bytes

5f13a20a7e65424b8da117affaaf2f84

{event.user_id}

User ID for the Event that triggered the Goal - String

myUserId123

{event.game_id}

Game ID for the Event that triggered the Goal - UInt32

100

{event.type}

Type of the Event that triggered the Goal - String

game_launch

{event.platform}

Platform included with this event - String

steam

{event.external_ids}

The JSON encoded list of external IDs passed with this event payload - String

[{"external_id_type": "myid", "external_id": "12345"}]

{event.ip_location.country}

The Country detected for this Event, based on IP geolocation - String - ISO 3166-1 Alpha-2

MX

{event.revenue_amount}

The Revenue amount passed with this event - Decimal(10,2)

10.00

{event.revenue_currency}

The Revenue currency passed with this event - String - ISO 4217

USD

{event.created_at}

Timestamp of the Event that triggered the Goal - String - ISO8601

2018-01-01T00:00:00

{goal.revenue_amount}

The revenue amount associated with this Goal - Decimal(10,2)

10.00

{goal.revenue_currency}

The revenue currency associated with this Goal. Currently this is always normalized to USD - String - ISO 4217

USD

{touchpoint.game_id}

Touchpoint's Game ID - UInt32

100

{touchpoint.team_id}

Touchpoint's Team ID - UInt32

100

{touchpoint.network}

Touchpoint's Network - String

facebook (set to unattributed for unattributed goals)

{touchpoint.campaign}

Touchpoint's Campaign - String

campaign1

{touchpoint.ad_group}

Touchpoint's Ad Group - String

adgroup123

{touchpoint.ad}

Touchpoint's Ad - String

placement1010

{touchpoint.team_name}

Touchpoint's Team Name* - String

Agency 1

{touchpoint.network_name}

Touchpoint's Network Name* - String

Facebook

{touchpoint.campaign_name}

Touchpoint's Campaign Name* String

Launch Campaign

{touchpoint.ad_group_name}

Touchpoint's Ad Group Name* String

US Targeting Group

{touchpoint.ad_name}

Touchpoint's Ad Name* -String

Banner Placement

{touchpoint.session_id}

Touchpoint's Session ID - String - 32 bytes

5f13a20a7e65424b8da117affaaf2f84

* Touchpoint names for platforms with Tracker Hierarchy Mirroring (Facebook, Google CM, etc) may not be present at the time of postback for the first few hours after a new campaign goes live (our systems pull down new campaign names from external platforms every few hours). If a name is not set for the Tracker, these fields will fallback to the ID (eg touchpoint.campaign_name will be the same as touchpoint.campaign).

Network Params

Additional parameters can be made available during Network Tracker configuration. These fields are generally used to define values like security keys or other client-specific Network parameters. All of these Macros are of the form {postback_params.*}

Query Params

All query parameters present in the Touchpoint that triggered the postback are available for use as postback Macros. You can access these fields through the {query_params.*} Macros.


Did this page help you?