Reklamy z nagrodą

Reklamy z nagrodą to reklamy, z którymi użytkownicy mogą wchodzić w interakcje w zamian za nagrody w aplikacji. Z tego przewodnika dowiesz się, jak zintegrować reklamy z nagrodą z AdMob z aplikacją Unity.

Przeczytaj historie sukcesu klientów: studium przypadku 1, studium przypadku 2.

Z tego przewodnika dowiesz się, jak zintegrować reklamy z nagrodą z aplikacją Unity.

Wymagania wstępne

Zanim przejdziesz dalej, skonfiguruj Google Mobile Ads Unity Plugin.

Zawsze przeprowadzaj testy z użyciem reklam testowych

Poniższy przykładowy kod zawiera identyfikator jednostki reklamowej, którego możesz użyć do żądania reklam testowych. Został on specjalnie skonfigurowany tak, aby w odpowiedzi na każde żądanie zwracać reklamy testowe, a nie produkcyjne, dzięki czemu jest bezpieczny w użyciu.

Jednak po zarejestrowaniu aplikacji w interfejsie internetowym AdMob i utworzeniu własnych identyfikatorów jednostek reklamowych do użycia w aplikacji musisz podczas jej tworzenia wyraźnie skonfigurować swoje urządzenie jako urządzenie testowe.

Android

ca-app-pub-3940256099942544/1033173712

iOS

ca-app-pub-3940256099942544/4411468910

Zainicjuj Google Mobile Ads Unity Plugin

Zanim aplikacja wczyta reklamy, musi zainicjować Google Mobile Ads Unity Plugin, wywołując funkcję MobileAds.Initialize(). Należy to zrobić tylko raz, najlepiej przy uruchomieniu aplikacji.

using GoogleMobileAds;
using GoogleMobileAds.Api;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize Google Mobile Ads Unity Plugin.
        MobileAds.Initialize((InitializationStatus initStatus) =>
        {
            // This callback is called once the MobileAds SDK is initialized.
        });
    }
}

Jeśli korzystasz z zapośredniczenia, przed wczytaniem reklam poczekaj na wywołanie zwrotne, aby mieć pewność, że wszystkie adaptery zapośredniczenia zostały zainicjowane.

Wczytywanie reklamy z nagrodą

Reklamę z nagrodą wczytuje się za pomocą statycznej metody Load() w klasie RewardedAd. Wczytany obiekt RewardedAd jest podawany jako parametr w procedurze obsługi zakończenia. Poniższy przykład wczytuje reklamę z nagrodą:

// Create our request used to load the ad.
var adRequest = new AdRequest();

// Send the request to load the ad.
RewardedAd.Load("AD_UNIT_ID", adRequest, (RewardedAd ad, LoadAdError error) =>
{
    if (error != null)
    {
        // The ad failed to load.
        return;
    }
    // The ad loaded successfully.
});

Zastąp AD_UNIT_ID identyfikatorem jednostki reklamowej.

[Opcjonalnie] Sprawdzanie wywołań zwrotnych weryfikacji po stronie serwera (SSV)

Aplikacje, które wymagają dodatkowych danych w wywołaniach zwrotnych weryfikacji po stronie serwera, powinny korzystać z funkcji danych niestandardowych w reklamach z nagrodą. Każda wartość ciągu znaków ustawiona w obiekcie reklamy z nagrodą jest przekazywana do parametru zapytania custom_data wywołania zwrotnego SSV. Jeśli nie ustawisz wartości danych niestandardowych, wartość parametru zapytania custom_data nie będzie obecna w wywołaniu zwrotnym SSV.

Poniższy przykładowy kod pokazuje, jak ustawić opcje SSV po wczytaniu reklamy z nagrodą.

// Create and pass the SSV options to the rewarded ad.
var options = new ServerSideVerificationOptions
{
    CustomData = ""SAMPLE_CUSTOM_DATA_STRING""
};

rewardedAd.SetServerSideVerificationOptions(options);

Zastąp SAMPLE_CUSTOM_DATA_STRING danymi niestandardowymi.

Jeśli chcesz ustawić niestandardowy ciąg znaków nagrody, musisz to zrobić przed wyświetleniem reklamy.

Wyświetlanie reklamy z nagrodą z wywołaniem zwrotnym dotyczącym nagrody

Podczas wyświetlania reklamy musisz podać wywołanie zwrotne, aby obsłużyć nagrodę dla użytkownika. Reklamy mogą być wyświetlane tylko raz na każde wczytanie. Użyj metody CanShowAd(), aby sprawdzić, czy reklama jest gotowa do wyświetlania.

Poniższy kod przedstawia najlepszą metodę wyświetlania reklamy z nagrodą.

if (rewardedAd != null && rewardedAd.CanShowAd())
{
    rewardedAd.Show((Reward reward) =>
    {
        // The ad was showen and the user earned a reward.
    });
}

Nasłuchiwanie zdarzeń związanych z reklamami z nagrodą

Aby dodatkowo dostosować zachowanie reklamy, możesz podłączyć się do wielu zdarzeń w cyklu życia reklamy. Ten kod nasłuchuje zdarzeń reklamowych:

rewardedAd.OnAdPaid += (AdValue adValue) =>
{
    // Raised when the ad is estimated to have earned money.
};
rewardedAd.OnAdImpressionRecorded += () =>
{
    // Raised when an impression is recorded for an ad.
};
rewardedAd.OnAdClicked += () =>
{
    // Raised when a click is recorded for an ad.
};
rewardedAd.OnAdFullScreenContentOpened += () =>
{
    // Raised when the ad opened full screen content.
};
rewardedAd.OnAdFullScreenContentClosed += () =>
{
    // Raised when the ad closed full screen content.
};
rewardedAd.OnAdFullScreenContentFailed += (AdError error) =>
{
    // Raised when the ad failed to open full screen content.
};

Wyczyść reklamę z nagrodą

Gdy skończysz korzystać z obiektu RewardedAd, przed usunięciem odwołania do niego wywołaj metodę Destroy():

if (rewardedAd != null)
{
    rewardedAd.Destroy();
}

Dzięki temu wtyczka dowie się, że obiekt nie jest już używany i można odzyskać zajmowaną przez niego pamięć. Jeśli nie wywołasz tej metody, dojdzie do wycieków pamięci.

Wstępne wczytywanie następnej reklamy z nagrodą

RewardedAd jest obiektem jednorazowego użytku. Oznacza to, że po wyświetleniu reklamy z nagrodą nie można ponownie użyć obiektu. Aby wysłać żądanie wyświetlenia kolejnej reklamy z nagrodą, musisz utworzyć nowy obiekt RewardedAd.

Aby przygotować reklamę z nagrodą na kolejną możliwość realizacji wyświetlenia, wstępnie wczytaj ją po wywołaniu zdarzenia reklamowego OnAdFullScreenContentClosed lub OnAdFullScreenContentFailed.

rewardedAd.OnAdFullScreenContentClosed += () =>
{
    // Reload the ad so that we can show another as soon as possible.
    var adRequest = new AdRequest();
    RewardedAd.Load("AD_UNIT_ID", adRequest, (RewardedAd ad, LoadAdError error) =>
    {
        // Handle ad loading here.
    });
};

Dodatkowe materiały