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.
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.
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 |
{postback.id} | A unique ID for this specific postback request. Can be useful for deduplication or as a primary key for postback logs - String(64) - 64 bytes | 55afccaad56024aabf5ba8675aa9bd68e17a88155bd93ec44bf6ab377e1bed83 |
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.hashed_user_id} | Hashed version of the User ID for the Event that triggered the Goal - String(64) - 64 bytes | 55afccaad56024aabf5ba8675aa9bd68e17a88155bd93ec44bf6ab377e1bed83 |
{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.
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.
Updated 4 months ago