> For the complete documentation index, see [llms.txt](https://docs.platform.gamezop.com/publishers/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.platform.gamezop.com/publishers/integrate-performance-ad-campaigns/configure-your-postback-url.md).

# Configure your Postback URL

In case this is new to you, we'll first discuss a few key concepts, before moving on to the Postback URL parameters. If you are familiar with what Postbacks are, you can skip to [Postback Configuration.](#configuring-your-postback-url-with-gamezop)

### What are "Conversions" and "Postbacks"?

Ever wondered why are these ad campaigns called "Performance Ad Campaigns"? It's because in this case, advertisers pay publishers to drive a performance goal. This goal could be an app-install, or a user-registration, a purchase, or anything else that meets a business objective for the advertiser.

Here's a simplified version of how a performance ad campaign works:

#### **Step 1**

The advertiser identifies a performance goal. For our example, let's say that the advertiser is Airbnb, and they want to run an ad campaign to drive app installs.

#### **Step 2**

Airbnb reaches out to a few publishers, and offers to pay $2 for each app install that the publishers can drive for Airbnb. Let's say NYTimes takes them up on their offer.&#x20;

Now NYTimes is already promoting several apps in a similar manner. They are a data-driven organisation and want to optimise the ads they show to drive maximum revenue for themselves. Remember, in this case, NYTimes does not make any money for displaying Airbnb ads, or for getting clicks on Airbnb ads. NYTimes only makes money when a user from NYTimes clicks on an Airbnb app ad, and goes on to complete the app-install process.

So NYTimes goes back to Airbnb and asks them to call a NYTimes API each time Airbnb records an install driven by NYTimes. If Airbnb does that, NYTimes would have real-time data on how much revenue they are making from the Airbnb campaign.

#### **Step 3**

Just like NYTimes, many other publishers have a similar ask for Airbnb. To handle this in a scalable manner, Airbnb decides on onboard Appsflyer. Appsflyer is a Mobile Measurement Partner (MMP). You can read more about MMPs [here](https://www.appsflyer.com/glossary/mmp).

When NYTimes now drives an app-install for Airbnb, Appsflyer's SDK in the Airbnb app will track that install, and it will call NYTimes's API like they asked.

{% hint style="info" %}
In this example above, each time NYTimes drives an app-install for Airbnb, it is considered a "conversion". Each time Appsflyer sends data to the NYTimes's API, it is considered a "postback".
{% endhint %}

***

### Configuring your Postback URL with Gamezop

You will have to send your Postback URL to our team when we first start working with you. For each conversion we record from the advertiser, we will make a hit to your Postback URL.

Here are the macros we support:

<table><thead><tr><th width="190.41796875">Macro</th><th>Description</th></tr></thead><tbody><tr><td>{third-party-click-id}</td><td>The value sent by you in the <code>click-id</code> parameter of the <a href="/pages/BY4uG9XnysplUnvOrJH5#structure-of-a-gamezop-campaign-link">Gamezop Campaign Link.</a></td></tr><tr><td>{third-party-site-id}</td><td>The value sent by you in the <code>site-id</code> parameter of the Gamezop Campaign Link.</td></tr><tr><td>{sub-1}</td><td>The value sent by you in the <code>sub-1</code> parameter of the Gamezop Campaign Link.</td></tr><tr><td>{sub-2}</td><td>The value sent by you in the <code>sub-2</code> parameter of the Gamezop Campaign Link.</td></tr><tr><td>{sub-3}</td><td>The value sent by you in the <code>sub-3</code> parameter of the Gamezop Campaign Link.</td></tr><tr><td>{sub-4}</td><td>The value sent by you in the <code>sub-4</code> parameter of the Gamezop Campaign Link.</td></tr><tr><td>{sub-5}</td><td>The value sent by you in the <code>sub-5</code> parameter of the Gamezop Campaign Link.</td></tr><tr><td>{property-id}</td><td>The <code>property-id</code> value in the Gamezop Campaign Link.</td></tr><tr><td>{campaign-uuid}</td><td>The <code>campaign-uuid</code> value in the Gamezop Campaign Link.</td></tr><tr><td>{country-id}</td><td>The <a href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166-1 alpha-2 country code</a> for the country where the conversion was recorded.</td></tr><tr><td>{gzp-postback-id}</td><td>Gamezop's unique identifier for that conversion. <br><br><strong>While it's not mandatory, we strongly encourage you to record this value.</strong> As explained in the <a href="#other-notes">Other notes</a> section below, we reattempt postbacks in case of failed deliveries. If you record the <code>gzp-postback-id</code>, you will always be able to uniquely identify conversions, and will never record the same conversion more than once. <br></td></tr></tbody></table>

{% hint style="info" %}
Note that the keys of the URL parameters in your Postback URL are not decided by us. As long as you use the correct macro, the postbacks will work fine.
{% endhint %}

Here's a sample Postback URL, with the macros correctly configured:

{% code overflow="wrap" %}

```url
https://www.example.com/postback?clickID={third-party-click-id}&siteID={third-party-site-id}&countryCode={country-id}&conversionID={gzp-postback-id}
```

{% endcode %}

***

### Other notes

* When we call your Postback URL, it must respond with a `200` [HTTP Response Status Code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#successful_responses) when you successfully record the data from the postback.
* For postbacks that are not successfully delivered, we reattempt delivery every 30 minutes. If your Postback API is down when we send you a postback, we will not get a `200` HTTP response. Our system will therefore consider that postback undelivered, and we will reattempt delivery after 30 minutes. We will keep attempting postback delivery in 30-minute intervals until we get a `200` HTTP response on your Postback API.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.platform.gamezop.com/publishers/integrate-performance-ad-campaigns/configure-your-postback-url.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
