2016-04-15 6 views
0

Может ли кто-нибудь рассказать мне, как использовать функцию FBNativeAdBridgeCallback? В основном я хочу знать, когда изображения будут загружены, чтобы я мог их отображать. , иначе у меня есть собственный баннер, летающий с пустыми значениями, пока Facebook не закончит их загрузку. и это выглядит действительно уродливо, если каждое изображение/текст загружается по одному за раз.Кто-нибудь знает, как использовать функцию FBNativeAdBridgeCallback в единстве сети аудитории

Его просто базовый образец сценариев родных объявлений, я попытался использовать IResult, как это делает с логином, но это делает его красным. в Интернете нет документации по этому вопросу, даже на сайте разработчиков Facebook, я не могу найти api вообще.

Может ли кто-нибудь объяснить мне, как использовать его в приведенном ниже скрипте?

using UnityEngine; 
using UnityEngine.UI; 
using System; 
using System.Collections; 
using System.Collections.Generic; 
using AudienceNetwork; 

[RequireComponent (typeof(CanvasRenderer))] 
[RequireComponent (typeof(RectTransform))] 
public class NativeAdTest : MonoBehaviour 
{ 
    private NativeAd nativeAd; 

    // UI elements in scene 
    [Header("Text:")] 
    public Text 
     title; 
    public Text socialContext; 
    [Header("Images:")] 
    public Image 
     coverImage; 
    public Image iconImage; 
    [Header("Buttons:")] 
    public Text 
     callToAction; 
    public Button callToActionButton; 

    public GameObject hide; 

    void Awake() 
    { 
     // 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. 
     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() { 
      Debug.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; 
      Debug.Log ("Native ad Luke."); 
     // hide.SetActive(false); 
      //FBNativeAdBridgeCallback 


     }); 
     nativeAd.NativeAdDidFailWithError = (delegate(string error) { 
      Debug.Log ("Native ad failed to load with error: " + error); 
     }); 
     nativeAd.NativeAdWillLogImpression = (delegate() { 
      Debug.Log ("Native ad logged impression."); 
     }); 
     nativeAd.NativeAdDidClick = (delegate() { 
      Debug.Log ("Native ad clicked."); 
     }); 



     // Initiate a request to load an ad. 
     nativeAd.LoadAd(); 
     //nativeAd.nat 
    } 

    void OnGUI() 
    { 
     // Update GUI from native ad 
     coverImage.sprite = nativeAd.CoverImage; 
     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!"); 
    } 

// void FBNativeAdBridgeCallback(IResult result) 
// { 
//  
// } 

} 

Заранее благодарен!

+0

Что вы подразумеваете под словом «изображения закончены»? чтобы рекламное объявление было загружено? –

+0

@NikaKasradze Я хочу знать, когда публичные объекты содержат фактические значения. иначе у меня есть собственный баннер, летающий с пустыми значениями, пока Facebook не закончит их загрузку. и это выглядит действительно уродливо, если каждое изображение/текст загружается по одному за раз. –

ответ

0

AdView не позволяет определить индивидуальный слушатель от FBNativeAdBridgeCallback(). AdView уже предоставлено 5 обратных вызовов включает в себя NativeAdDidLoad().

Решение проблемы заключается в том, чтобы сначала скрыть объявление, после того как вы получили NativeAdDidLoad() и закончили загрузку изображений, принесите объявление вперед и сделайте его видимым. Нет необходимости создавать новый FBNativeAdBridgeCallback().

+0

ok cool thanks быстро проверит его –

+0

проблема в том, что Coroutine запускается внутри NativeAdDidLoad(), поэтому, когда я делаю свой рекламный просмотр доступным, Coroutine по-прежнему занят загрузкой изображений даже после того, как я сделаю его доступным после Debug.Log («Собственное объявление Luke. ") - все еще можно увидеть, как загружается изображение обложки, а затем смена имени кнопки и т. Д. ... так как мне получить обратную связь, когда я могу отобразить рекламу? –