Page Summary
-
AssetGroupSignals are used in Performance Max to optimize ad serving by providing Google with hints about user intent and preferences to find new customer segments.
-
There are two types of AssetGroupSignal hints: audiences and search themes, which help Google AI understand what customers are searching for and which topics lead to conversions.
-
An AssetGroup can have multiple AssetGroupSignals, but each signal must be added individually.
-
Audiences can be created with a scope of ASSET_GROUP for use in a single asset group.
-
Google Ads API provides recommendations like refreshing customer match lists and improving Google tag coverage to optimize audience signals.
An AssetGroupSignal is a signal that you can
provide to Google to optimize ad serving at the asset group level. Performance
Max uses these signals to look for new impressions with similar or stronger
intent to find conversions across Search, Display, Video, and more. Using your
asset group signals combined with Google's real-time understanding of consumer
intents and preferences, Performance Max can find new customer segments that you
might not have expected.
There are two types of hints that you can provide to Google:
audience and
search_theme. An AssetGroup
can have multiple asset group signals, but each signal must be added
individually by creating an AssetGroupSignal and populating the oneof
AssetGroupSignal.signal field.
Audiences
An Audience is a reusable collection of
focused segments, demographic targeting, and exclusions. An
AssetGroupSignal lets you specify which
Audience is most likely to convert for your AssetGroup.
Learn more about audience
signals.
An AssetGroupSignal can only be added to or removed from an AssetGroup. Any
modifications of the related Audience should be performed using the
AudienceService.
Java
AssetGroupSignal audienceSignal = AssetGroupSignal.newBuilder() .setAssetGroup(assetGroupResourceName) .setAudience( AudienceInfo.newBuilder() .setAudience(ResourceNames.audience(customerId, audienceId))) .build(); mutateOperations.add( MutateOperation.newBuilder() .setAssetGroupSignalOperation( AssetGroupSignalOperation.newBuilder().setCreate(audienceSignal)) .build());
C#
operations.Add( new MutateOperation() { AssetGroupSignalOperation = new AssetGroupSignalOperation() { Create = new AssetGroupSignal() { AssetGroup = assetGroupResourceName, Audience = new AudienceInfo() { Audience = ResourceNames.Audience(customerId, audienceId.Value) } } } } );
PHP
private static function createAssetGroupSignalOperations( int $customerId, string $assetGroupResourceName, ?int $audienceId ): array { $operations = []; if (is_null($audienceId)) { return $operations; } $operations[] = new MutateOperation([ 'asset_group_signal_operation' => new AssetGroupSignalOperation([ // To learn more about Audience Signals, see // https://developers.google.com/google-ads/api/docs/performance-max/asset-groups#audience_signals. 'create' => new AssetGroupSignal([ 'asset_group' => $assetGroupResourceName, 'audience' => new AudienceInfo([ 'audience' => ResourceNames::forAudience($customerId, $audienceId) ]) ]) ]) ]); return $operations; }