Giter Site home page Giter Site logo

fbsamples / audience-network Goto Github PK

View Code? Open in Web Editor NEW
320.0 50.0 367.0 78.36 MB

Open source projects to demonstrate SDK and sample code usages and integration, and to collaborate and support peers in this community.

Home Page: https://developers.facebook.com/docs/audience-network

License: Other

audience-network's Introduction

Audience Network Samples

In this repository there are sample code that demonstrates how to use Facebook Audience Network.

Samples

Support

You can see our developers' site for documentation on using the SDK.

From 28 April 2021, if you are having technical issues or experiencing bugs, please use the bug report tool to report a bug on Audience Network. Our engineers will get back to you as soon as possible.

If you have any other questions or suggestions relating to Facebook Audience Network, please use the online publisher support portal to submit a request.

audience-network's People

Contributors

adelastanadela avatar andrewliu-code avatar andrliu avatar chrisma0101 avatar clayheaton avatar d3migod avatar daniel-huri avatar faboor avatar gwheet avatar hedayet avatar jamesgpearce avatar jch7557 avatar l33tcodex0r avatar onur-simsek avatar phzhou avatar rocfb avatar rswaroop avatar sharoni avatar sherifelkhatib avatar themaxcoder avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

audience-network's Issues

Connection was leaked warning

My logs are showing a warning saying:
W/OkHttpClient: A connection to http://127.0.0.1:32873/ was leaked. Did you forget to close a response body?

It's showing when loading native ads using NativeAdsManager. The Ads are usually being loaded.

I am using the 5.0.1 version. My compile and target sdk version is 28. The support libraries are all 28.0.0. And I do declare android:networkSecurityConfig="@xml/network_security_config" in my manifest.

Am I missing something or should this warning be ignored? Thank you.

Crash when show interstitial

I tested with official demo(FAN SDK v4.25.0) on my SAMSUNG Tablet, if the interstitial ad is "mp4" format,sometimes crash.
Here is my device info:
Samsung SM-T710
Android 5.0.2
API 21
Crash log:
Crash_log.txt

The parameter PLACEMENT_ID is required

Hi,
Native ads aren't loading anymore with latest version of audience network 4.24.0. I am getting below error code and message:

errorCode=1203 message=(#100) The parameter PLACEMENT_ID is required

and this is how I create my native ad:

nativeAd = new NativeAd(context, id /* placement ID */);

SDK crashes with CalledFromWrongThreadException while playing an instream ad

Crash logs

Fatal Exception: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6728)
at android.view.ViewRootImpl.invalidateChildInParent(ViewRootImpl.java:1028)
at android.view.ViewGroup.invalidateChild(ViewGroup.java:4716)
at android.view.View.invalidateInternal(View.java:11820)
at android.view.View.invalidate(View.java:11784)
at android.view.View.invalidateParentIfNeeded(View.java:11973)
at android.view.View.clearAnimation(View.java:17903)
at com.facebook.ads.internal.view.d.b.d$1.a(Unknown Source)
at com.facebook.ads.internal.view.d.b.d$1.a(Unknown Source)
at com.facebook.ads.internal.g.r.b(Unknown Source)
at com.facebook.ads.internal.g.r.a(Unknown Source)
at com.facebook.ads.internal.view.o.a(Unknown Source)
at com.facebook.ads.internal.view.d.c.b.setVideoState(Unknown Source)
at com.facebook.ads.internal.view.d.c.b.a(Unknown Source)
at com.facebook.ads.internal.view.o.a(Unknown Source)
at com.facebook.ads.internal.view.d.b.b$3$1.onAudioFocusChange(Unknown Source)
at android.media.AudioManager$FocusEventHandlerDelegate$1.handleMessage(AudioManager.java:2526)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:160)

NPE Attempt to invoke virtual method 'com.facebook.ads.internal.view.d.c.d com.facebook.ads.internal.view.j.getState()'

Hi, it happened when inflate ViewGroup with MediaView.
Then get
D/crash: android.view.InflateException: Binary XML file line #45: Error inflating class com.facebook.ads.MediaView
at android.view.LayoutInflater.createView(LayoutInflater.java:633)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
.
.
.
.
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance(Native Method)
.
.
.
.
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.facebook.ads.internal.view.d.c.d com.facebook.ads.internal.view.j.getState()' on a null object reference at com.facebook.ads.internal.view.h.c(Unknown Source)
.
.
.
.
After review com.facebook.ads.internal.view.h
I see

private a b() {
    return new a(this, 50, true, new com.facebook.ads.internal.j.a.a() {
        public void a() {
            if(h.this.g != null) {
                if(!h.this.j && (h.this.i || h.this.shouldAutoplay())) {
                    h.this.play(VideoStartReason.AUTO_STARTED);
                }

                h.this.i = false;
                h.this.j = false;
            }
        }
        public void b() {
            if(h.this.g != null) {
                if(h.this.g.getState() == d.e) {
                    h.this.j = true;
                } else if(h.this.g.getState() == d.d) {
                    h.this.i = true;
                }

                h.this.pause();
            }
        }
    });
 }

Maybe this g class doing something error?

Banner load first time always failed.

I integrated Android FAN v4.24.0 SDK as docs says,but I found when first time to call "adView.loadAd()"(adView is a Adview Object), always received error 1001:" No fill,We are not able to serve ads to this person. Please refer to https://developers.facebook.com/docs/audience-network/faq#a12. If you are integrating Audience Network for the first time, you can use test ads https://developers.facebook.com/docs/audience-network/testing.", then I called "adView.loadAd()" again, ad was filled.

NativeAd not loaded

Gradle:
compile 'com.facebook.android:audience-network-sdk:4.+'

Code to display ad:

nativeAd = new NativeAd(getActivity(), "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
 AdSettings.addTestDevice("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
 nativeAd.setAdListener(new AdListener() {

                @Override
                public void onError(Ad ad, AdError error) {
                //not called
                }

                @Override
                public void onAdLoaded(Ad ad) {
                    //My code to inflate View


                }

                @Override
                public void onAdClicked(Ad ad) {
                   
                }

                @Override
                public void onLoggingImpression(Ad ad) {

                }
            });

            nativeAd.loadAd();

I am using above code to display Native Ads. Neither onAdLoaded nor onError is called. Didn't find anything in logs either.
Status of app is "Approved" and status of Ad space is "Enabled and received ad request recently"

Audience network crash

Caused by java.lang.RuntimeException: failure code: -32
at android.media.MediaPlayer.invoke(MediaPlayer.java:729)
at android.media.MediaPlayer.getInbandTrackInfo(MediaPlayer.java:1893)
at android.media.MediaPlayer.getTrackInfo(MediaPlayer.java:1870)
at com.facebook.ads.internal.view.c.c.b.d(Unknown Source)
at com.facebook.ads.internal.view.u.j(Unknown Source)
at com.facebook.ads.internal.view.n.setUpContent(Unknown Source)
at com.facebook.ads.internal.view.n.a(Unknown Source)
at com.facebook.ads.AudienceNetworkActivity.onCreate(Unknown Source)
at android.app.Activity.performCreate(Activity.java:5275)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2255)
at android.app.ActivityThread.access$800(ActivityThread.java:142)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1203)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5118)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:606)
at dalvik.system.NativeStart.main(NativeStart.java)

Received status code 403 from server: Forbidden how to solve this please give me a solution ..

When am using new latest SDK implementation 'com.facebook.android:audience-network-sdk:4.32.0' also gradle version is com.android.tools.build:gradle:3.1.1 , now rebuild the project but it shows error on Received status code 403 from server: Forbidden

Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve com.facebook.android:audience-network-sdk:4.32.0.

Could not resolve com.facebook.android:audience-network-sdk:4.32.0.
Required by:
project :app
> Could not resolve com.facebook.android:audience-network-sdk:4.32.0.
> Could not get resource 'https://s3.amazonaws.com/moat-sdk-builds/com/facebook/android/audience-network-sdk/4.32.0/audience-network-sdk-4.32.0.pom'.
      > Could not GET 'https://s3.amazonaws.com/moat-sdk-builds/com/facebook/android/audience-network-sdk/4.32.0/audience-network-sdk-4.32.0.pom'. Received status code 403 from server: Forbidden

Please give me a right solution. Still 3 days i search lot of links but no use.

Updated Ads Gradle logged by ES File Explorer

Recently update gradle version to 4.25.0 as

compile 'com.facebook.android:facebook-android-sdk:4.25.0'
compile 'com.facebook.android:audience-network-sdk:4.25.0'

Now ES File explorer's logger log the ads when Native Ads is being display which is irritating.
Note : I am also using Google Native Express Ads but it is not logging. Please check.

To be more Clear :

ES File Explorer App having logger facility to show bubble at top of others app while media downloaded by Apps.Now I am using both Facebook Native ads and AdMob's NativeExpress Ads to show ads in my App.When Facebook NativeAds is being displayed, Logger appears top of the application and showing recent media downloaded. It is not happening with Admob Ads.

Context leak in banner

I checked banner sample
Add method to start new activity:
public void finish(View view) { Intent intent = new Intent(this, BannerActivity.class); finish(); overridePendingTransition(0, 0); startActivity(intent); }
And old activity don't released.

After migrating from 4.23.0 to 5.0.0 Test Device Always get error 1001 no fill

I use designated test devices for testing Audience Network integrations and they are configured for real advertiser content in testing enabled mode as mentioned in Using Test Devices https://developers.facebook.com/docs/audience-network/testing and have all the necessary requirement and work on 4.23.0 SDK.

It is displaying real advertiser content with 4.23.0 SDK and worked well for me for a long time but when I try to switch to 5.0.0 SDK or 5.0.1 or 5.1.0 Beta with all necessary changes for migration I always get error 1001 no fill in all of my test devices.

When I add hash id for test ads then these devices receive test ads.

From last week I have no success in getting real Audience Network advertisements in our test devices with 5+ Audience Network Sdk

Does audience network android sdk require android min api level to 17 ?

Crashed when showing interstitial ads on android 4.1.1.
Audience network android sdk version is 4.23.0.
View.generateViewId only available via android api level 17.
Fatal Exception: java.lang.NoSuchMethodError: android.view.View.generateViewId
at com.facebook.ads.internal.adapters.k.a(Unknown Source)
at com.facebook.ads.internal.adapters.i.a(Unknown Source)
at com.facebook.ads.internal.adapters.i.a(Unknown Source)
at com.facebook.ads.internal.adapters.j.loadInterstitialAd(Unknown Source)
at com.facebook.ads.internal.DisplayAdController.a(Unknown Source)
at com.facebook.ads.internal.DisplayAdController.o(Unknown Source)
at com.facebook.ads.internal.DisplayAdController.d(Unknown Source)
at com.facebook.ads.internal.DisplayAdController$5.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Method.java)

NativeAdListener not callback

After the native.loadAd() is called in the SDK of 4.99.0 or above, the NativeAdListener has no callbacks.
I can't know if its request was a success or a failure.

But when I use the test adUnitId, the NativeAdListener will callback.
(For example: VID_HD_16_9_46S_APP_INSTALL#xxxxxxxx_xxxxxxxxxx)

So this error will only appear in the AdUnitId of release.

Same ad is shown in RecyclerView.

I am using native ads in recyclerview. but FAN shows same ad in all positions. Is there any way I can put new ad in every postion of my recyclerview?

Crash when show interstitial very much.

Fatal Exception: java.lang.ArithmeticException: divide by zero
at com.facebook.ads.internal.view.d.b.i$2.a(Unknown Source)
at com.facebook.ads.internal.view.d.b.i$2.a(Unknown Source)
at com.facebook.ads.internal.g.r.b(Unknown Source)
at com.facebook.ads.internal.g.r.a(Unknown Source)
at com.facebook.ads.internal.view.o$1.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5651)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)

call SDK get AD Fail ,crash.

0 messagebirds 0x10034d67c -CTBanner nativeAd:didFailWithError:
1 messagebirds 0x100309a64 -FBNativeAd displayAdController:didFailWithError:
2 messagebirds 0x1002cb67c -FBDisplayAdController notifyAdError:
3 messagebirds 0x1002cd438 -FBDisplayAdController onAdRequestError:
4 messagebirds 0x100321cc0 -FBAdProvider dispatchError:
5 messagebirds 0x100321904 42-[FBAdProvider loadAdWithEnvironmentData:]_block_invoke.21 (FBAdProvider.m:72)
6 libdispatch.dylib 0x18087d200 _dispatch_call_block_and_release + 24
7 libdispatch.dylib 0x18087d1c0 _dispatch_client_callout + 16
8 libdispatch.dylib 0x180881d6c _dispatch_main_queue_callback_4CF + 1000
9 CoreFoundation 0x1819a1f2c __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE
+ 12
10 CoreFoundation 0x18199fb18 __CFRunLoopRun + 1660
11 CoreFoundation 0x1818ce048 CFRunLoopRunSpecific + 444
12 GraphicsServices 0x183351198 GSEventRunModal + 180
13 UIKit 0x1878a7818 -[UIApplication _run] + 684
14 UIKit 0x1878a2550 UIApplicationMain + 208
15 messagebirds 0x10007d30c main (main.m:18)
16 libdispatch.dylib 0x1808b05b8 (Missing)

AssertionError

Have integrate error then compile.
Sdk 4.27

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
gradle 3
Exception in thread "main" java.lang.AssertionError: Failed to load class when desugaring method com/facebook/ads/internal/view/c/c/a.onPlayerError(Lcom/google/android/exoplayer2/ExoPlaybackException;)V at com.google.devtools.build.android.desugar.TryWithResourcesRewriter$TryWithResourceVisitor.isMethodCallTargeted(TryWithResourcesRewriter.java:186) at com.google.devtools.build.android.desugar.TryWithResourcesRewriter$TryWithResourceVisitor.visitMethodInsn(TryWithResourcesRewriter.java:161) at org.objectweb.asm.MethodVisitor.visitMethodInsn(Unknown Source) at com.google.devtools.build.android.desugar.InterfaceDesugaring$InterfaceInvocationRewriter.visitMethodInsn(InterfaceDesugaring.java:341) at org.objectweb.asm.tree.MethodInsnNode.accept(Unknown Source) at org.objectweb.asm.tree.InsnList.accept(Unknown Source) at org.objectweb.asm.tree.MethodNode.accept(Unknown Source) at com.google.devtools.build.android.desugar.LambdaDesugaring$InvokedynamicRewriter.visitEnd(LambdaDesugaring.java:383) at org.objectweb.asm.MethodVisitor.visitEnd(Unknown Source) at org.objectweb.asm.MethodVisitor.visitEnd(Unknown Source) at org.objectweb.asm.ClassReader.b(Unknown Source) at org.objectweb.asm.ClassReader.accept(Unknown Source) at org.objectweb.asm.ClassReader.accept(Unknown Source) at com.google.devtools.build.android.desugar.Desugar.desugarClassesInInput(Desugar.java:401) at com.google.devtools.build.android.desugar.Desugar.desugarOneInput(Desugar.java:326) at com.google.devtools.build.android.desugar.Desugar.desugar(Desugar.java:280) at com.google.devtools.build.android.desugar.Desugar.main(Desugar.java:584) Caused by: java.lang.ClassNotFoundException: Class com.google.android.exoplayer2.ExoPlaybackException not found at com.google.devtools.build.android.desugar.HeaderClassLoader.findClass(HeaderClassLoader.java:53) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at com.google.devtools.build.android.desugar.TryWithResourcesRewriter$TryWithResourceVisitor.isMethodCallTargeted(TryWithResourcesRewriter.java:183) ... 16 more

Java.lang.IllegalStateException: no adapter ready to start in interstial ads

java.lang.IllegalStateException: no adapter ready to start
at com.facebook.ads.internal.DisplayAdController.b(Unknown Source)
at com.facebook.ads.InterstitialAd.show(Unknown Source)
at com.cellnuvo.cellnuvo.Activity.MainUserInterface.adPicker(MainUserInterface.java:1780)
at com.cellnuvo.cellnuvo.Activity.MainUserInterface.onSwipe(MainUserInterface.java:2676)
at com.cellnuvo.cellnuvo.Support.SimpleGestureFilter.onFling(SimpleGestureFilter.java:117)
at android.view.GestureDetector.onTouchEvent(GestureDetector.java:667)
at com.cellnuvo.cellnuvo.Support.SimpleGestureFilter.onTouchEvent(SimpleGestureFilter.java:44)
at com.cellnuvo.cellnuvo.Activity.MainUserInterface.dispatchTouchEvent(MainUserInterface.java:2659)
at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2792)
at android.view.View.dispatchPointerEvent(View.java:10228)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5345)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5181)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4621)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4674)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4640)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4782)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4648)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4839)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4621)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4674)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4640)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4648)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4621)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7307)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7185)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7146)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7417)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:323)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:7224)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

Crash in FBLogger

I get crash when FBAdConfigManager try to load configuration from storage

FB6 RuntimeException - AsyncTask$3.done com.facebook.ads

## Hello,sir, SDK_Version =4.26.0,how to resolve the issue?
Exception java.lang.RuntimeException: An error occurred while executing doInBackground()
android.os.AsyncTask$3.done (AsyncTask.java:318)
java.util.concurrent.FutureTask.finishCompletion (FutureTask.java:354)
java.util.concurrent.FutureTask.setException (FutureTask.java:223)
java.util.concurrent.FutureTask.run (FutureTask.java:242)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1133)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:761)

Caused by java.lang.IllegalStateException: attempt to re-open an already-closed object: SQLiteDatabase: /data/user/0/[REDACTED_DOMAIN_NAME]/databases/ads.db
android.database.sqlite.SQLiteClosable.acquireReference (SQLiteClosable.java:55)
android.database.sqlite.SQLiteDatabase.endTransaction (SQLiteDatabase.java:522)
com.facebook.ads.internal.e.d$2.a (d.java)
com.facebook.ads.internal.e.d$2.b (d.java)
com.facebook.ads.internal.e.d$1.a (d.java)
com.facebook.ads.internal.e.d$1.doInBackground (d.java)
android.os.AsyncTask$2.call (AsyncTask.java:304)
java.util.concurrent.FutureTask.run (FutureTask.java:237)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1133)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:607)
java.lang.Thread.run (Thread.java:761)

Crash when i show rewardedVideo

  1. Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.facebook.ads.internal.util.af.a(android.view.MotionEvent, android.view.View, android.view.View)' on a null object reference
    at com.facebook.ads.internal.view.l$1.a(Unknown Source)
    at com.facebook.ads.internal.view.l$1.a(Unknown Source)
    at com.facebook.ads.internal.g.r.b(Unknown Source)
    at com.facebook.ads.internal.g.r.a(Unknown Source)
    at com.facebook.ads.internal.view.n.a(Unknown Source)
    at com.facebook.ads.internal.view.d.c.b.setVideoState(Unknown Source)
    at com.facebook.ads.internal.view.d.c.b.onCompletion(Unknown Source)

2.Crash when i show rewardedVideo, while i post run on uiThread
Caused by: java.lang.IllegalStateException: ad already started
at com.facebook.ads.internal.DisplayAdController.c(Unknown Source)
at com.facebook.ads.RewardedVideoAd.show(Unknown Source)
at com.superpow.wordchef.ad.c.a$2$3.run(RewardAdManager.java:149)
at android.os.Handler.handleCallback(Handler.java:751)

Native Video Ad Alignment Issue

I am using native ads inside recyclerview.
Image ads fine but video ads has alignment issue.

Device: LG G4 H815TR Android 6.0 API 23
SDK Version: 'com.facebook.android:audience-network-sdk:4.+'
XML: Same as fbsamples RCPY
MediaView Height: I try 100dp, 175dp, 200dp, 225dp, 250dp, 275dp, 300dp. All heights has same issue.
When i use wrap_content for mediaview everything is ok, but i dont want too height video ads.
When video adLoaded - Thumbnail is fine

Click play button and result

Edit
With NativeAdView.render no problem

Android Gradle plugin 3 migration error

Hi, I have this build error after migrating to android gradle plugin 3. Like here #60 .
Looks like problem with Java 8 and desugaring of ExoPlaybackException. Is audience-network support Java 8?

Exception in thread "main" java.lang.AssertionError: Failed to load class when desugaring method com/facebook/ads/internal/view/c/c/a.onPlayerError(Lcom/google/android/exoplayer2/ExoPlaybackException;)V at com.google.devtools.build.android.desugar.TryWithResourcesRewriter$TryWithResourceVisitor.isMethodCallTargeted(TryWithResourcesRewriter.java:186) at com.google.devtools.build.android.desugar.TryWithResourcesRewriter$TryWithResourceVisitor.visitMethodInsn(TryWithResourcesRewriter.java:161) at org.objectweb.asm.MethodVisitor.visitMethodInsn(Unknown Source) at com.google.devtools.build.android.desugar.InterfaceDesugaring$InterfaceInvocationRewriter.visitMethodInsn(InterfaceDesugaring.java:341) at org.objectweb.asm.tree.MethodInsnNode.accept(Unknown Source) at org.objectweb.asm.tree.InsnList.accept(Unknown Source) at org.objectweb.asm.tree.MethodNode.accept(Unknown Source) at com.google.devtools.build.android.desugar.LambdaDesugaring$InvokedynamicRewriter.visitEnd(LambdaDesugaring.java:383) at org.objectweb.asm.MethodVisitor.visitEnd(Unknown Source) at org.objectweb.asm.MethodVisitor.visitEnd(Unknown Source) at org.objectweb.asm.ClassReader.b(Unknown Source) at org.objectweb.asm.ClassReader.accept(Unknown Source) at org.objectweb.asm.ClassReader.accept(Unknown Source) at com.google.devtools.build.android.desugar.Desugar.desugarClassesInInput(Desugar.java:401) at com.google.devtools.build.android.desugar.Desugar.desugarOneInput(Desugar.java:326) at com.google.devtools.build.android.desugar.Desugar.desugar(Desugar.java:280) at com.google.devtools.build.android.desugar.Desugar.main(Desugar.java:584) Caused by: java.lang.ClassNotFoundException: Class com.google.android.exoplayer2.ExoPlaybackException not found at com.google.devtools.build.android.desugar.HeaderClassLoader.findClass(HeaderClassLoader.java:53) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at com.google.devtools.build.android.desugar.TryWithResourcesRewriter$TryWithResourceVisitor.isMethodCallTargeted(TryWithResourcesRewriter.java:183) ... 16 more

Using Native Ads in UITableView

This is not an issue, I just need help with implementing Native Ads in UITableView. I am implementing about 5 Native Ads in a tableview. How do I registerViewForInteraction for all the ads in the tableview? I am loading different ad at different indexPath and on didSelectRowAtIndexPath, I want to register the view for interaction but its not working.

Strong retain cycle with Native Ad

I've found a memory leak in your native sample.

If I set nativeAd.mediaCachePolicy = FBNativeAdsCachePolicyNone;
and then I comment image loading images using method loadImageAsyncWithBlock: and don't download images, I see a retain cycle in memory graph.
leak

Possible race condition in RewardedVideoAd initializing the ExoPlayer

ISSUE DETAILS:

We are using a custom URLStreamHandlerFactory in our project, setting it via URL#setURLStreamHandlerFactory. The RewardedVideoAd video playing stucks for us. The player doesn't send a GET request to the video URL. But the everything works fine, if we don't use a custom handler.

For isolating the bug, we created a dummy handler which just uses the platform default protocol handlers and passes on to them. The same issue persists with the dummy handler too.

If we insert a time delay of 1-2 seconds in URLStreamHandler#openConnection method of the handlers returned by our factory, it makes the video play. This hints towards a race condition or similar concurrency bug in the way RewardedVideoAd class interacts with ExoPlayer (possibly when it tries to initialize the player).

STEPS TO REPRODUCE:

  1. Clone the repository: https://github.com/jitesh-pz/facebook-ad-video-issue
  2. Open the project in android studio, build and deploy to a device
  3. From the main menu of the app, go to "Rewarded Videos" section, click on "Load Rewarded Video", once loaded, click "Show"
  4. The video player will stuck in the loading stage. (this is the bug)
  5. Now, from MainActivity.java, comment out line 53 (URL.setURLStreamHandlerFactory call). Build the app again, video playing will start working.
  6. To confirm the concurrency bug, uncomment the same line in previous step, and uncomment lines 86 and 95 (sleep calls) to introduce a delay, build the app again, video will start playing.

ADDITIONAL INFO:

SDK Version: 4.28.0 (compile 'com.facebook.android:audience-network-sdk:4.+')
Occurs independent of any particular device model, android version.. etc

screenshot_2018-03-13-15-21-50-490_com facebook audiencenetwork adssample
screenshot_2018-03-13-15-21-42-469_com facebook audiencenetwork adssample
screenshot_2018-03-13-15-21-32-148_com facebook audiencenetwork adssample
screenshot_2018-03-13-15-21-18-331_com facebook audiencenetwork adssample

Attempt to invoke virtual method 'void com.facebook.ads.internal.s.a.r.a(android.view.MotionEvent, android.view.View, android.view.View)' on a null object reference com.facebook.ads.internal.view.b.a.onTouchEvent

Lately I have a lot of crashes, reported by Crashlytics, with stacktrace like

Fatal Exception: java.lang.RuntimeException: Unable to destroy activity {MY_APP_PACKAGE/MY_APP_PACKAGE.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.facebook.ads.internal.s.a.r.a(android.view.MotionEvent, android.view.View, android.view.View)' on a null object reference
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3993)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4011)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4211)
at android.app.ActivityThread.access$800(ActivityThread.java:183)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1491)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5668)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:963)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:758)

Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'void com.facebook.ads.internal.s.a.r.a(android.view.MotionEvent, android.view.View, android.view.View)' on a null object reference
at com.facebook.ads.internal.view.b.a.onTouchEvent(Unknown Source)
at android.view.View.dispatchTouchEvent(View.java:8601)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2482)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2157)
at android.view.ViewGroup.cancelTouchTarget(ViewGroup.java:2395)
at android.view.ViewGroup.removeAllViewsInLayout(ViewGroup.java:4530)
at android.view.ViewGroup.removeAllViews(ViewGroup.java:4483)
at com.facebook.ads.AdView.destroy(Unknown Source)
at MY_APP_PACKAGE.Utils.AdMediator.dispose(Unknown Source)
at MY_APP_PACKAGE.MainActivity.onDestroy(Unknown Source)
at android.app.Activity.performDestroy(Activity.java:6349)
at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1148)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3980)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4011)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4211)
at android.app.ActivityThread.access$800(ActivityThread.java:183)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1491)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5668)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:963)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:758)

I show AdView in MainActivity (simple banner), I create it in my AdMediator (which is created in onCreate method of MainActivity) and dispose of it in dispose method, which is called in activity's onDestroy, like it was advised in manual:

    @Override
    protected void onDestroy() {
        if (adMediator != null) {
            adMediator.dispose();
        }
        ...
        super.onDestroy();
    }
    public void dispose() {
        if (fanView != null) {
            fanView.destroy();
            fanView = null;
        }
    }

I use 4.28.1 version of Audience Network SDK
Don't exactly know, if this would be helpful, but if ad is not loaded, I set visibility of AdView as INVISIBLE

            @Override
            public void onError(Ad ad, AdError adError) {
                fanFailed = true;
                if (fanView != null) fanView.setVisibility(View.INVISIBLE);
                showNext();
            }

On some device (Lenovo Phab Plus 5.0.2, genymotion 5.0.0) rewarded video don't start and back button locked

In logcat:
07-03 11:06:19.461 13663-13663/com.my.test E/MediaPlayer: Should have subtitle controller already set
07-03 11:06:19.463 7291-7616/? D/NuPlayerDriver: start(0xf2e0c340)
07-03 11:06:19.463 7291-13837/? I/GenericSource: start
07-03 11:06:19.705 7291-13860/? E/OMXNodeInstance: OMX_GetExtensionIndex OMX.google.android.index.storeMetaDataInBuffers failed
07-03 11:06:20.056 7291-13860/? E/ACodec: [OMX.google.h264.decoder] storeMetaDataInBuffers failed w/ err -2147483648
07-03 11:06:20.079 7291-13864/? I/SoftAAC2: limiting to stereo output
07-03 11:06:20.101 7291-13864/? I/SoftAAC2: Reconfiguring decoder: 0->44100 Hz, 0->2 channels
07-03 11:06:20.138 7291-13856/? D/AudioSink: bufferCount (8) is too small and increased to 12
07-03 11:06:20.140 7291-13862/? E/SoftAVC: Decoder failed: -2
07-03 11:06:20.140 7291-13860/? E/ACodec: [OMX.google.h264.decoder] ERROR(0x80001001)
07-03 11:06:20.140 7291-13860/? E/ACodec: signalError(omxError 0x80001001, internalError -2147483648)
07-03 11:06:20.140 7291-13858/? E/MediaCodec: Codec reported err 0x80001001, actionCode 0, while in state 6
07-03 11:06:20.141 7291-13857/? E/NuPlayerDecoder: Failed to dequeue output buffer for OMX.google.h264.decoder (err=-38)
07-03 11:06:20.141 7291-13837/? E/NuPlayer: received error(0xffffffda) from video decoder, flushing(0), now shutting down
07-03 11:06:20.142 13663-13679/com.my.test E/MediaPlayer: error (1, -38)
07-03 11:06:20.142 7291-13857/? E/NuPlayerDecoder: failed to flush OMX.google.h264.decoder (err=-38)
07-03 11:06:20.142 13663-13663/com.my.test E/MediaPlayer: Error (1,-38)
07-03 11:06:20.142 7291-13837/? E/NuPlayer: received error(0xffffffda) from video decoder, flushing(2), now shutting down
07-03 11:06:20.142 13663-13663/com.my.test E/MediaPlayer: stop called in state 0
07-03 11:06:20.142 13663-13663/com.my.test E/MediaPlayer: error (-38, 0)
07-03 11:06:20.142 7291-7616/? D/NuPlayerDriver: reset(0xf2e0c340)
07-03 11:06:20.165 7291-13837/? D/NuPlayerDriver: notifyResetComplete(0xf2e0c340)
07-03 11:06:20.165 13663-13839/com.my.test E/MediaPlayer: error (1, -38)
07-03 11:06:20.166 7291-8090/? D/NuPlayerDriver: reset(0xf2e0c340)
07-03 11:06:22.911 7291-7614/? W/AudioFlinger: write blocked for 9805 msecs, 4 delayed writes, thread 0xf3701000

5.1.0-beta android implementation

Hello,
I'm trying to implement 5.1.0-beta on my android app, however it's not clear on the beta SDK page how to do it.

<com.facebook.ads.NativeAdLayout
    android:id="@+id/native_ad_container"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" />
// Add the AdOptionsView
LinearLayout adChoicesContainer = findViewById(R.id.ad_choices_container);
AdOptionsView adOptionsView = new AdOptionsView(NativeAdActivity.this, nativeAd, nativeAdLayout);
adChoicesContainer.removeAllViews();
adChoicesContainer.addView(adOptionsView, 0);

That's what the page currently has, but I'm not sure what ad_choices_container, nativeAd and nativeAdLayout are.

Does anybody have a better example on how to implement it?

How to Native Ads in very large items list.

Hey i want to show native ads in my feed list which is almost unlimited.
I used facebook's NativeAdsManager with RecyclerView as Sample code does but problem is that it limits 10 and i want to load more Ads. i am showing ad after every 5 items. Is there any efficient way to load 2 or 3 ads with NaticeAdsManager first and request more ads as list gets scroll?

AudienceNetworkActivity AsyncTask blocked

com.facebook.android:audience-network-sdk:4.23.0
AudienceNetworkActivity
var3.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, new String[]{var1});
It will blocked the Other lib who used AsyncTask, pls fix it.

Update podspec

Hi!
What about update FBAudienceNetwork podspec to 4.27+ ? I suggest that you fixed iOS 11 issue here, and I want to update it through cocoapods.

Thanks

Always return error 1001 no fill

In version 4.28.1,use "AdSettings.addTestDevice" i can see TestAd.
but now always return error 1001 no fill

response like:
{"type":"error","code":1001,"message":"No fill","placements":[{"definition":{"placement_id":"264358014310343_265421714203973","type":"native","refresh":"0","refresh_threshold":"-1","min_viewability_percentage":"1","viewability_check_ticker":"0","viewability_check_interval":"100","viewability_check_initial_delay":"0","video_time_polling_interval":"200","cacheable":false,"client_max_retry_count":"1","invalidation_duration_in_seconds":"3600","conv_tracking_data":[{"url":"\/\/.facebook.com","key":"fr","value":"0o2U1C7KoCwwrwRUU.AWUpB5UZViaWqFDlNjhXTJG1Q00.BbNKQC..AAA.0.0.BbNKQC.AWUsNwjp","expiration":"1537952514"},{"url":"\/\/.atdmt.com","key":"ATX","value":"cdc2006e03eab69fcfbab9cf18f6f6f2518a2805","expiration":"1537952514"}]},"feature_config":{"adnw_android_video_caching_enabled":"true","adnw_enable_exoplayer":"false","adnw_enable_iab":"true","adnw_debug_logging":"true","adnw_block_lockscreen":"false","adnw_enable_debug_overlay":"false","adnw_ios_use_store_url":"true","adnw_client_request_id_enabled":"true","adnw_native_cookie_injection":"false","adnw_top_activity_viewability":"false","adnw_enhanced_viewability_area_check":"false","adnw_ios_watch_and_install":"false","adnw_android_disable_playable_precache":"false","adnw_android_disable_blur":"false","adnw_android_memory_opt":"false","adnw_viewability_check_area_based":"false","adnw_mapp_markup_impression_after_image_load":"false","adnw_ios_blur_images_enabled":"false","adnw_enable_inline_x_out_on_sdk":"false","adnw_android_wo_bot_detection_enabled":"false","unified_logging_immediate_delay_ms":"2000","adnw_purge_on_413_response":"false","ad_viewability_tap_margin":"0","minimum_elapsed_time_after_impression":"-1","visible_area_check_enabled":"false","visible_area_percentage":"50","disable_in_app_app_store":"true","unified_logging_event_limit":"30","video_and_endcard_autorotate":"autorotate_enabled","stack_trace_sample_rate":"100","show_metadata_rewarded_video":"true","show_play_pause_rewarded_video":"true","additional_debug_logging_sampling_percentage":"100","wo_bot_detection_config":"s:30,a:0","adnw_logging_endpoint_prefix":"www"},"ads":[]}]}

Lack of more elaborate examples / SOA patterns

I'm trying to integrate into angular and looking for guides to help me understand what functions / events should I call / fire when dynamically creating multiple ad divs, and really struggling to find examples.

Facebook native Ads are not clickable again in UITableView Cells after scroll

I have implemented facebook native Ads in UITableView, for first 1-2 times it clickable but when I scroll tableview and come again back to the same cell, now Ads are not clicking, I am using swift 3.2 Below is the cell implementation.

let ad = adsManager.nextNativeAd
let cell = self.tableHome.dequeueReusableCell(withIdentifier: "HomeAdsTableViewCell", for: indexPath) as! HomeAdsTableViewCell
cell.message.text = ad?.body
cell.title.text = ad?.title
cell.callToActionButton.setTitle(ad?.callToAction, for: .normal)

if let pic = ad?.coverImage {
cell.postImage.setImageWithIndicator(imageUrl:pic.url.absoluteString)
}

ad?.registerView(forInteraction: cell.postView, with: self)
cell.selectionStyle=UITableViewCellSelectionStyle.none

return cell

NullPointerException when init MediaView

Caused by: java.lang.NullPointerException:
at com.facebook.ads.DefaultMediaViewVideoRenderer.onVisibilityChanged (Unknown Source)
at android.view.View.dispatchVisibilityChanged (View.java:8732)
at android.view.ViewGroup.dispatchVisibilityChanged (ViewGroup.java:1148)
at android.view.View.setFlags (View.java:9775)
at android.view.View. (View.java:4160)
at android.view.ViewGroup. (ViewGroup.java:498)
at android.widget.FrameLayout. (FrameLayout.java:115)
at android.widget.FrameLayout. (FrameLayout.java:111)
at android.widget.FrameLayout. (FrameLayout.java:107)
at com.facebook.ads.MediaViewVideoRenderer. (Unknown Source)
at com.facebook.ads.DefaultMediaViewVideoRenderer. (Unknown Source)
at com.facebook.ads.MediaView. (Unknown Source)

Request new ad in recyclerview.

I have implemented ads in reycylerview in every 10th position. but when the ad loads, it display same ad in every position. How can i request new ad for new postion?

Unknown Error : Banner Ad

Code Implementation :
AdView adView = new AdView(this, "271995593270465_271996219937069", AdSize.BANNER_HEIGHT_50);//438544203147216_438545493147087
AdSettings.addTestDevice(hashKey());
adViewContainer.addView(adView);
adView.setAdListener(new AdListener() {
@OverRide
public void onError(Ad ad, AdError adError) {
Toast.makeText(MainActivity.this, "Error: " + adError.getErrorMessage(), Toast
.LENGTH_LONG).show();
}

        @Override
        public void onAdLoaded(Ad ad) {
            Toast.makeText(MainActivity.this, "Ad loaded!", Toast.LENGTH_LONG).show();
        }

        @Override
        public void onAdClicked(Ad ad) {
            Toast.makeText(MainActivity.this, "Ad clicked!", Toast.LENGTH_LONG).show();
        }

        @Override
        public void onLoggingImpression(Ad ad) {
            Toast.makeText(MainActivity.this, "onLogging", Toast.LENGTH_LONG).show();
        }
    });
    adView.loadAd();

But, it's toast Unknown error

Help me to short out this issue....

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.