Adfleetmedia Introduction

What is Adfleetmedia?

Adfleetmedia is an Exclusive Offerwall that gives advertisers the ability to run incentivized campaigns and gives the ability to publishers to integrate our Offerwall on their websites/apps.

How does the Offerwall works?

Users can earn virtual currency within your app or website. The Offerwall will show a list of offers to the users to earn virtual currency by completing offers, surveys, and many other tasks.

Now it's time for integration!

Our Offerwall is simply to integrate,just follow the following steps below.

Integration

Our Exclusive Offerwall enables users to benefit from incentives and rewards thanks to segmented, automatically translated ads.



Adfleetmedia Offerwall will adapt to any screen size and will show offers depending on the user's device and location

  1. Click on "Placements" on the left menu
  2. From the placements list, you can get your API Key and Secret Key, anyway if you click on the link icon, you'll get the full integration link.

Example:

    
      <iframe style="width:100%; height:800px; border:0; padding:0; margin:0;" scrolling="yes" "frameborder="0" src="https://medioot.com/offer/[API_KEY]/[USER_ID]">"></iframe>
    
  

You'll need to replace [API_KEY] with your API Key and the [USER_ID] with the unique identifier code of the user of your site who is viewing the wall.

After this, you are ready to go and test the postback from the placement section, refer to the postback information below on the next section!

Postback Information

Whenever a user completes an offer, we'll make a call to the Postback URL that you indicated in your app attaching all the information that you will need to credit your users.

Our server will make an HTTP GET request to your server including all the following parameters:

Parameter Description
subId The unique identifier for the user who completed the offer.
transId Unique identification code of the transaction made by your user on Medioot.
reward The amount of the reward that the user earned for completing the offer.
payout The offer payour in $
signature MD5 hash that can be used to verify that the call has been made from our servers
status Determines whether to add or subtract the amount of the reward. "1" is when the virtual currency should be added to the user and "2" when it should be subtracted. This may be because the advertiser has canceled the user's transaction, either because he/she committed fraud or because it has been a mistake entering the data needed to complete the campaign
userIp The user's IP Address who completed the action.
offerName The Name of a completed offer.
offer type Offers/Surveys/PTC/Shortlink.
country Country (ISO2 Form) from the lead comes
uuid Unique identification code of the click made by your user on Adfleetmedia

"Rewards" and "Payout" parameters are always absolute values, you will need to check the "Status" parameter to see if you need to add or subtract that amount from your users

Custom Postback Parameters

If you would like to receive custom parameter names in your postbacks, you can specify them in the postback URL like the following example,

                            
                            https://postback.example.com/?custom={subId2}&nameOfCampaign={campaign_name}
                            
                        

You can use any of the parameters from the "Postbacks Parameters" table. You will need to put them between { }

Security

You should verify the signature received in the postback to ensure that the call comes from our servers. The signature parameter should match the MD5 of

                    
                    subid, transactionid, reward secret
                    
                

You can find your secret in your app dashboard.The formula to be checked is as follows:

    
     <?php

                $secret = ""; //

                $subId = isset($_GET['subId']) ? $_GET['subId'] : null;
                $transId = isset($_GET['transId']) ? $_GET['transId'] : null;
                $reward = isset($_GET['reward']) ? $_GET['reward'] : null;
                $signature = isset($_GET['signature']) ? $_GET['signature'] : null;

                // validate signature
                if(md5($subId.$transId.$reward.$secret) != $signature)
                {
                    echo "ERROR: Signature doesn't match";
                    return;
                }

                ? >
    
  

Postback Response

Our server will expect the following answers:

  • -"OK" when you receive a new transaction
  • -"DUP" when you receive a duplicate transaction. In this case, our server will stop further attempts for that transaction

Our servers wait for a response for a maximum of 60 seconds before the 'timeout'. In this case, it will be retried on up to five occasions during the following hours. Please check if the transaction ID sent to you was already entered in your database. This will prevent giving twice the same amount of virtual currency to the user because of the timeout.

Postback Example

The following example is not a working one but should be enough to understand how you should implement your postback in your website/app.

    
    <php

                    $secret = ""; //
                    $userId = isset($_GET['subId']) ? $_GET['subId'] : null;
                    $transactionId = isset($_GET['transId']) ? $_GET['transId'] : null;
                    $points = isset($_GET['reward']) ? $_GET['reward'] : null;
                    $signature = isset($_GET['signature']) ? $_GET['signature'] : null;
                    $action = isset($_GET['status']) ? $_GET['status'] : null;
                    $ipuser = isset($_GET['userIp']) ? $_GET['userIp'] : "0.0.0.0";

                    // validate signature
                    if(md5($userId.$transactionId.$points.$secret) != $signature)
                    {
                        echo "ERROR: Signature doesn't match";
                        return;
                    }

                    if($action == 2) // action = 1 CREDITED // action = 2 REVOKED
                    {
                        $points = -abs($points);
                    }

                    if(isNewTransaction($transactionId)) // Check if the transaction is new
                    {
                        processTransaction($userId, $points, $transactionId);
                        echo "OK";
                    }
                    else
                    {
                        // If the transaction already exist please echo DUP.
                        echo "DUP";
                    }

                    ? >
                    

API

We offer a comprehensive API that enables our publishers to efficiently retrieve a detailed list of all the current offers available within our extensive database.

You can send an HTTP GET request to our API endpoint to retrieve a list of offers.

We offer the following parameters:

Parameter Description
public_key The placement public key.
secret_key The placement secret key.
type You can choose from "simple", "multi", "featured"
limit No of offers you want to get from our database.

If you would like to receive custom parameter names in your postbacks, you can specify them in the postback URL like the following example,

GET https://adfleetmedia.com/adfleet/offers?public_key={key}&secret_key={secret_key}&type=multi&limit=100
                            "offers": [
                            {
                                "id": 1,
                                "type": "multi", 
                                "title": "Rise of Kingdoms",
                                "description": "Complete all events in 25 DAYS! New users only!",
                                "image_url": "https://adfleetmedia.com/asset/images/offers/66a93251eea4d1722364497.png",
                                "countries": [
                                    "US",
                                    "UK",
                                    "IN"
                                ],
                                "devices": [
                                    "android",
                                    "desktop",
                                    "ios",
                                ],
                                "category": {
                                    "id": 1,
                                    "name": "Account",
                                },
                                "payout": 1.5,
                                "url": "https://www.ltv-mob.com/M1MJJW/2BWJKTN9/?source_id=397&sub1=USER-ID-HERE_12,
                                "events": [
                                    {
                                        "event_payout": 0,
                                        "event_detail": "Install"
                                    },
                                    {
                                        "event_payout": 2.1,
                                        "event_detail": "Complete Game Tutorial"
                                    },
                                    {
                                        "event_payout": 4.2,
                                        "event_detail": "Reach City Hall Level 8"
                                    },
                                    {
                                        "event_payout": 6.1,
                                        "event_detail": "Reach City Hall Level 12"
                                    }
                                ]
                            }
                        ]
                        

for "simple" and "featured" offers "events" will not be there other data structure will be same as above.

                            "offers": [
                            {
                                "id": 1,
                                "type": "simple", 
                                "title": "Rise of Kingdoms",
                                "description": "Complete all events in 25 DAYS! New users only!",
                                "image_url": "https://adfleetmedia.com/asset/images/offers/66a93251eea4d1722364497.png",
                                "countries": [
                                    "US",
                                    "UK",
                                    "IN"
                                ],
                                "devices": [
                                    "android",
                                    "desktop",
                                    "ios",
                                ],
                                "category": {
                                    "id": 1,
                                    "name": "Account",
                                },
                                "payout": 1.5,
                                "url": "https://www.ltv-mob.com/M1MJJW/2BWJKTN9/?source_id=397&sub1=USER-ID-HERE_12,
                            }
                        ]