Tag Archives: ios

Take the 2023 Google Mobile Ads SDK developer survey

Today, we’re excited to announce the launch of our 2023 Google Mobile Ads SDK Developer Survey. As part of our efforts to continue updating the AdMob and Ad Manager products, we’d like to hear from you about where we should focus our efforts. This includes product feedback as well as feedback on our guides, code samples and other resources. Your feedback will help shape our future product and resource roadmap.

Take the survey

This anonymous survey should only take about 15 minutes to complete and will provide our team with your valuable feedback as we plan for the months ahead. Whether you’re an engineer, Ad Ops personnel, or a PM, your feedback on AdMob, Ad Manager, and the Google Mobile Ads SDK is valuable to us. We appreciate you taking the time to help improve our developer experience!

Use Mobile Ads SDK Volume APIs Correctly to Maximize Video Ad Revenue

The volume control APIs provided by the Google Mobile Ads SDK are intended to mirror your app’s own custom volume controls. Utilizing these APIs ensures that the user receives video ads with the expected audio volume.

We’ll talk about some best practices implementing the volume control APIs in your iOS, Android or Unity project.

Why are we mentioning this?

Publishers can lose revenue when using these APIs to lower or mute the volume of the Google Mobile Ads SDK. Two issues we have commonly seen:

  1. Apps are using their own custom volume controls not sending the app’s accurate volume to the Google Mobile Ads SDK, but always sending zero
  2. App are just muting the SDK

Some apps have close to a 100% mute rate which doesn’t sound correct (pun intended). Setting application volume to zero or muting the application reduces video ad eligibility, which as a result may reduce your app’s ad revenue.

Volume control APIs

The Google Mobile Ads SDK offers two volume control APIs: setting the volume and toggling mute. These APIs are applicable to App Open, Banner, Interstitial, Rewarded and Rewarded Interstitial ad formats. For Native ads, use GADVideoOptions.

Setting application volume on each platform

iOS GADMobileAds.sharedInstance().applicationVolume = 1.0
Android MobileAds.setAppVolume(1.0f)
Unity MobileAds.SetApplicationVolume(1.0f)

Use applicationVolume to set your custom volume relative to the device volume. The range can be from 0.0 (silent) to 1.0 (current device volume). For example, if the device volume level was at half level and the user set your app’s custom volume to max level, set the applicationVolume to 1.0 and the user will receive an ad with the volume at half level.

Setting application mute on each platform

iOS GADMobileAds.sharedInstance().applicationMuted = true
Android MobileAds.setAppMuted(true)
Unity MobileAds.SetApplicationMuted(true)

Use applicationMuted if your custom volume controls include a mute button. Only toggle applicationMuted if the user selects your custom mute button. For example, if the user adjusts your custom volume to 0 you do not need to call applicationMuted; just call applicationVolume = 0.0.

Setting mute for native ads on each platform

iOS
let videoOptions = GADVideoOptions()
videoOptions.startMuted = true
adLoader = GADAdLoader(
adUnitID: "AD_UNIT_ID",
rootViewController: self,
adTypes: [ ... ad type constants ... ],
options: [videoOptions])
Android
val videoOptions = VideoOptions.Builder()
.setStartMuted(false)
.build()
val adOptions = NativeAdOptions.Builder()
.setVideoOptions(videoOptions)
.build()
val adLoader = AdLoader.Builder(this, "AD_UNIT_ID")
.forNativeAd( ... )
.withNativeAdOptions(adOptions)
.build()
Unity N/A - Native video ads are not supported in Unity.

Use startMuted if your custom volume controls include a mute button. Only toggle startMuted if the user selects your custom mute button.

Best Practices

To use our APIs as intended:

  1. applicationVolume should be called only when your custom volume control settings are set to reflect the new volume
  2. applicationMuted or startMuted should only be toggled to true if the user has muted your custom volume

As a rule of thumb, if your app does not have custom volume controls then you should not use these APIs.

What should you do?

To verify that your mobile applications are using these APIs correctly, we recommend that you enable test ads and force load a video test ad in your application. If your app has custom volume controls, the ad’s volume should be at the same level as the custom volume. Otherwise, the ad’s volume should match the device volume.

If you have any questions or need additional help, please contact us via the forum.

Announcing iOS Google Mobile Ads SDK Version 10.0.0

We are excited to announce the release of our newest version of the Google Mobile Ads SDK. We recommend upgrading as soon as possible to stay up-to-date with our latest features.

Version 10.0.0 Changes

Google Mobile Ads SDK version 10.0.0 introduces a few major changes:

  • The minimum OS version has been bumped from 11 to 12. Given the high adoption rate of iOS 16, we are continuing the trend of incrementing the minimum support level. Applications can still be built for iOS 11, however, the SDK will not load any ads on iOS 11.
  • Since bitcode is deprecated in Xcode 14, we have disabled bitcode in the SDK. As a result, this has decreased the download size of our SDK by ~35MB. What this means for you is to integrate with SDK version 10.0.0, you also have to disable bitcode (if you haven’t already) in the build settings of your Xcode project.
  • Ad Manager applications require an app ID upon initialization of the SDK. This also means the key GADIsAppManagerApp will no longer bypass this check. App IDs are added to the Info.plist with a key of GADApplicationIdentifier. See Update your Info.plist for more details.
  • Ad Manager applications require GoogleAppMeasurement.xcframework as a dependency. If you install the Google Mobile Ads SDK through CocoaPods or Swift Package Manager, no additional action is required. If you install frameworks manually, see Manual Download for more details.
  • We also have removed deprecated APIs of various properties and classes.

For the full list of changes, check the release notes. Check our migration guide to ensure your mobile apps are ready to upgrade.

SDK Deprecation Reminder

Per the deprecation schedule announced last year, the release of version 10.0.0 means that:

  • iOS Google Mobile Ads SDK versions 8.x.x is officially deprecated, and will sunset in Q2 2024.
  • Versions 7.x.x and below will sunset sometime in Q2 2023, approximately 60 days following the release of Android Google Mobile Ads SDK major version 22.0.0.

As always, if you have any questions or need additional help, contact us via the forum.

Google Workspace Updates Weekly Recap – December 9, 2022

New updates 

Unless otherwise indicated, the features below are fully launched or in the process of rolling out (rollouts should take no more than 15 business days to complete), launching to both Rapid and Scheduled Release at the same time (if not, each stage of rollout should take no more than 15 business days to complete), and available to all Google Workspace and G Suite customers. 




See collaborator avatars in the toolbar of apps on Android devices 
In continuation of our efforts to improve the Google Workspace experience on large screen Android devices, we’re moving collaborator avatars from the overflow menu into the app toolbar at the top of your Android tablets and mobile devices. 
widgets on android
Pin table headers when using pageless format on Google Docs 
When your Google Doc is set to the pageless format, you can now pin one or more table rows as header rows. When you scroll vertically past the top of the table, the headers will remain visible at the top of the window until you scroll to the bottom of the table. | Learn more
pinned headers
Easily share files in Google Meet chat on web 
Currently, when you share the link to a Google Drive file in Meet chat, you have to ensure the document is shared with those on the call, either proactively or reactively, on a separate screen. Starting this week, when sharing a file in Meet chat, you will now be prompted to update the file sharing permissions to reflect which meeting attendees you’d like to have access to a particular file, all within Meet. | Roll out to Rapid Release and Scheduled Release domains began December 5, 2022 at an extended pace (potentially longer than 15 days for feature visibility). | Learn more. 


Warning banners for external email recipients on iOS devices
Beginning today, you'll see a warning banner when adding external recipients to an email on iOS. These warnings are already available for Gmail on the web and Android devices. Note that admins can turn these specific warning labels on or off for their organization. | Roll out to Rapid Release and Scheduled Release domains began December 9, 2022 at an extended pace (potentially longer than 15 days for feature visibility). 


Improvements for using Miro in Google Meet
We've made two enhancements for the Miro experience within Google Meet:
  • Meeting participants will see a dialog invite instead of a chat message asking them to join a whiteboarding session.
  • Meeting hosts now have the option to end collaboration for the group as a whole. Alternatively, meeting participants will have the ability to leave the session individually.
We hope these improvements create a smoother collaborative experience when using Miro within Google Meet. | Learn more here and here.






Previous announcements


The announcements below were published on the Workspace Updates blog earlier this week. Please refer to the original blog posts for complete details.



More ways to prevent data exfiltration on iOS devices 
In 2020, we released several data exfiltration protections for iOS devices. Today, we’re announcing the next set of enhancements for data exfiltration protections for iOS. We’re expanding these security controls to give admins more ways to protect sensitive company data on iOS devices. | Available to Google Workspace Enterprise Standard, Enterprise Plus, Enterprise for Education, and Cloud Identity Premium customers only. | Learn more


New default setting for content managers to modify shared drives coming in February 2023 
Starting this week, admins will see a new shared drive setting that can be enabled or disabled to give content managers the ability to share folders in shared drives. In February 2023, all content managers will have the ability to share folders by default. If you’d like this feature to remain off for end users, disable the setting now. | Available to Google Workspace Essentials, Business Standard, Business Plus, Enterprise Essentials, Enterprise Standard, Enterprise Plus, Education Fundamentals, Education Plus, Education Standard, the Teaching and Learning Upgrade, and Nonprofits, as well as legacy G Suite Business customers only. | Learn more


Create drop-down chips in Google Sheets 
We’ve added dropdown chips in Google Sheets, a custom formatting feature that is already available in Docs. They also enable you to easily indicate statuses or various project milestones outlined in your Sheet. | Learn more


Collaborate with colleagues in Google Slides through a new ‘Follow’ feature
We’re introducing a new ‘Follow’ feature that allows you to collaborate with colleagues in real-time on Google Slides. Simply, click on a collaborator’s avatar in the Slides toolbar to jump to whatever slide they are on, and continue to move with them as they navigate and make changes to a presentation. | Learn more.



Completed feature rollouts


The features below completed their rollouts to Rapid Release domains, Scheduled Release domains, or both in the past week. Please refer to the original blog post for additional details.


Rapid Release Domains:


Rapid and Scheduled Release Domains:




For a recap of announcements in the past six months, check out What’s new in Google Workspace (recent releases).

More ways to prevent data exfiltration on iOS devices

What’s changing 

In 2020, we released several data exfiltration protections for iOS devices. Today, we’re announcing the next set of enhancements for data exfiltration protections for iOS. We’re expanding these security controls to give admins more ways to protect sensitive company data on iOS devices. 


Admins can now turn the following actions on or off for Google Workspace data: 
  • Copying Google Workspace files and data to personal apps 
  • Sharing Google Workspace data to personal accounts via AirDrop and the iOS share sheet 
  • Air Printing Google Workspace files 
  • Saving Google Workspace items to files with the iOS share sheet 
  • Saving Google Workspace images/videos to iOS photos 
  • Assigning items from Google Workspace to Contacts with the iOS share sheet. 


Who’s impacted 

Admins and end users 


Why it’s important 

This is the next step in ensuring we continue to enhance data protections for Google workspace data and how that information is stored, shared, and used across the iOS devices within your organization. Similar protections are already available on Android devices through Work Profiles


Getting started 

  • Admins: These settings can also apply to any OU level throughout the organization, to scale your policy settings to any iOS mobile device within your organization. These settings can be configured in the Admin console under Devices > Mobile and endpoints > iOS settings > Data Sharing. Visit the Help Center to learn more about data protection on iOS devices


  • End users: There is no end-user setting for this feature. Restricted actions are not shown or except for “Save to files”, in which case a dialog pops up notifying the user that this action is restricted. 

Rollout pace


Availability 

  • Available to Google Workspace Enterprise Standard, Enterprise Plus, Enterprise for Education, and Cloud Identity Premium customers. 

Resources 

SwiftUI Case Study: Presenting from View Controllers

We are happy to announce the release of an iOS sample application that demonstrates how to integrate the Google Mobile Ads SDK into a SwiftUI-based app. This post covers how we implemented full screen ad formats (interstitial, rewarded, rewarded interstitial) in SwiftUI.

The Google Mobile Ads SDK relies heavily on the UIKit Framework, depending on UIView or UIViewController for each ad format. For example, the SDK currently presents full screen ads using the following method:

present(fromRootViewController rootViewController: UIViewController)

In UIKit, ads are typically implemented in a UIViewController, so it is rather trivial to pass in a rootViewController value by simply invoking self. SwiftUI requires us to diverge from this approach, however, because UIViewController cannot be directly referenced in SwiftUI. Since we can’t just pass in self as the root view controller, we needed to achieve a similar result using a SwiftUI-native approach.

Our solution

We created an implementation of the UIViewControllerRepresentable protocol with a UIViewController property. Its one job is to provide access to the UIViewController reference in SwiftUI.

private struct AdViewControllerRepresentable: UIViewControllerRepresentable {
let viewController = UIViewController()

func makeUIViewController(context: Context) -> some UIViewController {
return viewController
}

func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context) {}
}

AdViewControllerRepresentable needs to be included as part of the view hierarchy even though it holds no significance to the content on screen. This is because canPresent(fromRootViewController:) requires the presenting view controller’s window value to not be nil.

private let adViewControllerRepresentable = AdViewControllerRepresentable()

var body: some View {
Text("hello, friend.")
.font(.largeTitle)
// Add the adViewControllerRepresentable to the background so it
// does not influence the placement of other views in the view hierarchy.
.background {
adViewControllerRepresentable
.frame(width: .zero, height: .zero)
}
}

To present the full screen ads in our sample app, we leveraged action events in SwiftUI.

Button("Watch an ad!") {
coordinator.presentAd(from: adViewControllerRepresentable.viewController)
}

And our AdCoordinator class does the honor of presenting it from our view controller.

private class AdCoordinator: NSObject {
private var ad: GADInterstitialAd?

...

func presentAd(from viewController: UIViewController) {
guard let ad = ad else {
return print("Ad wasn't ready")
}

ad.present(fromRootViewController: viewController)
}
}

And voila!

An alternative option

Instead of creating a UIViewControllerRepresentable, there was always the option to query the rootViewController property from UIWindow.

UIApplication.shared.windows.first?.rootViewController

We decided against this option for the following reasons:

  1. There is the inherent nullability risk to querying an optional array index.
  2. The default value of rootViewController is nil.
  3. If your app utilizes more than one window, the windows array will have multiple elements and therefore, makes querying the “first” window object unreliable.
  4. windows on the UIApplication object is deprecated in iOS 15 and UIWindowScene now holds the reference to this property.

Conclusion

We know there is more than one way to cook an egg when it comes to writing code in SwiftUI. For our use case, we chose the most low-code friendly option. If you have any questions, reach out to our developer forum.

Try it out!

Preview or download client-side encrypted files with Google Drive on Android and iOS

Quick summary 

Admins for select Google Workspace editions can update their client-side encryption configurations to include Drive Android and iOS. When enabled, users can preview or download client-side encrypted files. This feature is available for file types supported by Google Drive, including Microsoft Office and PDF files. Google Docs, Sheets, and Slides are not yet supported.




Support for Google identity on Drive Android & Drive iOS will be introduced in a future release — we will provide an update on the Workspace Updates blog at that time.


Getting started 


Rollout pace 


Availability 

  • Admins — Configure client-side encryption for Google Drive Android and iOS: Available to Google Workspace Enterprise Plus, Education Standard and Education Plus customers
  • End users — Preview or download client-side encrypted files with Google Drive Android and iOS: Available to all Google Workspace customers, as well as legacy G Suite Basic and Business customers

Resources 


Announcing a deprecation schedule for the Google Mobile Ads SDK

To provide Google Mobile Ads SDK developers for AdMob and Ad Manager more transparency and predictability on the expected lifetime of an SDK version, we are introducing a deprecation schedule for the Google Mobile Ads SDKs for Android and iOS.

Benefits

Introducing a predictable deprecation schedule offers the following benefits for app developers and publishers:

  1. Ability to predict and plan for SDK updates with a year of lead time.
  2. Legacy SDK code that only exists to support old versions can be deleted, thereby decreasing SDK size and lowering the risk of bugs.
  3. Engineering resources are freed up to focus more on support for newer SDKs and innovation of new SDK features.

Glossary

To understand the deprecation schedule, let’s first align the terms used to describe the state of a Google Mobile Ads SDK version:

SDK State Impact
Supported
Deprecated
  • Ads will still serve to this SDK.
  • Support questions specific to this SDK version are no longer answered on the Google Mobile Ads SDK developer forum. Users will be asked to validate the issue in a supported SDK version to receive full support.
Sunset
  • Ads will not serve to this SDK.
  • Ad requests return a no fill with an error indicating that this version is sunset.

Timelines

The deprecation and sunset timelines will revolve around major SDK version releases. We plan to do a major version release annually, in the first quarter of each year. The release of a new major version on both Android and iOS will trigger changes in SDK state for older major versions on both platforms.

Once we release a new major version N for both Android and iOS:

  • All SDK versions with major version N-2 on their respective platforms are considered deprecated immediately. Questions specific to these versions will no longer receive support.
  • All SDKs versions with major version N-3 on their respective platforms will sunset after 2 months.
    • We will publish subsequent blog posts communicating specific sunset dates to activate this two-month sunset period. The first sunset announcement is expected in Q1 2023 with a sunset date in Q2 2023.

With this schedule, a new major version will live in the supported state for about 2 years, and in the deprecated state for an additional year before moving to the sunset state.

The graphic below helps visualize the schedule:

How does the change apply to existing versions?

Effective today, Android v19 and iOS v7 versions are considered deprecated. In accordance with the schedule above, we plan to sunset Android v19 and iOS v7 versions in Q2 2023 following the releases of Android v22 and iOS v9 planned for Q1 2023. We will provide more specific sunset dates following the releases of Android v22 and iOS v9.

The graphic below helps visualize the state of existing Google Mobile Ads SDK versions for Android and iOS with today’s announcement.

Note: Versions 6.x.x and below for both Android and iOS have been sunset since 2018.

Exceptions

The deprecation schedule provides a framework for predictable lifetimes for an SDK version. However, there may be exceptions in the future. This schedule does not preclude us from sunsetting an SDK version at an earlier date, but we are committed to providing proactive communication with ample lead time for any future changes.

Next Steps

  1. Refer to the deprecation developer pages (Android | iOS) for the latest updates to the deprecation schedule. If you are on a deprecated version, see the Android migration guide or iOS migration guide for more information on how to update.
  2. Stay tuned for future updates to this blog, where more specific sunset dates will be communicated once new major Google Mobile Ads SDK versions are released.

If you have any questions about this announcement, please reach out to us on the Google Mobile Ads SDK Developer Forum.

Google Workspace Updates Weekly Recap – September 16, 2022

New updates 

Unless otherwise indicated, the features below are fully launched or in the process of rolling out (rollouts should take no more than 15 business days to complete), launching to both Rapid and Scheduled Release at the same time (if not, each stage of rollout should take no more than 15 business days to complete), and available to all Google Workspace and G Suite customers. 


Send multiple images or videos at a time in Chat 
You can now select more than one image or video at a time when sending a message in Google Chat. | This is now available across iOS devices. For Android devices, roll out to Rapid Release began September 15, 2022; launch to Scheduled Release planned for September 30, 2022. | Learn more

multi-image-chat

Multi-pinning and picture-in-picture improvements available for Google Meet on Android and iOS
Early this year, we made multi-pinning available for Google Meet on Chrome. With this feature, you’re able to pin up to three participants’ video tiles at once to keep them fixed on your screen. We’re happy to announce that this is now available on Android and iOS devices. | Learn more


Previous announcements 

The announcements below were published on the Workspace Updates blog earlier this week. Please refer to the original blog posts for complete details. 


New Google endpoint management setting to show both personal and work entries in Google Calendar on Android devices 
In 2020, we announced the ability to see your personal and work calendars together on your Android device. We’re now adding support for Google endpoint management admins to enable this feature for their users. | Available to Google Workspace Business Plus, Enterprise Standard, Enterprise Plus, Education Standard and Education Plus customers, as well as G Suite Business and Cloud Identity Premium customers only. | Learn more

Easily share Google Meet artifacts with co-hosts 
Earlier, Google Meet features such as Meet recordings, Attendance Tracking, Polling, etc, would generate meeting artifacts which were directly shared with the meeting host only. Beginning today, these artifacts can be directly shared with the meeting co-hosts as well. | Available to Google Workspace Essentials, Business Standard, Business Plus, Enterprise Starter, Enterprise Essentials, Enterprise Standard, Enterprise Plus, Education Standard, Education Plus, Education Fundamentals, and the Teaching and Learning Upgrade customers only. | Learn more

Spanish, French, and Portuguese Smart Replies in Google Chat 
Smart replies in Google Chat are now available in Spanish, French, and Portuguese. When you are typing a reply, Smart Reply will automatically detect the language and offer responses accordingly. | Learn more


For a recap of announcements in the past six months, check out What’s new in Google Workspace (recent releases).

Google Workspace Updates Weekly Recap – July 15, 2022

New updates 


There are no new updates to share this week. Please see below for a recap of published announcements. 

Previous announcements

The announcements below were published on the Workspace Updates blog earlier this week. Please refer to the original blog posts for complete details.


Allow collaborators to analyze data in Connected Sheets with delegated access 
Admins can now allow their users to delegate access to BigQuery when using Connected Sheets. This enables end users with access to BigQuery data to delegate their credentials to collaborators to allow them to refresh or edit analysis as needed. | Available to Google Enterprise Essentials, Enterprise Standard, Enterprise Plus, Education Standard, Education Plus customers only. | Learn more

Sync Apple DEP and Google Mobile Device Management servers on demand 
Admins can now trigger an on demand sync between Apple DEP and Google Mobile Device Management (MDM) servers for company owned devices. | Available to Google Workspace Enterprise Standard, Enterprise Plus, and Cloud Identity Premium customers only. | Learn more.

Add data loss prevention to Google Chat, now available as an open beta 
Admins can now establish data loss prevention (DLP) rules for Google Chat that can help protect sensitive data from getting to unauthorized users. | Available to Google Workspace Enterprise Standard, Enterprise Plus, Education Fundamentals, Education Standard, Education Plus, and the Teaching & Learning upgrade customers only and Cloud Identity Premium users who are licensed for Workspace editions with Drive audit log. | Learn more

Better sharing options for appointment schedules 
We’ve made it easier to share appointment schedules on web through a new Share button. This update allows appointment hosts to copy a short link to all appointment schedules or a specific booking page, and add HTML to embed a booking page on their website. | Available to Google Workspace Business Standard, Business Plus, Enterprise Standard, Enterprise Plus, Education Fundamentals, Education Standard, Education Plus, the Teaching and Learning Upgrade, and Nonprofits customers only. | Learn more

Use Miro within Google Meet for an immersive and collaborative whiteboard experience 
You can now leverage Miro, a third party online whiteboarding app, for ideating and problem solving as a group in Google Meet. | Learn more

Trust rules for Google Drive are now available in open beta 
The closed beta we announced in 2021 for trust rules in Google Drive that gives admins more control over how files can be shared, both within and outside of their organization, is now available as an open beta. | Available to Google Workspace Enterprise Plus, Enterprise Standard, Education Plus, and Education Standard customers only. | Learn more


For a recap of announcements in the past six months, check out What’s new in Google Workspace (recent releases).