Getting Started with Offerwall
<span class="wysiwyg-underline">About Offerwall Monetization:</span>- You can monetize your non-paying users with our incent offerwall
- Kindly go to https://wall.cpidroid.com/offer/69o8-1-3ghh?uid=USER_IDENTIFIER to experience it live.
- Once you become publisher, you can get you own unique offerwall link.
- Your end users will have to complete tasks / surveys / offers in CPIDroid offerwall and you will get payouts, you can pass on a part of that to the end user as some kind of reward.
- You can setup postbacks to get server to server callbacks when user complete a task, to automate rewarding your end users.<span class="wysiwyg-underline"><span style="text-decoration-line: underline;">Creating Offerwall Placement:-</span></span>- Getting Started with Placements : https://thesmartware.zendesk.com/hc/en-us/articles/15591044527257-Getting-Started-with-Placements<span class="wysiwyg-underline">Preparing your Offerwall URL:-</span>- The URL template for our web offerwall looks like this: ```
https://wall.cpidroid.com/offer/[PLACEMENT_ID]?uid=USER_IDENTIFIER&gaid={gaid}&idfa={idfa}
- URL Parameters:
<table border="1" style="border-collapse: collapse; width: 100%;"><tbody><tr><td style="width: 33.3333%;">**Parameter**</td><td style="width: 22.1381%;"> </td><td style="width: 44.5285%;">**Description**</td></tr><tr><td style="width: 33.3333%;">\[PLACEMENT\_ID\]</td><td style="width: 22.1381%;"> </td><td style="width: 44.5285%;">Replace it with the placement id, find it at <https://app.cpidroid.com/placement/manage?dashboard=publisher> </td></tr><tr><td style="width: 33.3333%;">{gaid}</td><td style="width: 22.1381%;"> </td><td style="width: 44.5285%;">Google Advertising ID (GAID)
<span class="wysiwyg-font-size-medium">_Resource: [How to fetch GAID in Android?](https://developer.android.com/training/articles/ad-id)_</span></td></tr><tr><td style="width: 33.3333%;">{idfa}</td><td style="width: 22.1381%;"> </td><td style="width: 44.5285%;">Apple Advertising ID (IDFA)
<span class="wysiwyg-font-size-medium">_Resource: [How to fetch IDFA in iOS?](https://developer.apple.com/documentation/adsupport/asidentifiermanager/1614151-advertisingidentifier)_</span></td></tr><tr><td style="width: 33.3333%;">USER\_IDENTIFIER</td><td style="width: 22.1381%;"> </td><td style="width: 44.5285%;">Replace it with a unique identifier per user.</td></tr></tbody></table>
- Example: Usage in Android WebView
If you're developing an app built upon native Android components, you can load the offerwall like this:-**layout.xml:**
<span class="tag"><WebView</span>
<span class="atn">android:id</span><span class="pun">=</span><span class="atv">"@+id/myWebViewId"</span>
<span class="atn">android:layout_width</span><span class="pun">=</span><span class="atv">"match_parent"</span>
<span class="atn">android:layout_height</span><span class="pun">=</span><span class="atv">"match_parent"</span><span class="tag">/></span>
undefined**MyOfferwall.java:**
<span class="pun">...</span>
<span class="typ">String</span><span class="pln"> offerwallUrl </span><span class="pun">=</span> <span class="str">"https://wall.cpidroid.com/offer/[PLACEMENT_ID]?gaid="</span><span class="pun">+</span><span class="pln">adInfo</span><span class="pun">.</span><span class="pln">getId</span><span class="pun">()+</span><span class="str">"&gaid_limited="</span><span class="pun">+</span><span class="pln">adInfo</span><span class="pun">.</span><span class="pln">isLimitAdTrackingEnabled</span><span class="pun">()+</span><span class="str">"&uid=USER_IDENTIFIER"</span><span class="pun">;</span>
<span class="com">// NOTE: check this for information on how to obtain the GAID -> https://developer.android.com/training/articles/ad-id</span>
<span class="typ">WebView</span><span class="pln"> myWebView </span><span class="pun">=</span> <span class="pun">(</span><span class="typ">WebView</span><span class="pun">)</span><span class="pln"> findViewById</span><span class="pun">(</span><span class="pln">R</span><span class="pun">.</span><span class="pln">id</span><span class="pun">.</span><span class="pln">myWebViewId</span><span class="pun">);</span><span class="pln">
myWebView</span><span class="pun">.</span><span class="pln">getSettings</span><span class="pun">().</span><span class="pln">setJavaScriptEnabled</span><span class="pun">(</span><span class="kwd">true</span><span class="pun">);</span><span class="pln">
myWebView</span><span class="pun">.</span><span class="pln">setWebViewClient</span><span class="pun">(</span><span class="kwd">new</span> <span class="typ">WebViewClient</span><span class="pun">()</span> <span class="pun">{</span>
<span class="lit">@Override</span>
<span class="kwd">public</span> <span class="kwd">boolean</span><span class="pln"> shouldOverrideUrlLoading</span><span class="pun">(</span><span class="typ">WebView</span><span class="pln"> view</span><span class="pun">,</span> <span class="typ">String</span><span class="pln"> url</span><span class="pun">)</span> <span class="pun">{</span>
<span class="kwd">if</span><span class="pun">(</span> <span class="typ">URLUtil</span><span class="pun">.</span><span class="pln">isNetworkUrl</span><span class="pun">(</span><span class="pln">url</span><span class="pun">)</span> <span class="pun">)</span> <span class="pun">{</span>
<span class="kwd">return</span> <span class="kwd">false</span><span class="pun">;</span>
<span class="pun">}</span>
<span class="kwd">try</span> <span class="pun">{</span>
<span class="typ">Intent</span><span class="pln"> intent </span><span class="pun">=</span> <span class="kwd">new</span> <span class="typ">Intent</span><span class="pun">(</span><span class="typ">Intent</span><span class="pun">.</span><span class="pln">ACTION_VIEW</span><span class="pun">,</span> <span class="typ">Uri</span><span class="pun">.</span><span class="pln">parse</span><span class="pun">(</span><span class="pln">url</span><span class="pun">));</span><span class="pln">
startActivity</span><span class="pun">(</span><span class="pln"> intent </span><span class="pun">);</span>
<span class="pun">}</span> <span class="kwd">catch</span> <span class="pun">(</span><span class="typ">Exception</span><span class="pln"> e</span><span class="pun">)</span> <span class="pun">{</span>
<span class="kwd">return</span> <span class="kwd">false</span><span class="pun">;</span>
<span class="pun">}</span>
<span class="kwd">return</span> <span class="kwd">true</span><span class="pun">;</span>
<span class="pun">}</span>
<span class="pun">});</span><span class="pln">
myWebView</span><span class="pun">.</span><span class="pln">loadUrl</span><span class="pun">(</span><span class="pln">offerwallUrl</span><span class="pun">);</span>
**Attention:**Make sure you don't forget to enable Javascript for your WebView!**<span class="wysiwyg-underline"><span style="text-decoration-line: underline;">Adding your Callback URL:-</span></span>**<div><div class="css-175oi2r r-1ro0kt6 r-16y2uox r-1wbh5a2 r-18u37iz r-1777fci" data-rnwr1490-1777fci="true" data-rnwr700-i023vh-1777fci="true" data-rnwrdesktop-1q6rxnj="true"><div class="css-175oi2r r-1ro0kt6 r-16y2uox r-1wbh5a2 r-ecifi"><div class="css-175oi2r" data-rnwr700-1ow6zhx-="true" data-rnwrdesktop-13lvk87="true"><div class="css-175oi2r"><div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1mlwlqe r-eqz5dr r-1q142lx r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-bnwqim r-417010 r-1yzf0co r-tskmnb r-xd6kpl" data-key="262b8a5286ef4056b7f22b92ed60d624"><div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-eqz5dr r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-bnwqim r-417010 r-1ro0kt6 r-16y2uox r-1wbh5a2" data-block-content="262b8a5286ef4056b7f22b92ed60d624">- <span data-slate-fragment="JTdCJTIyb2JqZWN0JTIyJTNBJTIyZG9jdW1lbnQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMllvdSUyMGNhbiUyMGNvbmZpZ3VyZSUyMGElMjBjb252ZXJzaW9uJTIwY2FsbGJhY2slMjBVUkwlMjBpbiUyMG91ciUyMHB1Ymxpc2hlciUyMGRhc2hib2FyZC4lNUNuJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTVEJTJDJTIya2V5JTIyJTNBJTIyODlhNzNiMGQ2YmI1NGExODhjNjlkNmE4MWQ3ZWQ3NjElMjIlN0QlNUQlMkMlMjJrZXklMjIlM0ElMjJkZDQ1MTI2ZDYwNTI0MjA3YmE4ODRiYzk4ZGI2OTBhYSUyMiU3RCU1RCUyQyUyMmtleSUyMiUzQSUyMjZiMmQzYTMyZDc0YzRiNDNiNzUxODdmY2NmMDNjNTgyJTIyJTdE">You can configure a conversion callback URL from [publisher dashboard](https://app.cpidroid.com/?dashboard=publisher).</span>
- While editing a placement at <https://app.cpidroid.com/placement/manage>
- You should be able to see option to add a callback url.**<span class="wysiwyg-underline"><span style="text-decoration-line: underline;">How to Prepare your Postback URL?</span></span>**</div></div></div></div></div></div></div><div><div class="css-175oi2r r-1ro0kt6 r-16y2uox r-1wbh5a2 r-18u37iz r-1777fci" data-rnwr1490-1777fci="true" data-rnwr700-i023vh-1777fci="true" data-rnwrdesktop-1q6rxnj="true"><div class="css-175oi2r r-1ro0kt6 r-16y2uox r-1wbh5a2 r-ecifi"><div class="css-175oi2r" data-rnwr700-1ow6zhx-="true" data-rnwrdesktop-13lvk87="true"><div class="css-175oi2r"><div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1mlwlqe r-eqz5dr r-1q142lx r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-bnwqim r-417010 r-1yzf0co r-tskmnb r-xd6kpl" data-key="262b8a5286ef4056b7f22b92ed60d624"><div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-eqz5dr r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-bnwqim r-417010 r-1ro0kt6 r-16y2uox r-1wbh5a2" data-block-content="262b8a5286ef4056b7f22b92ed60d624">- Here is an example of how an ideal postbacks url should look:-
- A typical conversion callback sent by our server will look like this:-
https://your-server.com/callback?network=cpidroid&offer_id=123456&payout_vc=1500&uid=<span data-slate-fragment="JTdCJTIyb2JqZWN0JTIyJTNBJTIyZG9jdW1lbnQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJjb2RlLWxpbmUlMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMnVzZXJuYW1lJTIyJTJDJTIybWFya3MlMjIlM0ElNUIlNUQlMkMlMjJzZWxlY3Rpb25zJTIyJTNBJTVCJTVEJTdEJTVEJTJDJTIya2V5JTIyJTNBJTIyN2YzOTQ1OTYwMGU2NGIyOTk4NWUzYjE5ZDQ4ZmZiMjAlMjIlN0QlNUQlMkMlMjJrZXklMjIlM0ElMjI5OWI0NmIxMTdmN2M0OTA5OTA4YjRkNzRiOTE0M2UzMyUyMiU3RCU1RCUyQyUyMmtleSUyMiUzQSUyMmJlNGM4MzZjZmJhMjRmYWU4MGRmMTEzZGIxNDFhYWRjJTIyJTdE">username</span>&payout_usd=1.5
<span class="wysiwyg-font-size-medium">_Note: This assumes you set uid to**username**in the original Offerwall URL for that user, the currency conversion rate in your placement was 1000 per $1 and the user completed an offer with a $1.5 payout._</span>
<div data-slate-fragment="JTdCJTIyb2JqZWN0JTIyJTNBJTIyZG9jdW1lbnQlMjIlMkMlMjJkYXRhJTIyJTNBJTdCJTdEJTJDJTIybm9kZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJibG9jayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJwYXJhZ3JhcGglMjIlMkMlMjJpc1ZvaWQlMjIlM0FmYWxzZSUyQyUyMmRhdGElMjIlM0ElN0IlN0QlMkMlMjJub2RlcyUyMiUzQSU1QiU3QiUyMm9iamVjdCUyMiUzQSUyMnRleHQlMjIlMkMlMjJsZWF2ZXMlMjIlM0ElNUIlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMkltcG9ydGFudCUzQSUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTdCJTIyb2JqZWN0JTIyJTNBJTIybWFyayUyMiUyQyUyMnR5cGUlMjIlM0ElMjJib2xkJTIyJTJDJTIyZGF0YSUyMiUzQSU3QiU3RCU3RCU1RCUyQyUyMnNlbGVjdGlvbnMlMjIlM0ElNUIlNUQlN0QlMkMlN0IlMjJvYmplY3QlMjIlM0ElMjJsZWFmJTIyJTJDJTIydGV4dCUyMiUzQSUyMiUyMFlvdXIlMjBzZXJ2ZXIlMjBtdXN0JTIwYWx3YXlzJTIwcmVwbHklMjB3aXRoJTIwYW4lMjBIVFRQJTIwMjAwJTIwc3RhdHVzJTIwY29kZSUyMHRvJTIwb3VyJTIwcG9zdGJhY2tzLiUyME90aGVyd2lzZSUyMHdlJTIwd2lsbCUyMHJlc2VuZCUyMHRoZSUyMHBvc3RiYWNrJTIwMTIlMjB0aW1lcyUyMG92ZXIlMjBhJTIwc3BhbiUyMG9mJTIwb25lJTIwaG91ciUyMGJlZm9yZSUyMGdpdmluZyUyMHVwLiUyMiUyQyUyMm1hcmtzJTIyJTNBJTVCJTVEJTJDJTIyc2VsZWN0aW9ucyUyMiUzQSU1QiU1RCU3RCU1RCUyQyUyMmtleSUyMiUzQSUyMjJkZWEwZjRjNjViODQzZmI5ZTYyNWJhNWY2MDg2MGMxJTIyJTdEJTVEJTJDJTIya2V5JTIyJTNBJTIyZDMxODgzYjcyZTg2NDE3MDhlMzEzNWVjYTExYjllNzUlMjIlN0QlNUQlMkMlMjJrZXklMjIlM0ElMjI4MjMzYTE2NzcwZGI0ZTUwYjQ3MWU1ODhlMDUyOTI1NyUyMiU3RA=="><div class="css-175oi2r r-1ro0kt6 r-16y2uox r-1wbh5a2 r-18u37iz r-1777fci" data-rnwr1490-1777fci="true" data-rnwr700-i023vh-1777fci="true" data-rnwrdesktop-1q6rxnj="true"><div class="css-175oi2r r-1ro0kt6 r-16y2uox r-1wbh5a2 r-ecifi"><div class="css-175oi2r" data-rnwr700-1ow6zhx-="true" data-rnwrdesktop-13lvk87="true"><div class="css-175oi2r"><div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1mlwlqe r-eqz5dr r-1q142lx r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-bnwqim r-417010 r-1yzf0co r-95jzfe r-1l7z4oj" data-key="bde15411f0384943a9b3687e13be0572"><div class="r-1oszu61 r-1phboty r-1yadl64 r-deolkf r-6koalj r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-417010 r-1ro0kt6 r-16y2uox r-1wbh5a2 r-1vckr1u r-119zq30 r-17gur6a r-11g3r6m r-bnwqim r-13qz1uu r-18u37iz" data-block-content="bde15411f0384943a9b3687e13be0572"><div class="css-175oi2r r-1ro0kt6 r-16y2uox r-1wbh5a2"><div class="css-175oi2r"><div class="css-175oi2r"><div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-1mlwlqe r-eqz5dr r-1q142lx r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-bnwqim r-417010 r-1yzf0co r-95jzfe r-1l7z4oj" data-key="ab1386902d4348c1a33b3049f6391bd0"><div class="r-1oszu61 r-1xc7w19 r-1phboty r-1yadl64 r-deolkf r-6koalj r-eqz5dr r-crgep1 r-ifefl9 r-bcqeeo r-t60dpp r-bnwqim r-417010 r-1ro0kt6 r-16y2uox r-1wbh5a2" data-block-content="ab1386902d4348c1a33b3049f6391bd0"><div class="css-1rynq56 r-gg6oyi r-ubezar r-16dba41 r-135wba7 r-1nf4jbm r-fdjqy7 r-1xnzce8" dir="auto"><span class="wysiwyg-color-red" data-key="6e2c3bae56bd4247bc078dadc70edab2">**Important:**Your server must always reply with an**HTTP 200 status code**to our callbacks. Otherwise we will assume something went wrong with your server and send an automated email alert to you with technical details. You can always re-send postback from your publisher dashboard.</span></div><div class="css-1rynq56 r-gg6oyi r-ubezar r-16dba41 r-135wba7 r-1nf4jbm r-fdjqy7 r-1xnzce8" dir="auto"> </div><div class="css-1rynq56 r-gg6oyi r-ubezar r-16dba41 r-135wba7 r-1nf4jbm r-fdjqy7 r-1xnzce8" dir="auto">**<span class="wysiwyg-underline">Available Macros for Callback URLs:-</span>**</div><div class="css-1rynq56 r-gg6oyi r-ubezar r-16dba41 r-135wba7 r-1nf4jbm r-fdjqy7 r-1xnzce8" dir="auto"> </div><div class="css-1rynq56 r-gg6oyi r-ubezar r-16dba41 r-135wba7 r-1nf4jbm r-fdjqy7 r-1xnzce8" dir="auto"><table border="1" style="border-collapse: collapse; width: 100.143%; height: 363px;"><tbody><tr style="height: 22px;"><td style="width: 33.3333%; text-align: center;">**Variable**</td><td style="width: 33.3333%; height: 22px;">**Type**</td><td style="width: 33.3333%; height: 22px;">**Description**</td></tr><tr><td style="width: 33.3333%; text-align: center;">{offer\_id}</td><td style="width: 33.3333%;"> </td><td style="width: 33.3333%;">Offer ID</td></tr><tr style="height: 22px;"><td style="width: 33.3333%; text-align: center;">{offer\_name}</td><td style="width: 33.3333%; height: 22px;"> </td><td style="width: 33.3333%; height: 22px;">Offer Name</td></tr><tr style="height: 44px;"><td style="width: 33.3333%; text-align: center;">{payout\_vc}</td><td style="width: 33.3333%; height: 44px;"> </td><td style="width: 33.3333%; height: 44px;">Payout in equivalent Virtual Currency</td></tr><tr><td style="width: 33.3333%; text-align: center;">{payout\_usd}</td><td style="width: 33.3333%;"> </td><td style="width: 33.3333%;">Payout in equivalent USD Currency</td></tr><tr><td style="width: 33.3333%; text-align: center;">{uid}</td><td style="width: 33.3333%;"> </td><td style="width: 33.3333%;">USER\_IDENTIFIER</td></tr><tr><td style="width: 33.3333%; text-align: center;">{sub\_id}</td><td style="width: 33.3333%;"> </td><td style="width: 33.3333%;">SUB\_ID</td></tr><tr><td style="width: 33.3333%; text-align: center;">{ip}</td><td style="width: 33.3333%;"> </td><td style="width: 33.3333%;">User IP</td></tr><tr><td style="width: 33.3333%; text-align: center;">{txn\_id}</td><td style="width: 33.3333%;"> </td><td style="width: 33.3333%;">Unique Conversion Transaction ID</td></tr></tbody></table>
<span class="wysiwyg-underline">Notice:
</span><span style="box-sizing: border-box; font-weight: bolder; color: #333333; font-family: -apple-system, BlinkMacSystemFont, ' Segoe UI' , Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: #ffffff; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">We have migrated to GitBook:-</span>[ Getting Started with Offerwall ](https://docs.smartxaas.io/cpidroid/publisher/publisher-api/getting-started-with-offerwall)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
</div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
Updated on: 03/02/2026
Thank you!
