User Based Offer API
General Concept
The user-based offer API was designed to be called by the client. You can insert a User ID and get all offers for this specific user. The response will be updated based on the user's progress to give the complete flexibility of visualization.
Target Group or Use Case: Use this API to display the (top) offers in your design. You can replace the offer wall integration with this API without changing anything in your backend.
Call the API
Call the Get Offers Endpoint to get an updated list of available offers for the user. These offers are already sorted by performance (score).
Example Response
{
"data": {
"offers": [
{
"anchor": "Earn Money Playing Games",
"app_metadata": {
"categories": [],
"screenshot_urls": [],
"video_urls": []
},
"categories": [
"CPA",
"Free",
"Lead Gen"
],
"click_url": "https://bitlabs.link/vc/naeXr2c/users/458671576/offers/698523?s2=bitburst%3Auser-based&s3=0dcafa81-716c-4981-9f34-55f9cb1b8d69&s4=&source_type=user_based_api&funnel_id=01JYKA5G603PKERB91DM7RJDCJ&ps2=rpm",
"confirmation_time": "Confirms Instantly",
"creatives": {
"images": {}
},
"description": "Play games, download apps, test website and do other things to earn money.",
"disclaimer": "*Points will appear as Pending for 2 days. Each person may redeem this offer only ONCE (1 time). This offer is presented to you by website or app on behalf of a third party merchant or sponsor (\"Merchant\"), which advises us when the offer is completed and a reward should be issued. website or app has not evaluated and does not endorse Merchant's views, policies, products or services, which you are encouraged to evaluate for yourself. Have questions? Please contact the website or app Help Center.",
"epc": "0.48",
"events": [
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Sign Up And Confirm Email",
"payable": true,
"payout": "3",
"points": "150",
"status": "",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "1a80d65a-33ee-4e8b-8105-ac33845777bd"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Download A Game And Return To The Game The Next Day.",
"payable": true,
"payout": "12",
"points": "720",
"status": "",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "f6060758-f6bd-4335-bc75-d1d7cdcc11ea"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Start 3 Offers.",
"payable": true,
"payout": "25",
"points": "1500",
"status": "",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "550ff9fd-b4bf-48e6-8c51-564718c906df"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Earn $5.",
"payable": true,
"payout": "30",
"points": "1800",
"status": "",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "edef1e7f-e805-4b23-9b21-13ba4f33dce7"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Make your first withdrawal.",
"payable": true,
"payout": "38",
"points": "2280",
"status": "",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "1719ec2e-ded7-4656-9057-05904a164824"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Withdraw an additional 25,000 coins.",
"payable": true,
"payout": "50",
"points": "3000",
"status": "",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "791f815e-718b-4825-9302-24c9981eaedc"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Withdraw an additional 50,000 coins.",
"payable": true,
"payout": "80",
"points": "4800",
"status": "",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "8efc1388-c9fd-4fe1-bc7f-9cae86f7f6b4"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Withdraw an additional 100,000 coins.",
"payable": true,
"payout": "100",
"points": "6000",
"status": "",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "97f1092d-21b9-45d2-b9f1-88d902563a03"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Withdraw an additional 250,000 coins.",
"payable": true,
"payout": "300",
"points": "18000",
"status": "",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "55bcba06-0042-453a-b44b-ada27fb47db6"
}
],
"funnel_id": "01JYKA5G603PKERB91DM7RJDCJ",
"icon_url": "https://main-p.agmcdn.com/Dujt36KvZ3sdu438RhTnDFQ9gTAW8J442XoAPL0Z.gif",
"id": 698523,
"impression_url": "https://prdgos4.com/v1/user-based-api/i?funnel_id=01JYKA5G603PKERB91DM7RJDCJ&wall_code=naeXr2c&user_id=458671576&aff_id=101768&offer_id=698523&position=1&source_type=user_based_api&ps2=rpm&s2=bitburst%3Auser-based&s3=0dcafa81-716c-4981-9f34-55f9cb1b8d69",
"is_game": false,
"is_sticky": false,
"lowest_cap_left": null,
"mobile_verification_required": false,
"offer_expires_at": "2025-07-25T10:29:33Z",
"pending_time": 2880,
"product_id": "01JEEGT93XYJCQS4SEFKDWV8DZ",
"product_name": "zzz-698523",
"requirements": "Register. Complete offers. Must complete within 30 days.",
"session_hours": 720,
"stats": {
"network_cpm": "20282"
},
"support_url": "https://wall.adgaterewards.com/offer/contact/naeXr2c/698523?s1=458671576",
"things_to_know": [
"Register.",
"Complete offers.",
"Must complete within 30 days."
],
"total_points": "38250",
"web_to_mobile": false,
"web_to_mobile_devices": []
}
],
"offerwall_code": "kfeJsA",
"started_offers": [
{
"anchor": "Alice's Dream",
"app_metadata": {
"app_id": "com.mergeland.alices.wonder.adventure",
"categories": [
"GAME_PUZZLE",
"GAME_CASUAL"
],
"screenshot_urls": [
"https://play-lh.googleusercontent.com/LiG1rrmDRqRQhfV51NUv89sshlxmzFeoyEho44PWP7hbIa-Z0D7MbX0D3w58AKaJXg=w1052-h592",
"https://play-lh.googleusercontent.com/6FbdkgBw2Y2KGboT_jLiLfz7iW6hLVUJXkK6BZwgwPsy-qzoBtG7jp0K6wUM5LnA6W8=w1052-h592",
"https://play-lh.googleusercontent.com/C0C8RnXD7KxoTcrFc6kfqnQF4tSBbA3iBT2OMJ2DAMG8YwtFkxLVByeVDabTinunYQ=w1052-h592",
"https://play-lh.googleusercontent.com/WHlAV55UXrnH4xmudH4TzHBbmCknKlv_hx0l_H4W9H4XPjpDmOiuGcYNtBfB2PWhe-k=w1052-h592",
"https://play-lh.googleusercontent.com/N5Qqgd6r05tWnF-kfdwIrnfrOmG3bSehI0Qsba1RIcWoQmNyo7nEAJumk4s4s_4MzA=w1052-h592",
"https://play-lh.googleusercontent.com/YDK1lMDImfDtECA0ZeFQF9Yhnv_2o4gtXfXaLVxJhd6ibE79AZo1j92BvvckHUcSa2ez=w1052-h592",
"https://play-lh.googleusercontent.com/7unAfwwcYL1QrsfyweBHVzCaPBJs2Dj5twSLDr8WfFnEC-LYwv6P7gJ1wddc_aAtt9Y=w1052-h592",
"https://play-lh.googleusercontent.com/YvkoNfppdOAy7rYCV6NDKdTH9K9Qmg2wSf3bSI8lAUQJTZk4F8juoBCrHFIz6Ag-3g=w1052-h592",
"https://play-lh.googleusercontent.com/KCsls3KMrnMEqB4Vpo9aJCzq2AMc7ivU9w8HOgMwW8yhlI8Px8myypvPbt2VOTNZKIc=w1052-h592",
"https://play-lh.googleusercontent.com/pK5AyzWJhHlrCwT9Cj3Cpp4c3AuDbP08Hkk2uN289ViPmI8hohpQ2Rs-x74iduRrnBc=w1052-h592",
"https://play-lh.googleusercontent.com/yj3VFumXpY0MmWRxz2K44OSzOPYA6EnY1Ot6im-ctPrcT5YzuCNC9Su8oVwmigOzPJ0=w1052-h592",
"https://play-lh.googleusercontent.com/KUpZLRMTz4wzyOza7jnWJbT4jCPNPcW63GiMXCD1pEpUl0Hq9SmPJOxNwD39UpGaOg=w1052-h592",
"https://play-lh.googleusercontent.com/P9HtoAfurR0xSCoQufdZQm9RXyAxuY7-Ijm8LUKnSbTwCibXmXdFVXcOiZGuOtzY5aQ=w1052-h592",
"https://play-lh.googleusercontent.com/BjrdIfs1vMklfNmmWB_G86ufVjeiHTiCzInxTsX8c4rmwtaydCJgupymGSo8iGfd95Y=w1052-h592",
"https://play-lh.googleusercontent.com/49RC5xr1yGUVU7y2qUrJfDRewhCoQpUj7SajiuySPYoJ6tqlK6Z3tWFE5e2mpgKPoY83=w1052-h592",
"https://play-lh.googleusercontent.com/YUxw0tEUvTjHg5NDCzXN797tGZZvJHInjub6O8K8UHoAIeVWjQsCnp43Ur1EOrJF0A=w1052-h592",
"https://play-lh.googleusercontent.com/OhvhRrNoCUzJSR_z0mciCQwitohQNxJ0Ya1EgqoZmCkz8wWame81O1UFnSU7_2cYg-8=w1052-h592",
"https://play-lh.googleusercontent.com/TzT8Hp-fPi2atexlLkV4iJQmRTj0EKSSKPBv2u7ao9rNnbIwnVl-dCpBDtAiJ8BnyXw=w1052-h592",
"https://play-lh.googleusercontent.com/U1Wl3uTJsFv6zAFwfZfSboYkpae6ZDfS1hSCyk235Qvye5Wp3LbLlH4HJuBOYpdkKYM=w1052-h592",
"https://play-lh.googleusercontent.com/9b-sFwgjjdzyeZaxUQ387ci4NIiqV_WT2-HDey2xa2F4iraOr9h6TA1cC41mi3czNqsn=w1052-h592",
"https://play-lh.googleusercontent.com/rdJwXme3X6ilmf-qAQf4fCBGi4bHP14l3kEY99I_9-Id6pYb4hqsvrBLgczUNyhUyXA=w1052-h592",
"https://play-lh.googleusercontent.com/0-2a7NWjnrOG0e4auQMJmzRCMlEfJZP2oli2GdXMMl_Gntg6CJoMPonWlYKeGLLOSw0=w1052-h592",
"https://play-lh.googleusercontent.com/Rqad6I9_Qgav-fN774C9cDBGDGbvBZ56vdCR6-HKbYekMx6RvTemMgmw26FCzlZzjEE=w1052-h592",
"https://play-lh.googleusercontent.com/leens5UsETwu-b1fi5ooYs3i6vaX0FA39eY1Q7tay92x_glzh0hlY_yDSYXHK76rHjH5=w1052-h592"
],
"video_urls": [
"https://www.youtube.com/embed/jzczfCYghd0?ps=play&vq=large&rel=0&autohide=1&showinfo=0"
]
},
"categories": [
"Android",
"CPE"
],
"completed": false,
"completed_events": 4,
"confirmation_time": "Confirms Instantly",
"continue_url": "https://play.google.com/store/apps/details?id=com.mergeland.alices.wonder.adventure",
"description": "Welcome to Alice's Dream: Merge Games, the best merge game! A magical world where you can merge, match, and build your way to create the most beautiful dreamland! Reach the listed goals within 30 days to earn!",
"disclaimer": "Points will appear as Pending for 30 days. Must enter valid sign-up information to earn Points. Each person may redeem this offer only ONCE (1 time). This offer is presented to you by website or app on behalf of a third party merchant or sponsor (\"Merchant\"), which advises us when the offer is completed and a reward should be issued. website or app has not evaluated and does not endorse Merchant's views, policies, products or services, which you are encouraged to evaluate for yourself. Have questions? Please contact the website or app Help Center.",
"events": [
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Install",
"payable": true,
"payout": "1.4",
"points": "0",
"status": "completed",
"ttc_minutes": 0,
"type": "flat",
"type_id": 1,
"uuid": "7dcbb700-6655-462f-ae0e-025e16acffbc"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Reach Level 7",
"payable": false,
"payout": "0",
"points": "0.04",
"status": "completed",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "65ac0f8a-6a6a-4989-854f-e31e52262ba7"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Purchase Piggy Bank $4.99",
"payable": false,
"payout": "0",
"points": "2.5",
"status": "viewed",
"ttc_minutes": 0,
"type": "flat",
"type_id": 3,
"uuid": "50d17be9-8641-4691-bfeb-a65cb384e91a"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Reach Level 10",
"payable": false,
"payout": "0",
"points": "0.15",
"status": "completed",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "ff5029a7-bd8f-4ab5-b53a-2298303eb164"
},
{
"display_type": "none",
"expires_at": 1749598714,
"multiple_conversions_allowed": false,
"name": "*Bonus Reward: Purchase any $9.99 package. Complete within 3 days",
"payable": false,
"payout": "0",
"points": "5",
"status": "viewed",
"ttc_minutes": 0,
"type": "flat",
"type_id": 3,
"uuid": "c65547cf-33f9-45be-af94-9d006430b6e4"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Reach Level 13",
"payable": false,
"payout": "0",
"points": "0.19",
"status": "viewed",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "d364aa20-6a61-479a-b786-53d2e6d4077a"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Purchase any $19.99 package",
"payable": false,
"payout": "0",
"points": "10",
"status": "viewed",
"ttc_minutes": 0,
"type": "flat",
"type_id": 3,
"uuid": "4bf2cdde-a7f9-4bde-81c2-67c54fa0bd05"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Reach Level 18",
"payable": false,
"payout": "0",
"points": "2",
"status": "viewed",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "e296a443-6b7b-45ac-a5f9-ae3ec00495dc"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Reach Level 20",
"payable": false,
"payout": "0",
"points": "3.5",
"status": "viewed",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "b7d278aa-7c7c-429d-a43e-6c4ff186ba5c"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Reach Level 25",
"payable": false,
"payout": "0",
"points": "9.5",
"status": "viewed",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "ff6b78c0-5217-4e20-a96e-b0ce38562ffa"
}
],
"has_pending_conversions": false,
"hours_left": 92,
"icon_url": "https://main-p.agmcdn.com/NHoEZhxR.jpg",
"id": 1671115,
"latest_date": "2025-06-27T14:46:44Z",
"points": "0.19",
"requirements": "Must be installing Alice's Dream for the first time to receive Points. In-app purchases and upgrades are available.",
"support_url": "https://wall.adgaterewards.com/contact/nqiYsGc/405235325/1671115",
"total_points": "32.879999999999995"
}
]
},
"status": "success",
"trace_id": "8e02758e4b14b7d0b89f36a073248afd"
}Required API Fields for an Optimal User Experience
Please ensure you review this guide. It outlines the required API fields that must be implemented to deliver a smooth user experience and to reduce customer complaints.
Impression Tracking for Improved Offer Ranking
To enhance the ranking accuracy of games and offers, we support impression tracking. By tracking impressions, we can make more intelligent and higher-performing ranking decisions for the User-Based Offer API.
To implement impression tracking, use the impression_url provided for each offer. When an offer is displayed on a user’s screen during a session, send a POST request to the associated impression_url.
"impression_url": "https://prdgos4.com/v1/user-based-api/i?funnel_id=01JWFJR2X4MNE6PC8YPA46XWA8&wall_code=nq2Wq2U&user_id=444278758&offer_id=698523&source_type=user_based_api&s2=bitburst%3Auser-based&s3=TESTUSER"This helps ensure rankings are based not only on interactions but also on actual user visibility, leading to better-optimized content delivery.
User Progress
The user based offer API returns the started_offers array, for all games a user has started. This array of offers also includes the status of each offer event. Use this information to display the user's progress and which events have been completed. If an offer has expired or been completed, it will no longer show in the started_offers array. We also advise taking a look at the history API.
Example of the started_offers array:
"started_offers": [
{
"anchor": "Alice's Dream",
"app_metadata": {
"app_id": "com.mergeland.alices.wonder.adventure",
"categories": [
"GAME_PUZZLE",
"GAME_CASUAL"
],
"screenshot_urls": [
"https://play-lh.googleusercontent.com/LiG1rrmDRqRQhfV51NUv89sshlxmzFeoyEho44PWP7hbIa-Z0D7MbX0D3w58AKaJXg=w1052-h592",
"https://play-lh.googleusercontent.com/6FbdkgBw2Y2KGboT_jLiLfz7iW6hLVUJXkK6BZwgwPsy-qzoBtG7jp0K6wUM5LnA6W8=w1052-h592",
"https://play-lh.googleusercontent.com/C0C8RnXD7KxoTcrFc6kfqnQF4tSBbA3iBT2OMJ2DAMG8YwtFkxLVByeVDabTinunYQ=w1052-h592",
"https://play-lh.googleusercontent.com/WHlAV55UXrnH4xmudH4TzHBbmCknKlv_hx0l_H4W9H4XPjpDmOiuGcYNtBfB2PWhe-k=w1052-h592",
"https://play-lh.googleusercontent.com/N5Qqgd6r05tWnF-kfdwIrnfrOmG3bSehI0Qsba1RIcWoQmNyo7nEAJumk4s4s_4MzA=w1052-h592",
"https://play-lh.googleusercontent.com/YDK1lMDImfDtECA0ZeFQF9Yhnv_2o4gtXfXaLVxJhd6ibE79AZo1j92BvvckHUcSa2ez=w1052-h592",
"https://play-lh.googleusercontent.com/7unAfwwcYL1QrsfyweBHVzCaPBJs2Dj5twSLDr8WfFnEC-LYwv6P7gJ1wddc_aAtt9Y=w1052-h592",
"https://play-lh.googleusercontent.com/YvkoNfppdOAy7rYCV6NDKdTH9K9Qmg2wSf3bSI8lAUQJTZk4F8juoBCrHFIz6Ag-3g=w1052-h592",
"https://play-lh.googleusercontent.com/KCsls3KMrnMEqB4Vpo9aJCzq2AMc7ivU9w8HOgMwW8yhlI8Px8myypvPbt2VOTNZKIc=w1052-h592",
"https://play-lh.googleusercontent.com/pK5AyzWJhHlrCwT9Cj3Cpp4c3AuDbP08Hkk2uN289ViPmI8hohpQ2Rs-x74iduRrnBc=w1052-h592",
"https://play-lh.googleusercontent.com/yj3VFumXpY0MmWRxz2K44OSzOPYA6EnY1Ot6im-ctPrcT5YzuCNC9Su8oVwmigOzPJ0=w1052-h592",
"https://play-lh.googleusercontent.com/KUpZLRMTz4wzyOza7jnWJbT4jCPNPcW63GiMXCD1pEpUl0Hq9SmPJOxNwD39UpGaOg=w1052-h592",
"https://play-lh.googleusercontent.com/P9HtoAfurR0xSCoQufdZQm9RXyAxuY7-Ijm8LUKnSbTwCibXmXdFVXcOiZGuOtzY5aQ=w1052-h592",
"https://play-lh.googleusercontent.com/BjrdIfs1vMklfNmmWB_G86ufVjeiHTiCzInxTsX8c4rmwtaydCJgupymGSo8iGfd95Y=w1052-h592",
"https://play-lh.googleusercontent.com/49RC5xr1yGUVU7y2qUrJfDRewhCoQpUj7SajiuySPYoJ6tqlK6Z3tWFE5e2mpgKPoY83=w1052-h592",
"https://play-lh.googleusercontent.com/YUxw0tEUvTjHg5NDCzXN797tGZZvJHInjub6O8K8UHoAIeVWjQsCnp43Ur1EOrJF0A=w1052-h592",
"https://play-lh.googleusercontent.com/OhvhRrNoCUzJSR_z0mciCQwitohQNxJ0Ya1EgqoZmCkz8wWame81O1UFnSU7_2cYg-8=w1052-h592",
"https://play-lh.googleusercontent.com/TzT8Hp-fPi2atexlLkV4iJQmRTj0EKSSKPBv2u7ao9rNnbIwnVl-dCpBDtAiJ8BnyXw=w1052-h592",
"https://play-lh.googleusercontent.com/U1Wl3uTJsFv6zAFwfZfSboYkpae6ZDfS1hSCyk235Qvye5Wp3LbLlH4HJuBOYpdkKYM=w1052-h592",
"https://play-lh.googleusercontent.com/9b-sFwgjjdzyeZaxUQ387ci4NIiqV_WT2-HDey2xa2F4iraOr9h6TA1cC41mi3czNqsn=w1052-h592",
"https://play-lh.googleusercontent.com/rdJwXme3X6ilmf-qAQf4fCBGi4bHP14l3kEY99I_9-Id6pYb4hqsvrBLgczUNyhUyXA=w1052-h592",
"https://play-lh.googleusercontent.com/0-2a7NWjnrOG0e4auQMJmzRCMlEfJZP2oli2GdXMMl_Gntg6CJoMPonWlYKeGLLOSw0=w1052-h592",
"https://play-lh.googleusercontent.com/Rqad6I9_Qgav-fN774C9cDBGDGbvBZ56vdCR6-HKbYekMx6RvTemMgmw26FCzlZzjEE=w1052-h592",
"https://play-lh.googleusercontent.com/leens5UsETwu-b1fi5ooYs3i6vaX0FA39eY1Q7tay92x_glzh0hlY_yDSYXHK76rHjH5=w1052-h592"
],
"video_urls": [
"https://www.youtube.com/embed/jzczfCYghd0?ps=play&vq=large&rel=0&autohide=1&showinfo=0"
]
},
"categories": [
"Android",
"CPE"
],
"completed": false,
"completed_events": 4,
"confirmation_time": "Confirms Instantly",
"continue_url": "https://play.google.com/store/apps/details?id=com.mergeland.alices.wonder.adventure",
"description": "Welcome to Alice's Dream: Merge Games, the best merge game! A magical world where you can merge, match, and build your way to create the most beautiful dreamland! Reach the listed goals within 30 days to earn!",
"disclaimer": "Points will appear as Pending for 30 days. Must enter valid sign-up information to earn Points. Each person may redeem this offer only ONCE (1 time). This offer is presented to you by website or app on behalf of a third party merchant or sponsor (\"Merchant\"), which advises us when the offer is completed and a reward should be issued. website or app has not evaluated and does not endorse Merchant's views, policies, products or services, which you are encouraged to evaluate for yourself. Have questions? Please contact the website or app Help Center.",
"events": [
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Install",
"payable": true,
"payout": "1.4",
"points": "0",
"status": "completed",
"ttc_minutes": 0,
"type": "flat",
"type_id": 1,
"uuid": "7dcbb700-6655-462f-ae0e-025e16acffbc"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Reach Level 7",
"payable": false,
"payout": "0",
"points": "0.04",
"status": "completed",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "65ac0f8a-6a6a-4989-854f-e31e52262ba7"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Purchase Piggy Bank $4.99",
"payable": false,
"payout": "0",
"points": "2.5",
"status": "viewed",
"ttc_minutes": 0,
"type": "flat",
"type_id": 3,
"uuid": "50d17be9-8641-4691-bfeb-a65cb384e91a"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Reach Level 10",
"payable": false,
"payout": "0",
"points": "0.15",
"status": "completed",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "ff5029a7-bd8f-4ab5-b53a-2298303eb164"
},
{
"display_type": "none",
"expires_at": 1749598714,
"multiple_conversions_allowed": false,
"name": "*Bonus Reward: Purchase any $9.99 package. Complete within 3 days",
"payable": false,
"payout": "0",
"points": "5",
"status": "viewed",
"ttc_minutes": 0,
"type": "flat",
"type_id": 3,
"uuid": "c65547cf-33f9-45be-af94-9d006430b6e4"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Reach Level 13",
"payable": false,
"payout": "0",
"points": "0.19",
"status": "viewed",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "d364aa20-6a61-479a-b786-53d2e6d4077a"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Purchase any $19.99 package",
"payable": false,
"payout": "0",
"points": "10",
"status": "viewed",
"ttc_minutes": 0,
"type": "flat",
"type_id": 3,
"uuid": "4bf2cdde-a7f9-4bde-81c2-67c54fa0bd05"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Reach Level 18",
"payable": false,
"payout": "0",
"points": "2",
"status": "viewed",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "e296a443-6b7b-45ac-a5f9-ae3ec00495dc"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Reach Level 20",
"payable": false,
"payout": "0",
"points": "3.5",
"status": "viewed",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "b7d278aa-7c7c-429d-a43e-6c4ff186ba5c"
},
{
"display_type": "none",
"expires_at": 0,
"multiple_conversions_allowed": false,
"name": "Reach Level 25",
"payable": false,
"payout": "0",
"points": "9.5",
"status": "viewed",
"ttc_minutes": 0,
"type": "flat",
"type_id": 2,
"uuid": "ff6b78c0-5217-4e20-a96e-b0ce38562ffa"
}
],
"has_pending_conversions": false,
"hours_left": 92,
"icon_url": "https://main-p.agmcdn.com/NHoEZhxR.jpg",
"id": 1671115,
"latest_date": "2025-06-27T14:46:44Z",
"points": "0.19",
"requirements": "Must be installing Alice's Dream for the first time to receive Points. In-app purchases and upgrades are available.",
"support_url": "https://wall.adgaterewards.com/contact/nqiYsGc/405235325/1671115",
"total_points": "32.879999999999995"
}
]Another way to track a user’s progress, starting from the initial click, is by using the Get User History endpoint. This endpoint provides a record of all offers a user has interacted with, including those they have only clicked on but not yet completed.
Handling multi-conversion events
Multi-conversion events are events that a user can complete multiple times, depending on specific rules that define how frequently and how often conversions are allowed.
To determine if an event supports multiple conversions, check the events.#.multiple_conversions_allowed field.
The configuration for multi-conversion rules is defined in the multiple_conversions_rules object, as shown below:
"multiple_conversions_rules": {
"every_y_seconds": 2678400,
"rule_type": "INTERVAL",
"x_conversions": 5
}The rule_type field determines how multiple conversions are handled. The following values are supported:
- UNLIMITED: The user can complete the event an unlimited number of times.
- TOTAL_CONVERSIONS: The user can complete the event up to
x_conversionstimes in total. - INTERVAL: The user can complete the event up to
x_conversionstimes everyevery_y_secondsinterval.
Note: The every_y_seconds field is only applicable when rule_type is set to INTERVAL.
Sticky Offers Field
Overview
The sticky flag is a field that is returned for each offer in the BitLabs User-Based Offer API. It is a boolean value and can be either true or false. The purpose of this flag is to indicate whether an offer should be promoted or highlighted on the offerwall.
When the sticky field is set to true, the offer should be displayed more prominently. Ideally, it is placed at the top of the offer list and visually distinguished from other offers, for example by adding a badge, a different background, or a label such as “Popular.” This helps draw user attention to offers that are considered more relevant or valuable.
If the sticky field is set to false, the offer is treated like any regular offer and does not require special styling or prioritization.
Suppression List
The suppression list ensures that users do not see offers for apps or games they have already installed. To enable suppression, BitLabs uses the Mobile Advertising ID (MAID) to identify previously installed apps on a user’s device.
Publishers can store a user’s MAID by calling the following endpoint:
POST https://api.bitlabs.ai/v1/client/user/maidAdditional documentation about the endpoint can be found here.
Once the MAID is set, BitLabs automatically excludes offers for apps that the user has already interacted with, if the advertiser provides the data. When fetching offers through the User-Based Offer API, these suppression rules are applied automatically, ensuring that only new and relevant offers are returned to the user.
Passing Additional Tracking Parameters
To improve tracking accuracy and attribution reliability, the User-Based Offer API supports a set of optional query parameters. These parameters allow you to pass additional device and user context, which will be forwarded to downstream networks via the offer click URLs.
Overview
When these parameters are included in your API request:
- They are automatically appended to each offer’s
click_urlin the response - They are forwarded to downstream partners for improved tracking and attribution
- They remain fully optional and do not affect existing integrations
Supported Query Parameters
| Parameter | Description | Platform |
|---|---|---|
ios_id | Apple Identifier for Advertisers (IDFA). Only available if ATT is granted. | iOS |
android_advertiser_id | Google Advertising ID (GAID) | Android |
idfv | Apple Identifier for Vendors | iOS |
u_ip | User IPv4 address from the native network call | All |
device_name | Device model (e.g., iPhone17,2) | All |
os_version | Operating system version (e.g., 18.3.1) | All |
ua | User Agent string including OS name and version | All |
Example Request
GET /offers?offer_id={offer_id}&user_id={user_id}&ios_id={IDFA}&android_advertiser_id={GAID}&idfv={IDFV}&u_ip={IPV4_ADDRESS}&device_name={MODEL}&os_version={VERSION}&ua={USER_AGENT}Behavior
- All parameters are optional
- Only parameters included in the request will be appended to the
click_url
Platform-Specific Notes
ios_idshould only be sent for iOS devices and when App Tracking Transparency (ATT) permission is grantedandroid_advertiser_idshould only be sent for Android devicesidfvis specific to iOS devicesu_ipmust be a valid IPv4 address
Updated 2 days ago
