I'm integrating Vungle into my next app, and I've been able to get everything to work properly, but the one thing that I cannot find in the documentation is a delegate method for handling an ad not loading.
There doesn't seem to be a adNotServed: or adNotAvailable: method.
Will this never happen? What if the user attempts to play the ad, but they don't have internet. How do I handle this?
Edit:
If I launch my app with no internet, Vungle is never started, so when I go to play the ad, nothing happens. There are no error messages; nothing is logged...
There are no such methods available in Vungle SDK. but you can use (BOOL)isAdPlayable; to check if an Ad is available (cached) before displaying it.
EXTRA: Also Vungle SDK has a delegate method - (void)vungleSDKAdPlayableChanged:(BOOL)isAdPlayable; Implement it and Vungle SDK will inform you when it has finished cacheing (when Ad is available to display).
Related
As the title suggests. Facebook SDK makes calls to graph.facebook.com when checking in Charles even though I'm not initializing the SDK in app delegate and I've removed all calls to the SDK.
I've made sure that there are no other frameworks in my stack which uses Facebook.
How is this even possible? Doesn't the SDK need to be initialized in App Delegate before it can perform any operations? Is there some clever way Facebook can bypass this through listening to notifications or method swizzling?
A user contacted me about this citing GDPR violations which is why I need this to be resolved.
Clarification: I removed the calls just to investigate this issue. I still need it for authentication purposes, but I don't want graph calls to be made upon launch as this is supposedly a violation of GDPR
I'm integrating Chartboost into one of my apps. I've done this before, but before GDPR.
In the integration docs, it says to call the "startWithAppId" within the first few seconds of launching an app. Got it. I do that in "didFinishLaunchingWithOptions"
It also says, "Publishers should call the addDataUseConsent API from the Chartboost SDK and pass in the appropriate consent value for GDPR and CCPA. Publishers are required as part of Terms of Service to obtain the consent from their users before Chartboost will process any personal data and pass it to the Chartboost SDK via the above method. This method should be called before startWithAppId if possible."
What's the best way to go about doing that? Grab the self.window.RootViewController, and present my own dialog?
Chartboost's example app does this:
[Chartboost addDataUseConsent:[CHBGDPRDataUseConsent gdprConsent:CHBGDPRConsentBehavioral]];
[Chartboost addDataUseConsent:[CHBCCPADataUseConsent ccpaConsent:CHBCCPAConsentOptInSale]];
before the startWithAppId call, but it needs to ask for permission, not blindly just set those values, right? Or am I missing something here?
For AdMob, I was able to use the PACConsentInformation, but I'm at a loss for what to do with only Chartboost.
Yes that's correct. You need to present your own dialog with CCPA and GDPR information and how it will be used. You can then use their response for those values.
I wouldn't worry too much about calling startWithAppId before showing the dialog. Just set both values to opt-out for the first session then the next time the user opens the app use their responses for the values. I would assume that startWithAppId just needs to be called ASAP for them to track stuff.
I'm seeing some very strange behavior with AdMob interstitials on iOS.
After closing an interstitial, AdMob automatically requests another interstitial without me creating a new GADInterstitial or calling loadRequest.
I can see this because I use GADCustomEventInterstitals, and I log when they're being used.
The next time I allocate a GADInterstitial and call loadRequest, AdMob loads the ad immediately without running through the ad mediation stack. The ad it loads is the one that was received when AdMob requested an ad without me asking for it.
It's as if AdMob is trying to automatically cache the next ad as soon as the previous ad has finished. I don't particularly want this behavior, and if I did, I could implement it myself.
In testing different versions of the Google-Mobile-Ads-SDK, I noticed that this behavior doesn't occur in version 7.6. But it does happen in version 7.16, 7.19, and 7.26.
Has anyone else noticed this sort of thing? Is there a way to turn it off or prevent it from happening?
We're trying to integrate the Facebook SDK just so we can track installs and the effect of Facebook ads on our mobile game on iOS.
From what I've been reading it sounds like the purpose of calling FB.Init() is to give back a page to display to the user to log them into Facebook. That's not really what we're interested in so we just ignore it. Our game doesn't need or want to log anyone into Facebook -- merely to track the install of the app by App Id. Do we even need to call this?
Is it enough merely to include the SDK and set up the settings file in our app for iOS builds?
Yes, you have to call it.
This method is used to initialize and setup the SDK. All other SDK methods must be called after FB.Init(), because they
won't exist until you do.
I have recently started programming in iOS. I found this really interesting way of showing an Ad in the Flixster app. It randomly pops up a latest movie banner and asks to watch trailer or skip to continue using the app. How is it actually implemented? how can they be pushing a variable screen (may be a view) at runtime? Every time you open the app, you see a different banner.
I work for Flixster and here's how we do it:
Every time the app starts or resumes, the app pings our API to ask for what ads should be shown. Our api gives our app the url of the image to be shown, as well as the click-through url, which can be a regular url, or a custom link to one of our native pages like viewing a trailer, or a movie info page.
We have an admin tool where we can upload the ad image, modify the properties of the ads, or remove old ads and add new ads. However, we've recently started using 3rd party Ad networks like DFP and Admob (acquired by Google) to take over this management.