(Optional) If the advertising_channel_sub_type of the campaign is
APP_CAMPAIGN_FOR_ENGAGEMENT, you can override the default CPA target at the
ad group level by setting target_cpa.
[[["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-08-20 UTC."],[[["\u003cp\u003eApp campaigns require ad groups and ads to drive installs, in-app actions, or in-app action value.\u003c/p\u003e\n"],["\u003cp\u003eAd group bid settings can be overridden only for \u003ccode\u003eAPP_CAMPAIGN_FOR_ENGAGEMENT\u003c/code\u003e campaigns by setting \u003ccode\u003etarget_cpa\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eAPP_CAMPAIGN_FOR_ENGAGEMENT\u003c/code\u003e campaigns need an \u003ccode\u003eAdGroupCriterion\u003c/code\u003e targeting a specific \u003ccode\u003eUserList\u003c/code\u003e for audience targeting.\u003c/p\u003e\n"],["\u003cp\u003eCreate ad group ads using the appropriate ad type based on the campaign's \u003ccode\u003eadvertising_channel_sub_type\u003c/code\u003e: \u003ccode\u003eAppAdInfo\u003c/code\u003e, \u003ccode\u003eAppEngagementAdInfo\u003c/code\u003e, or \u003ccode\u003eAppPreRegistrationAdInfo\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eUtilize existing assets for ad creation, except for text assets, which can be created during the process.\u003c/p\u003e\n"]]],[],null,["Whether you are creating an App campaign to drive more app installs, in-app\nactions or in-app action value, you will need ad groups and ads.\n\nCreate ad group and criteria\n\nCreate an [ad group](/google-ads/api/reference/rpc/v20/AdGroup) using\n[`AdGroupService`](/google-ads/api/reference/rpc/v20/AdGroupService). Do *not* specify a `type` for the ad\ngroup.\n\n- (Optional) If the [`advertising_channel_sub_type`](/google-ads/api/reference/rpc/v20/Campaign#advertising_channel_sub_type) of the campaign is\n `APP_CAMPAIGN_FOR_ENGAGEMENT`, you can override the default CPA target at the\n ad group level by setting `target_cpa`.\n\n- If the [`advertising_channel_sub_type`](/google-ads/api/reference/rpc/v20/Campaign#advertising_channel_sub_type) is `APP_CAMPAIGN`, you cannot override\n bid settings at the ad group level.\n\nIf the [`advertising_channel_sub_type`](/google-ads/api/reference/rpc/v20/Campaign#advertising_channel_sub_type) of the campaign is\n`APP_CAMPAIGN_FOR_ENGAGEMENT`, you must target a specific audience by adding an\n[`AdGroupCriterion`](/google-ads/api/reference/rpc/v20/AdGroupCriterion). Set the `user_list_info` field to\na [`UserListInfo`](/google-ads/api/reference/rpc/v20/UserListInfo), where the [`user_list`](/google-ads/api/reference/rpc/v20/AdGroupCriterion#user_list) contains the\nresource name of the [`UserList`](/google-ads/api/reference/rpc/v20/UserList) to target.\n\n- You cannot override bid settings at the ad group criterion level.\n\n- You cannot *exclude* criteria, so ensure that [`negative`](/google-ads/api/reference/rpc/v20/AdGroupCriterion#negative) is `false`.\n\n- If the [`advertising_channel_sub_type`](/google-ads/api/reference/rpc/v20/Campaign#advertising_channel_sub_type)\n is `APP_CAMPAIGN`, you cannot add ad group criteria.\n\nCreate ad group ad\n\nFor each logical set of [assets](/google-ads/api/docs/assets/overview), including videos,\nimages, and text, add an [ad group ad](/google-ads/api/reference/rpc/v20/AdGroupAd) with the\ncorresponding [ad](/google-ads/api/reference/rpc/v20/Ad) for the campaign's\n[`advertising_channel_sub_type`](/google-ads/api/reference/rpc/v20/Campaign#advertising_channel_sub_type):\n\n- If the sub type is `APP_CAMPAIGN`, use [`AppAdInfo`](/google-ads/api/reference/rpc/v20/AppAdInfo).\n\n- If the sub type is `APP_CAMPAIGN_FOR_ENGAGEMENT`, use\n [`AppEngagementAdInfo`](/google-ads/api/reference/rpc/v20/AppEngagementAdInfo).\n\n- If the sub type is `APP_CAMPAIGN_FOR_PRE_REGISTRATION`, use\n [`AppPreRegistrationAdInfo`](/google-ads/api/reference/rpc/v20/AppPreRegistrationAdInfo).\n\n| **Key Point:** You can create text assets for your ad during ad creation. For all other asset types, use existing assets and identify each asset by its resource name. For more detailed information about using assets, see the [Assets](/google-ads/api/docs/assets/overview) developer guide."]]