DOCS
Sign in Get Started
documentation.adgptwall.com
📬

Getting Started

Last updated August 1, 2026

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.

  1. Go to the AdGPTWall publisher signup page.
  2. Fill in the registration form and submit it.
  3. 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.

  1. Log in to your AdGPTWall account.
  2. From the menu, go to Apps → Add New App.
  3. Fill in your app's details and click Create App.
📌 New apps go through a short review before they're approved — you won't be able to pull live offers until that's done.

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.

  1. Log in to your AdGPTWall account.
  2. From the menu, go to Apps → Manage Apps.
  3. 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:

Copy
<!-- 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

ParameterDescription
subIdYour unique identifier for the user who completed the offer.
transIdUnique ID for this transaction on AdGPTWall.
rewardPayout amount, in your app's currency units.
payout_usdPayout amount in USD.
signatureMD5 hash used to confirm the request came from AdGPTWall's servers.
status1 credits the reward, 2 reverses it (fraud or correction).
ipIP address of the user who completed the offer.
campaign_idID of the completed offer.
typeOffer type — Offer, Survey, PTC, or Shortlink.
countryISO2 country code the completion came from.
offer_nameName 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:

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

Copy
<?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 OK when a new transaction is credited successfully.
  • Echo DUP if you've already processed that transId — 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

Copy
<?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";
}

?>
📌 You don't need to add AdGPTWall's parameters to your postback URL manually — they're appended automatically for every call.
Was this page helpful?