Getting Started
Welcome to the AdGPTWall Offerwall documentation. This guide walks you through setting up an account, creating an application, and getting the credentials you need to start showing offers to your users.
Creating an account
You'll need an AdGPTWall account before you can set up or configure an app. Once approved, you'll have full access to the platform.
- Go to the AdGPTWall publisher signup page.
- Fill in the registration form and submit it.
- Log in from the members dashboard.
Creating an app
An app is required before you can use any AdGPTWall tool. Once your app is approved, you'll receive an API Key and a Secret Key, which you'll use to integrate the offerwall.
- Log in to your AdGPTWall account.
- From the menu, go to
Apps → Add New App. - Fill in your app's details and click Create App.
API Key & Secret Key
Your API Key identifies your app when loading the offerwall or requesting offers. Your Secret Key is used to sign and verify postbacks — keep it private.
- Log in to your AdGPTWall account.
- From the menu, go to
Apps → Manage Apps. - Copy the API Key and Secret Key from your app's row.
Ready to integrate?
Create your publisher account to get an API Key and start showing offers in minutes.
Create your account →🔌 Integration
The AdGPTWall Offerwall shows users localized, translated offers based on their device and location, and adjusts automatically to fit any screen size.
1. Get your API Key
Open the Placements section in your dashboard menu. Your API Key is listed alongside each placement — click the link icon next to it for the full embed URL.
2. Embed the wall
Drop this iframe into your page, swapping in your own API Key and a unique ID for the user viewing the wall:
<!-- Embed the AdGPTWall offerwall --> <iframe style="width:100%; height:800px; border:0; padding:0; margin:0;" scrolling="yes" frameborder="0" src="https://adgptwall.com/offer/[API_KEY]/[USER_ID]"> </iframe>
Replace [API_KEY] with your app's API Key and [USER_ID] with a stable identifier for the current user — this is how earned rewards get matched back to them.
3. Test your postback
Once the wall is embedded, trigger a test completion from the Placements section in your dashboard to confirm your postback endpoint is receiving and crediting rewards correctly. See the Postback section below for the full parameter list.
📩 Postback
Whenever a user completes an offer, AdGPTWall sends an HTTP GET request to the postback URL configured on your app, carrying everything you need to credit the user.
Postback parameters
| Parameter | Description |
|---|---|
subId | Your unique identifier for the user who completed the offer. |
transId | Unique ID for this transaction on AdGPTWall. |
reward | Payout amount, in your app's currency units. |
payout_usd | Payout amount in USD. |
signature | MD5 hash used to confirm the request came from AdGPTWall's servers. |
status | 1 credits the reward, 2 reverses it (fraud or correction). |
ip | IP address of the user who completed the offer. |
campaign_id | ID of the completed offer. |
type | Offer type — Offer, Survey, PTC, or Shortlink. |
country | ISO2 country code the completion came from. |
offer_name | Name of the offer completed. |
reward and payout_usd are always positive numbers — check status to know whether to add or subtract that amount.Custom postback parameters
Reference any parameter from the table above in your postback URL using curly braces, and AdGPTWall will fill it in automatically:
https://yourapp.com/postback?custom={subId}&campaign={campaign_id}
Verifying the signature
Always verify signature before crediting anything — it's how you confirm the call actually came from AdGPTWall and not a spoofed request. It's an MD5 hash of subId, transId, reward, and your Secret Key, concatenated in that order.
<?php $secret = ""; // Your Secret Key $subId = $_GET['subId'] ?? null; $transId = $_GET['transId'] ?? null; $reward = $_GET['reward'] ?? null; $signature = $_GET['signature'] ?? null; // Validate the signature if (md5($subId . $transId . $reward . $secret) !== $signature) { echo "ERROR: Signature mismatch"; return; } ?>
Responding to a postback
- Echo
OKwhen a new transaction is credited successfully. - Echo
DUPif you've already processed thattransId— this stops AdGPTWall from retrying it.
AdGPTWall waits up to 60 seconds for a response. If your server times out or fails to respond, the postback is retried for up to 5 attempts over the following hours — so make sure transId is unique in your database to avoid double-crediting.
Full example
<?php $secret = ""; // Your Secret Key $userId = $_GET['subId'] ?? null; $transactionId = $_GET['transId'] ?? null; $points = $_GET['reward'] ?? null; $signature = $_GET['signature'] ?? null; $action = $_GET['status'] ?? null; // Validate the signature if (md5($userId . $transactionId . $points . $secret) !== $signature) { echo "ERROR: Signature mismatch"; return; } // action 1 = credit, action 2 = revoke if ($action == 2) { $points = -abs($points); } if (isNewTransaction($transactionId)) { creditUser($userId, $points, $transactionId); echo "OK"; } else { echo "DUP"; } ?>