একটি পুরস্কার প্রদানকারী ইন্টারস্টিশিয়াল বিজ্ঞাপন লোড করা

পুরস্কার প্রদানকারী ইন্টারস্টিশিয়াল বিজ্ঞাপন আপনাকে স্ক্রিন বা গেম লেভেলের মধ্যে দেখানো বিজ্ঞাপনের জন্য অ্যাপ-মধ্যস্থ আইটেম অফার করার সুবিধা দেয়। পুরস্কার প্রদানকারী বিজ্ঞাপনের মতো, আপনার ব্যবহারকারীদের বিজ্ঞাপন দেখার জন্য সম্মতি দিতে হবে না। বিস্তারিত জানতে, পুরস্কার প্রদানকারী ইন্টারস্টিশিয়াল বিজ্ঞাপন ইউনিটের ওভারভিউ দেখুন।

এই নির্দেশিকা থেকে আপনি জানতে পারবেন যে কীভাবে React Native অ্যাপে পুরস্কার প্রদানকারী ইন্টারস্টিশিয়াল বিজ্ঞাপন ইন্টিগ্রেট করতে হয়।

পূর্বশর্ত

চালিয়ে যাওয়ার আগে, নিম্নলিখিত কাজগুলি করুন:

Android

ca-app-pub-3940256099942544/5354046379

iOS

ca-app-pub-3940256099942544/6978759866

বিজ্ঞাপন লোড করা

পুরস্কার প্রদানকারী ইন্টারস্টিশিয়াল বিজ্ঞাপন লোড করতে, RewardedInterstitialAd ক্লাসে load মেথড কল করুন।

নিম্নলিখিত উদাহরণটি সফল হলে একটি পুরস্কার প্রদানকারী ইন্টারস্টিশিয়াল বিজ্ঞাপন লোড করে এবং ব্যর্থ হলে একটি ত্রুটি লগ করে:

export async function loadRewardedInterstitialAd(
  adUnitId: string,
): Promise<RewardedInterstitialAd | null> {
  try {
    const ad = await RewardedInterstitialAd.load({adUnitId});
    return ad;
  } catch (error) {
    const loadError = error as LoadAdError;
    console.error('Failed to load rewarded interstitial:', loadError.message);
    return null;
  }
}

বিজ্ঞাপন ইভেন্টের জন্য শুনুন

বিজ্ঞাপন দেখানোর আগে, লোড করা RewardedInterstitialAd ইনস্ট্যান্সে adEventCallback লিসেনার সেট করুন। এই লিসেনার বিজ্ঞাপন লাইফসাইকেল ইভেন্টের জন্য কলব্যাক পায়, যেমন স্ক্রিনে বিজ্ঞাপন দেখানো বা ব্যবহারকারী বিজ্ঞাপনে ট্যাপ করা। উপলভ্য কলব্যাকের জন্য, AdEventCallback দেখুন।

নিম্নলিখিত উদাহরণে বিজ্ঞাপন ইভেন্ট শোনার জন্য কলব্যাক সেট করা হয়েছে:

export function registerAdEvents(ad: RewardedInterstitialAd) {
  ad.adEventCallback = {
    // Called when the ad is presented on screen.
    onAdShowedFullScreenContent: () => {
      console.log('Rewarded interstitial ad showed full screen content.');
    },
    // Called when the ad is closed by the user.
    onAdDismissedFullScreenContent: () => {
      console.log('Rewarded interstitial ad dismissed full screen content.');
      ad.destroy();
    },
    // Called when presentation fails.
    onAdFailedToShowFullScreenContent: (error) => {
      console.error('Failed to show rewarded interstitial ad:', error);
      ad.destroy();
    },
    // Called when an impression is recorded.
    onAdImpression: () => {
      console.log('Rewarded interstitial ad recorded an impression.');
    },
    // Called when the user taps the ad.
    onAdClicked: () => {
      console.log('Rewarded interstitial ad was clicked.');
    },
    // Called when the ad is estimated to have earned money.
    onAdPaid: (adValue) => {
      console.log(
        `Rewarded interstitial ad paid: ${adValue.amountMicros} ${adValue.currencyCode}`,
      );
    },
  };
}

ব্যবহারকারী বিজ্ঞাপন বন্ধ করলে বা বিজ্ঞাপন দেখাতে না পারলে, এই উদাহরণে destroy পদ্ধতিও কল করা হয়। এই প্রসেস বিজ্ঞাপন দ্বারা ব্যবহৃত রিসোর্স রিলিজ করে।

বিজ্ঞাপনটি দেখান

পুরস্কার প্রদানকারী ইন্টারস্টিশিয়াল বিজ্ঞাপন দেখাতে, লোড করা RewardedInterstitialAd ইনস্ট্যান্সে show কল করুন এবং Reward পেতে কলব্যাক পাস করুন:

export function showRewardedInterstitialAd(
  ad: RewardedInterstitialAd,
  onRewardEarned: (reward: Reward) => void,
) {
  ad.show(onRewardEarned);
}

ঐচ্ছিক: সার্ভার-সাইড যাচাইকরণ কলব্যাক যাচাই করুন

আপনার অ্যাপের জন্য যদি কাস্টম যাচাইকরণ প্যারামিটার, যেমন ব্যবহারকারীর আইডি বা কাস্টম পুরস্কার মেটাডেটা, সার্ভার-সাইড যাচাইকরণ (SSV) কলব্যাকে প্রয়োজন হয়, তাহলে বিজ্ঞাপন দেখানোর আগে লোড করা বিজ্ঞাপন ইনস্ট্যান্সে serverSideVerificationOptions প্রপার্টি সেট করুন।

আপনার সেট করা ভ্যালু SSV কলব্যাক কোয়েরি প্যারামিটারে পাস করা হয়:

  • userId: ব্যবহারকারীকে শনাক্ত করতে user_id কোয়েরি প্যারামিটারে পাস করে।
  • customData: কাস্টম মেটাডেটা ফরওয়ার্ড করার জন্য custom_data কোয়েরি প্যারামিটারে পাস করে।

নিম্নলিখিত উদাহরণটি বিজ্ঞাপন দেখানোর আগে পুরস্কার প্রদানকারী পৃষ্ঠা মধ্যকালিন বিজ্ঞাপন অবজেক্টে ServerSideVerificationOptions (customData এবং userId) সেট করে:

export function setServerSideVerificationRewardedInterstitial(
  ad: RewardedInterstitialAd,
) {
  ad.serverSideVerificationOptions = {
    userId: 'user_123',
    customData: 'sample_custom_data',
  };
}

সম্পূর্ণ উদাহরণ দেখুন

এই বিভাগে React Native অ্যাপে পুরস্কার প্রদানকারী ইন্টারস্টিশিয়াল বিজ্ঞাপন ইন্টিগ্রেট করার সম্পূর্ণ উদাহরণ দেওয়া হয়েছে।

নিচে দেওয়া উদাহরণে, React Native কম্পোনেন্টে বিজ্ঞাপন ইন্টিগ্রেট করা হয়েছে, স্টেটে বিজ্ঞাপনের ইনস্ট্যান্স ম্যানেজ করা হয়েছে এবং বিজ্ঞাপন লোড ও দেখানোর জন্য কন্ট্রোল প্রদান করা হয়েছে:

export function RewardedInterstitialSingleLoadScreen() {
  const [ad, setAd] = useState<RewardedInterstitialAd | null>(null);
  const [isLoaded, setIsLoaded] = useState(false);
  const [status, setStatus] = useState<string>('Idle');
  const [reward, setReward] = useState<string | null>(null);

  useEffect(() => {
    return () => {
      ad?.destroy();
    };
  }, [ad]);

  const handleLoad = async () => {
    setReward(null);
    setStatus('Loading Rewarded Interstitial ad...');
    const loadedAd = await loadRewardedInterstitialAd(
      REWARDED_INTERSTITIAL_AD_UNIT_ID,
    );
    if (loadedAd) {
      registerAdEvents(loadedAd);
      const onDismiss =
        loadedAd.adEventCallback?.onAdDismissedFullScreenContent;
      loadedAd.adEventCallback = {
        ...loadedAd.adEventCallback,
        onAdDismissedFullScreenContent: () => {
          onDismiss?.();
          setStatus('Ad dismissed.');
        },
      };
      setAd((prevAd) => {
        prevAd?.destroy();
        return loadedAd;
      });
      setIsLoaded(true);
      setStatus('Rewarded Interstitial ad loaded!');
    } else {
      setStatus('Failed to load Rewarded Interstitial ad.');
    }
  };

  const handleShow = () => {
    if (ad) {
      showRewardedInterstitialAd(ad, (userReward) => {
        setReward(`${userReward.amount} ${userReward.type}`);
      });
      setIsLoaded(false);
    }
  };

  return (
    <View style={styles.container}>
      <Text style={styles.title}>Rewarded Interstitial Ad</Text>
      <Text style={styles.status}>Status: {status}</Text>
      {reward && <Text style={styles.rewardText}>Earned: {reward}</Text>}
      <View style={styles.buttonGroup}>
        <Button title="Load Ad" onPress={handleLoad} />
        <View style={styles.spacerSmall} />
        <Button title="Show Ad" onPress={handleShow} disabled={!isLoaded} />
      </View>
    </View>
  );
}

পরবর্তী ধাপ

পুরস্কার প্রদানকারী ইন্টারস্টিশিয়াল বিজ্ঞাপন ইন্টিগ্রেট করার পরে, নিম্নলিখিত বিষয়গুলি এক্সপ্লোর করুন: