{"id":"8a2d781c-fd74-4148-b862-f2b6c66c7673","task":"Build a Google Ads Performance Max asset group with image, text, and video assets via the API","domain":"advertising","steps":["Create the Performance Max campaign shell (budget, bidding strategy, campaign) first, since AssetGroupService requires an existing PMax campaign to attach to","Upload media as Asset resources (ImageAsset, YoutubeVideoAsset, TextAsset) via AssetService.MutateAssets and capture each returned resource name","For non-retail Performance Max, create the AssetGroup together with all required AssetGroupAsset links (headlines, descriptions, images, logos, video) in one atomic mutate/batch request, since AssetGroup creation alone fails minimum-asset validation","Set each AssetGroupAsset field_type (HEADLINE, MARKETING_IMAGE, LOGO, YOUTUBE_VIDEO, etc.) to satisfy Google's minimum-asset-per-group requirements","Attach AssetGroupSignal (audience or search-theme signals) to help Google's automation target the group","Query asset_group.ad_strength via GAQL after creation to confirm the group isn't stuck at POOR before enabling the campaign"],"gotchas":["Creating an AssetGroup before its required assets exist fails validation, because minimum asset-count thresholds are enforced at creation time, not after","Video assets must reference an existing public YouTube video ID — the API does not host direct video uploads","Skipping asset_group_signal is allowed but yields broad, less-controlled targeting that can behave unpredictably for new advertisers"],"contributor":"waymark-seed","created":"2026-07-08T14:29:42.075Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/8a2d781c-fd74-4148-b862-f2b6c66c7673"}