FaceBook原生廣告接入——最白話,手把手教你做系列。
阿新 • • 發佈:2019-01-09
接入FaceBook原生廣告(Native廣告)申請廣告不做贅述。
接入原生廣告三個步驟。
第一步,匯入SDK檔案。下載地址
找到下載好的檔案中的audience-network-unity-sdk-4.22.0.unitypackage檔案,匯入專案中。
會出現下面的檔案。
Samples是各種廣告的事例。每種廣告都有對應的場景和程式碼。
第一步結束。
Banner,插屏和視訊廣告和Admob的廣告基本相似。
這裡講一下沒講過的NativeAd(原生廣告)。
第二步,程式碼部分。
using UnityEngine;
using UnityEngine.UI;
using System;
using System.Collections;
using System.Collections.Generic;
using AudienceNetwork;
using UnityEngine.SceneManagement;
[RequireComponent (typeof(CanvasRenderer))]
[RequireComponent (typeof(RectTransform))]
public class NativeAdTest : MonoBehaviour
{
private NativeAd nativeAd;
// UI elements in scene
//以下部分為UI對應的一些元件
[Header("Text:")]
//廣告標題名
public Text title;
//廣告描述文字
public Text socialContext;
[Header("Images:")]
//廣告大圖
public Image coverImage;
//廣告的Icon
public Image iconImage;
[Header("Buttons:")]
//跳轉按鈕對應文字
public Text callToAction;
//廣告跳轉按鈕
public Button callToActionButton;
void Awake ()
{
this.Log ("Native ad ready to load.");
}
void Start ()
{
LoadAd ();
}
void OnGUI ()
{
// Update GUI from native ad
if (nativeAd != null && nativeAd.CoverImage != null) {
coverImage.sprite = nativeAd.CoverImage;
}
if (nativeAd != null && nativeAd.IconImage != null) {
iconImage.sprite = nativeAd.IconImage;
}
}
void OnDestroy ()
{
// Dispose of native ad when the scene is destroyed
if (this.nativeAd) {
this.nativeAd.Dispose ();
}
Debug.Log ("NativeAdTest was destroyed!");
}
// Load Ad button即為展示廣告方法
public void LoadAd ()
{
// Create a native ad request with a unique placement ID (generate your own on the Facebook app settings).
// Use different ID for each ad placement in your app.這裡填寫你的原生廣告ID
NativeAd nativeAd = new AudienceNetwork.NativeAd ("YOUR_PLACEMENT_ID");
this.nativeAd = nativeAd;
// Wire up GameObject with the native ad; the specified buttons will be clickable.
nativeAd.RegisterGameObjectForImpression (gameObject, new Button[] { callToActionButton });
// Set delegates to get notified on changes or when the user interacts with the ad.
nativeAd.NativeAdDidLoad = (delegate() {
this.Log ("Native ad loaded.");
Debug.Log ("Loading images...");
// Use helper methods to load images from native ad URLs
StartCoroutine (nativeAd.LoadIconImage (nativeAd.IconImageURL));
StartCoroutine (nativeAd.LoadCoverImage (nativeAd.CoverImageURL));
Debug.Log ("Images loaded.");
title.text = nativeAd.Title;
socialContext.text = nativeAd.SocialContext;
callToAction.text = nativeAd.CallToAction;
});
//廣告對應事件
nativeAd.NativeAdDidFailWithError = (delegate(string error) {
this.Log ("Native ad failed to load with error: " + error);
//載入失敗,這裡可以執行請求失敗的邏輯。比如你可以把圖片 文字 和 連結替換成自己需求的。
});
nativeAd.NativeAdWillLogImpression = (delegate() {
this.Log ("Native ad logged impression.");
});
nativeAd.NativeAdDidClick = (delegate() {
this.Log ("Native ad clicked.");
});
// Initiate a request to load an ad.
nativeAd.LoadAd ();
this.Log ("Native ad loading...");
}
private void Log(string s)
{
Debug.Log (s);
}
}
原生廣告主要的部分在於原生廣告可以作為一個頁面顯示也可以作為UI的一部分顯示。可以在顯示該頁面或者包含該廣告的頁面的時候呼叫LoadAd ();我這裡直接在Start方法裡呼叫了。
第二步結束。
第三步,頁面佈局和程式碼掛載。
廣告頁面所需元素如圖所示。程式碼只需要的掛在對應的panel上面即可
最後,將對應的物體拖到程式碼對應位置即可。
所以UI元素位置和大小都可以按自己的需求變動。
以上。