Offerwall Ad Implementation with Node.js SDK Introduction

The K2 adserving system developed by DAT is designed to seamlessly integrate traditional programmatic advertising with Web3-based reward ad formats like offerwalls. As a SAAS platform, K2 enables efficient ad matching and delivery across diverse ecosystems. While our SDK provides the necessary content and data for ad integration, it is important to note that the visual styling and rendering of the ad units must be implemented by the developer or website owner according to their specific design requirements.

Offerwall Ad Showcase

Sample 1

Sample 2

Sample 3

Installation

npm install @dat-platform/k2-adserving
# or
yarn add @dat-platform/k2-adserving

Quick Start

  • Initialize the SDK – The SDK uses a singleton pattern for efficient resource management:
import K2SDK from '@dat-platform/k2-adserving';

// Initialize the SDK
try {
  const sdk = await K2SDK.initialize({
    apiKey: 'YOUR_API_KEY',
  });
  console.log('K2 SDK initialized successfully');
} catch (error) {
  console.error('SDK initialization failed:', error);
}
  • Using the SDK – After initialization, access the SDK instance from anywhere in your application:
// Get the SDK instance
const sdk = K2SDK.getInstance();

// Get Offer Wall
try {
  const offers = await sdk.getOfferWall('YOUR_PLACEMENT_ID', {
    user_unique_id: 'OPTIONAL_USER_ID',
    limit: 10 
  });
  console.log('Offers:', offers);
} catch (error) {
  console.error('Failed to fetch offers:', error);
}

// Get Ads only single ad will come
try {
  const ads = await sdk.getAd('YOUR_PLACEMENT_ID', {
    user_unique_id: 'OPTIONAL_USER_ID'
  });
  console.log('Ads:', ads);
} catch (error) {
  console.error('Failed to fetch ads:', error);
}

// Get Reward Balance
try {
  const balance = await sdk.getRewardBalance('YOUR_PLACEMENT_ID', {
    user_unique_id: 'OPTIONAL_USER_ID'
  });
  console.log('Reward Balance:', balance.results.reward_balance);
} catch (error) {
  console.error('Failed to fetch reward balance:', error);
}

// Check if running in Telegram WebApp
const isTelegramApp = sdk.isTelegramWebAppAvailable();
console.log('Is Telegram WebApp:', isTelegramApp);

// Get Telegram User ID (Only works in Telegram WebApp)
try {
  const telegramUserId = sdk.getTelegramUserId();
  console.log('Telegram User ID:', telegramUserId);
} catch (error) {
  console.error('Not running in Telegram:', error);
}
  • React Integration Example
import React, { useEffect, useState } from 'react';
import K2SDK from '@dat-platform/k2-adserving';

const MyComponent = () => {
  const [offers, setOffers] = useState([]);

  useEffect(() => {
    const fetchOffers = async () => {
      try {
        const sdk = K2SDK.getInstance();
        const offerWall = await sdk.getOfferWall("YOUR_PLACEMENT_ID");
        setOffers(offerWall);
      } catch (error) {
        console.error('Failed to fetch offers:', error);
      }
    };

    fetchOffers();
  }, []);

  return (
    // Your component JSX
  );
};
  • Sample OfferWall JSON Example
[
  {
    "url": "https://cms.datplatform.com/click?url=https%3A%2F%2Fr.datplatform.com%2Fadx-dir-d%2Fctrk%2Ffc4742ede628bf396a7032d4df5cfb117fc8fb3fbb2ed7c02cf67f2b8d279a9c%2F%5BADX_TXN_ID%5D%2F%5BAUCTION_PRICE%5D%2F%5Bexternalid%5D&id=f44d742efeb895f8a2e103370cb361a4794592e8893cb4668de75a82da3457b3a241ba88062506f3031e8ba2c785f3627b38cb5016dc1d8b2bdf6ddf4b8c417c",
    "icon": "https://cdn.datplatform.com/7_310024_0.png",
    "title": "subway surfers !",
    "reward": "50",
    "offerId": 310024,
    "currency": "USD",
    "campaignId": 410003,
    "description": "Reach level 19 and earn multiple rewads playing subway trek !",
    "adtype_action": "click_reward",
    "impressionTrackURL": "https://cms.datplatform.com/imps?url=https%3A%2F%2Fr.datplatform.com%2Fadx-dir-d%2Fctrk%2Ffc4742ede628bf396a7032d4df5cfb117fc8fb3fbb2ed7c02cf67f2b8d279a9c%2F%5BADX_TXN_ID%5D%2F%5BAUCTION_PRICE%5D%2F%5Bexternalid%5D"
  }
]

🚀 For more information, custom ad solutions, or assistance with offerwall rendering development, feel free to contact our Business Team.

Scroll to Top