Native ads have many advanced features that allow you to make additional
customizations and make the best possible ad experience. This guide shows you
how to use the advanced features of native ads.
This section details how to customize the creative assets in your native ads.
You have the option to specify a preferred aspect ratio for media assets and
how the image assets are downloaded and displayed.
Preferred media aspect ratio controls
Media Aspect Ratio Controls let you specify a preference for the aspect ratio of
ad creatives.
Some ads have a series of images rather than just one. Use this feature to
indicate whether your app is prepared to display all the images or just one.
This section details how to position the AdChoices overlay. You have the option
to set its placement to one of the four corners or render it within a custom
view.
AdChoices position controls
TheAdChoicesposition
controls lets you choose which corner to render the AdChoices icon.
The AdChoices custom view feature lets you position the AdChoices icon in a
custom location. This is different from AdChoices position controls, which only
allows specification of one of the four corners.
This section details how customize the playback experience for video ads. You
have the option to set the initial mute state and implement custom playback
controls.
Start mute behavior
The start muted behavior lets you disable or enable a video's starting audio.
When disabled, your video will show SDK rendered input controls.
If the ad does have video content and custom controls are enabled, you should
then display your custom controls along with the ad, as the ad won't show any
controls itself. The controls can then call the relevant methods on the
Because it's not known at request time whether the returned ad will allow
custom video controls, you must check whether it has custom controls enabled.
Render custom video controls using the following best practices:
Render the custom controls view as a child of the native ad view. This approach lets open measurement viewability calculations consider the custom controls as a friendly obstruction.
Avoid rendering an invisible overlay over the entire media view. Overlays block clicks on the media view, negatively impacting native ads performance. Instead, create a small overlay that is just large enough to fit the controls.
Custom click gestures
Custom click gestures is a native ads feature that enables swipes on ad views to
be registered as ad clicks. It is designed to work with apps that use swipe
gestures for content navigation. This guide shows how to enable custom click
gestures on your native ads.
The following example implements a custom swipe gesture to the right and
preserves normal tab behavior.
Custom click gestures is disabled by default.
When disabled, your app will support normal clicking behaviour.
When enabled, your app will support custom swipe gestures.
The following example implements a custom swipe gesture to the right and
preserves normal tab behavior.
Java
NativeAdOptionsadOptions=newNativeAdOptions.Builder().enableCustomClickGestureDirection(NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT,/* tapsAllowed= */true).build();// ca-app-pub-3940256099942544/2247696110 is a sample ad unit ID that has custom click// gestures enabled.AdLoader.Builderbuilder=newAdLoader.Builder(context,"AD_UNIT_ID").withNativeAdOptions(adOptions);
When a swipe gesture click is recorded, Google Mobile Ads SDK invokes theonAdSwipeGestureClicked()method onAdListener, in addition to the existingonAdClicked()method.
Java
AdLoaderadLoader=newAdLoader.Builder(context,AD_UNIT_ID).withAdListener(newAdListener(){// Called when a swipe gesture click is recorded.@OverridepublicvoidonAdSwipeGestureClicked(){// Called when a swipe gesture click is recorded.Log.d(TAG,"A swipe gesture click has occurred.");}@OverridepublicvoidonAdClicked(){// Called when a swipe gesture click or a tap click is recorded, as// configured in NativeAdOptions.Log.d(TAG,"A swipe gesture click or a tap click has occurred.");}}).build();
valadLoader=AdLoader.Builder(context,AD_UNIT_ID).withAdListener(object:AdListener(){overridefunonAdSwipeGestureClicked(){// Called when a swipe gesture click is recorded.Log.d(TAG,"A swipe gesture click has occurred.")}overridefunonAdClicked(){// Called when a swipe gesture click or a tap click is recorded, as// configured in NativeAdOptions.Log.d(TAG,"A swipe gesture click or a tap click has occurred.")}}).build()
Custom click gestures only work on native ads that Google Mobile
Ads SDK renders. Ad sources thatrequire third-party SDKsfor
rendering, don't respond to the custom click directions setting.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eThis guide explains how to use advanced features for native ads, such as controlling media aspect ratios, image downloads, and image payloads.\u003c/p\u003e\n"],["\u003cp\u003eIt covers customization options like AdChoices placement and creating custom views, along with video controls for muting behavior and custom playback.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can learn how to implement custom click gestures for swipes, and understand how these features interact with mediation.\u003c/p\u003e\n"],["\u003cp\u003eThe guide requires prior integration of the Native ad format and assumes familiarity with Android development.\u003c/p\u003e\n"]]],[],null,[]]