맞춤 네이티브 광고 형식

Google Ad Manager 게시자는 맞춤 애셋 목록을 정의하여 자체적인 네이티브 광고 형식을 만들 수 있습니다. 이러한 맞춤 네이티브 광고 형식을 예약된 광고와 함께 사용할 수 있습니다. 게시자는 맞춤 네이티브 광고 형식을 통해 임의의 이미지와 문자열 데이터를 앱에 전달할 수 있습니다. 이 데이터는 CustomNativeTemplateAd 객체로 표현됩니다.

맞춤 네이티브 광고 형식 로드

AdLoader 객체를 사용하여 맞춤 네이티브 광고 형식을 로드합니다. forCustomTemplateAd() 메소드는 AdLoader를 구성하여 맞춤 네이티브 광고 형식을 처리합니다. 각 맞춤 네이티브 광고 형식에는 템플릿 ID 값이 연결되어 있습니다. 앱에서 AdLoader가 요청할 맞춤 네이티브 광고 형식의 템플릿 ID를 지정해야 합니다. Ad Manager UI의 템플릿 ID에서 요청할 네이티브 광고 형식의 템플릿 ID를 찾으세요.

void LoadCustomNativeTemplateAd()
{
    AdLoader adLoader = new AdLoader.Builder("/6499/example/native")
        .forCustomNativeAd("10063170")
        .Build();
    adLoader.LoadAd(new AdRequest.Builder().Build());
}

단일 광고 단위를 설정하여 2개 이상의 광고 소재 템플릿을 게재할 수 있으므로, 서로 다른 템플릿 ID로 forCustomTemplateAd()를 여러 번 호출하여 둘 이상의 맞춤 네이티브 광고 형식을 위해 Adloader를 준비할 수 있습니다. 다음 코드에서는 여러 네이티브 광고 형식 템플릿을 위해 AdLoader를 준비하는 방법을 보여줍니다.

void LoadCustomNativeTemplateAd()
{
    AdLoader adLoader = new AdLoader.Builder("/6499/example/native")
        .forCustomNativeAd("10063170")
        .forCustomNativeAd("10063171")
        .forCustomNativeAd("10063172")
        .Build();
    adLoader.LoadAd(new AdRequest.Builder().Build());
}

맞춤 네이티브 광고 형식 광고 이벤트

AdLoader 클래스는 EventHandler 유형의 광고 이벤트를 제공하여 맞춤 네이티브 광고 형식의 수명 주기를 알려줍니다. 다음은 맞춤 네이티브 광고 형식 광고 이벤트를 등록하는 방법의 예입니다.

adLoader.onCustomNativeTemplateAdLoaded += HandleCustomNativeAdLoaded;
adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;

HandleCustomNativeAdLoaded() 메소드에는 CustomNativeEventArgs 매개변수가 포함되어 있습니다. 이 이벤트 매개변수를 통해 로드된 맞춤 네이티브 광고 형식에 액세스할 수 있습니다(아래 참조).

private boolean adLoaded;
private CustomNativeTemplateAd customNativeTemplateAd;
...
void HandleCustomNativeAdLoaded(object sender, CustomNativeEventArgs args)
{
    customNativeTemplateAd = args.nativeAd;
    adLoaded = true;
}

맞춤 네이티브 광고 형식 표시

맞춤 네이티브 광고 형식은 개수에 제한 없이 사용자 정의 이미지 및 텍스트 애셋을 지원합니다. CustomNativeTemplateAd 클래스를 통해 이러한 애셋에 액세스할 수 있습니다. 이 클래스는 템플릿 필드의 변수 ID를 매개변수로 사용하는 GetTexture2D()GetText() 메소드를 제공합니다.

다음은 CustomNativeTemplateAd의 애셋을 추출하는 구현의 예입니다.

public const int NATIVE_AD_TEMPLATE_1 = 10063170;
public const int NATIVE_AD_TEMPLATE_2 = 10063171;

private boolean adLoaded;
private Texture2d mainImageTexture;
private string headline;
private CustomNativeTemplateAd customNativeTemplateAd;
...

void Update()
{
    if(adLoaded)
    {
        mainImageTexture = customNativeTemplateAd.GetTexture2D("MainImage");
        headline = customNativeTemplateAd.GetText("Headline");

        string templateId = customNativeTemplateAd.GetCustomTemplateId();
        if (templateId == NATIVE_AD_TEMPLATE_1)
        {
            ...
        }
        else if (templateId == NATIVE_AD_TEMPLATE_2)
        {
            ...
        }
        ...
        adLoaded = false;
    }
}
...

void HandleCustomNativeAdLoaded(object sender, CustomNativeEventArgs args)
{
    customNativeTemplateAd = args.nativeAd;
    adLoaded = true;
    ...
}

맞춤 네이티브 광고 형식의 클릭 및 노출 처리

맞춤 네이티브 광고 형식을 사용하면 앱에서 노출을 기록하고 SDK에 클릭 이벤트를 보고해야 합니다.

노출 기록

맞춤 네이티브 광고 형식의 노출을 기록하려면 해당 CustomNativeTemplateAd에 대해 RecordImpression() 메소드를 호출합니다.

customNativeTemplateAd.RecordImpression();

클릭 보고

애셋에 대한 클릭이 발생했음을 SDK에 보고하려면 해당 CustomNativeTemplateAd에 대해 PerformClick() 메소드를 호출하고 클릭된 애셋의 이름을 전달합니다. 예를 들어 맞춤 네이티브 광고 형식에 'MainImage'라는 애셋이 있으며, 여기에 해당하는 텍스처에 대한 클릭을 보고하려는 경우 다음과 같은 코드를 사용할 수 있습니다.

customNativeTemplateAd.PerformClick("MainImage");

맞춤 템플릿 광고에 대한 클릭이 보고되면 SDK는 다음 순서에 따라 2가지 응답을 시도합니다.

  1. 광고의 딥 링크 URL에 대한 콘텐츠 확인자를 찾아서 처음으로 확인되는 항목을 시작합니다.
  2. 브라우저를 열고 광고의 기존 도착 URL로 이동합니다.

맞춤 클릭 동작

사용자를 딥 링크 또는 웹 브라우저로 연결하는 대신 맞춤 네이티브 광고 형식에 대한 클릭 동작을 직접 처리할 수도 있습니다. 이렇게 하려면 선택사항인 Action<CustomNativeTemplateAd, string>AdLoader.Builder.forCustomTemplateAd() 메소드에서 제공한 상태여야 합니다. 이 맞춤 클릭 동작을 설정하면 위에서 설명한 SDK의 클릭 동작이 재정의됩니다. 다음은 맞춤 클릭 동작을 사용하여 특정 애셋에 대한 클릭을 기록하는 방법의 예입니다.

private void LoadCustomNativeTemplateAd()
{
    AdLoader adLoader = new AdLoader.Builder("/6499/example/native")
        .forCustomNativeAd("10063170", HandleCustomNativeAdClicked)
        .Build();
    adLoader.onCustomNativeTemplateAdLoaded += HandleCustomNativeAdLoaded;
    adLoader.OnAdFailedToLoad += HandleCustomNativeAdFailedToLoad;
    adLoader.LoadAd(createAdRequest());
}

private void HandleCustomNativeAdClicked(CustomNativeTemplateAd customNativeTemplateAd, string assetName)
{
    Debug.Log("Native ad asset with name " + assetName + " was clicked.");
}