2016-04-15 4 views
0

Kann mir bitte jemand sagen, wie man die Funktion FBNativeAdBridgeCallback benutzt? Ich möchte grundsätzlich wissen, wann die Bilder fertig geladen sind, damit ich sie anzeigen kann. . Ansonsten habe ich ein natives Banner, das mit leeren Werten herumfliegt, bis Facebook sie geladen hat. und es sieht wirklich hässlich aus, wenn jedes Bild/jeder Text einzeln geladen wird.Wer weiß, wie man die Funktion FBNativeAdBridgeCallback in der Netzwerkeinheit des Publikums verwendet

Es ist nur die grundlegende native Anzeigen Beispielskript, ich habe versucht mit IResult wie man tut mit dem Login, aber das macht es rot. Es gibt keine Dokumentation dazu im Internet, nicht einmal auf der Facebook-Entwickler-Site, ich kann die API überhaupt nicht finden.

Kann mir bitte jemand erklären, wie man es in dem unten angegebenen Skript verwendet?

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) 
// { 
//  
// } 

} 

Vielen Dank im Voraus!

+0

Was meinen Sie mit "die Bilder sind fertig geladen"? damit die Banneranzeige geladen wird? –

+0

@NikaKasradze Ich möchte wissen, wenn die öffentlichen Objekte die tatsächlichen Werte enthalten. Ansonsten habe ich ein natives Banner, das mit leeren Werten herumfliegt, bis Facebook sie geladen hat. und es sieht wirklich hässlich aus, wenn jedes Bild/jeder Text einzeln geladen wird. –

Antwort

0

AdView können Sie keinen benutzerdefinierten Listener von FBNativeAdBridgeCallback() definieren. AdView bereits 5 Rückrufe zur Verfügung gestellt enthält NativeAdDidLoad().

Die Lösung für Ihre Frage ist, die Anzeige zuerst auszublenden, und nachdem Sie die NativeAdDidLoad() empfangen und Bilder geladen haben, bringen Sie die Anzeige nach vorne und machen Sie sie sichtbar. Es ist nicht notwendig, ein neues FBNativeAdBridgeCallback() zu erstellen.

+0

ok cool danke werde es schnell testen –

+0

das Problem ist, dass die Coroutine startet in NativeAdDidLoad() also wenn ich meine AdView verfügbar machen die Coroutine ist immer noch beschäftigt, die Bilder zu laden, auch nachdem ich es nach dem Debug.Log verfügbar machen ("Native ad Luke. ") Wird angezeigt - man kann immer noch das Coverbild sehen und dann den Namen der Taste ändern usw. Wie bekomme ich Feedback, wenn ich die Anzeige anzeigen kann? –

Verwandte Themen