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.

Configuring Postbacks

To setup postbacks for a particular network, navigate to the tracker page and click on the Postbacks tab. Top level network trackers will have a postback created automatically for your primary conversion goal. You can add additional goals as triggers for this postback or create a new postback for those goals.

24382438

Custom Postbacks

Many networks have postbacks enabled that only require you to configure a few parameters. But if you want a fully custom postback that will send goal data back to an internal BI system, you can do so by clicking Add Postback and selecting Custom URL from the select. This will reveal an input for the HTTP method and URL where you would like us to send your goal data. When filling out the parameters you can select from a list of macros that we will replace with information about the touchpoint, event, and goal.

23742374

📘

Postback Scope

When postbacks are created they are scoped to the same Game, Team, and Network as the tracker.

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

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

{goal.attributed}

Whether this goal is attributed or unattributed

true

{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.

Transforms

The postback system also supports several transforms that will adjust the value of the postback macro before replacing it into your postback request.

Transform

Description

|json

JSON encodes the parameter. This is useful if you are writing postbacks into a JSON object to ensure that any special characters are properly escaped

Example:{"my_key": {touchpoint.ad_name|json}}
Returns: {"my_key": "My \"Campaign"}

|urlencode

URL encodes the parameter with plusses. This is useful if your postback accepts values like names and you would like to ensure any special characters are properly escaped

Example:https://postback.com?my_key={touchpoint.ad_name|urlencode}
Returns: https://postback.com?my_key=My+%22Campaign

|json|urlencode

JSON encodes the parameter, then URL encodes the resulting value

Example:https://postback.com?data=%7B%22my_key%22%3A%20{touchpoint.ad_name|json|urlencode}%7D
Returns: https://postback.com?data=%7B%22my_key%22%3A+%22My+%5C%22Campaign%22%7D

Postback Logs

You can view the Postback Log for each individual postback that you have set up in Gamesight for your Network Trackers.

From the Tracker Configuration page, click on the Tracker that you want to view your postbacks for. Next, click the Postbacks tab and click on the postback that you want to view logs for - followed by clicking the "View Logs" button as shown below.

14551455 16931693

Using the Filters tab, you can set a specific time range for your search. Using the Display tab, you can add additional columns of data such as the User ID, Game ID, Request Headers, Request Body, etc. as shown below.

195195

Did this page help you?