效果最大化广告系列所需的组件
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
如需从头开始生成新的效果最大化广告系列,您至少必须创建以下内容:
广告系列和预算对于制作各种类型的广告系列都非常有用,而与素材资源相关的操作则特别有助于制作效果最大化广告系列。
请务必熟悉变异策略,因为本指南仅提供要在变异中使用的 JavaScript 对象。
预算
预算不得为共享预算,且在您的账号中必须具有唯一名称。使用 CampaignBudgetOperation
。
const budgetOperation = {
"campaignBudgetOperation": {
"create": {
"resourceName": `customers/${customerId}/campaignBudgets/${getNextTempId()}`,
"name": "Performance Max campaign budget",
"amountMicros": "50000000",
"deliveryMethod": "STANDARD",
"explicitlyShared": false
}
}
}
operations.push(budgetOperation);
广告系列
广告系列必须引用之前创建的预算,因此除了使用临时 ID 指定其自己的资源名称之外,您还需要上一步中设置的确切资源名称才能创建广告系列,以便您能够唯一标识此请求中之前创建的预算。
使用 CampaignOperation
。
const campaignOperation = {
"campaignOperation": {
"create": {
"resourceName": `customers/${customerId}/campaigns/${getNextTempId()}`,
"name": "Performance Max campaign",
"status": "PAUSED",
"advertisingChannelType": "PERFORMANCE_MAX",
"campaignBudget": budgetOperation.campaignBudgetOperation.create.resourceName,
"biddingStrategyType": "MAXIMIZE_CONVERSION_VALUE",
"startDate": "20240314",
"endDate": "20250313",
"urlExpansionOptOut": false,
"maximizeConversionValue": {
"targetRoas": 3.5
}
}
}
}
operations.push(campaignOperation);
素材资源组
此广告系列的素材资源组需要引用广告系列,并且在您将素材资源与其相关联时,需要稍后引用该素材资源组。使用 AssetGroupOperation
。
const assetGroupOperation = {
"assetGroupOperation": {
"create": {
"resourceName": `customers/${customerId}/assetGroups/${getNextTempId()}`,
"campaign": campaignOperation.campaignOperation.create.resourceName,
"name": "Performance Max asset group",
"finalUrls": [
"http://www.example.com"
],
"finalMobileUrls": [
"http://www.example.com"
],
"status": "PAUSED"
}
}
}
operations.push(assetGroupOperation);
素材资源组链接
现在,您已经拥有素材资源组和素材资源(在上一步中创建),接下来需要将它们关联起来,以便效果最大化广告系列知道您要使用哪些素材资源。您必须在最初创建素材资源组的同一请求中执行此操作。为此,请使用 AssetGroupAssetOperation
。
您需要提供正确的广告资源名称,并将 fieldType
修改为与您要关联的广告资源相对应的值。请查看有效字段类型的完整列表。
您需要多次执行这些操作,才能满足效果最大化广告系列的最低要求。
operations.push({
"assetGroupAssetOperation": {
"create": {
"assetGroup": assetGroupOperation.assetGroupOperation.create.resourceName,
// assetResourceName here is a placeholder; you will need to determine
// the correct resource name to use depending on which asset you want
// to add to the asset group.
"asset": assetResourceName,
"fieldType": "HEADLINE"
}
}
});
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-08-27。
[null,null,["最后更新时间 (UTC):2025-08-27。"],[[["\u003cp\u003eTo create a new Performance Max campaign, you must generate a budget, the campaign itself, account-level assets, an asset group, and links between the assets and the asset group.\u003c/p\u003e\n"],["\u003cp\u003eThe budget should be unique and not shared, with a defined amount and delivery method.\u003c/p\u003e\n"],["\u003cp\u003eThe campaign needs to reference the budget, have a specific name, status, channel type, bidding strategy, start and end dates, and URL expansion settings.\u003c/p\u003e\n"],["\u003cp\u003eAn asset group is associated with the campaign, includes final URLs, and has a designated status.\u003c/p\u003e\n"],["\u003cp\u003eAsset group links connect the assets to the asset group, requiring the correct asset resource name and field type for each asset being linked, meeting the minimum requirements for the campaign.\u003c/p\u003e\n"]]],[],null,["# Performance Max Required Components\n\nTo generate a new Performance Max campaign from scratch, you must at a minimum\ncreate the following:\n\n- A [budget](/google-ads/api/reference/rpc/v21/CampaignBudget)\n- The [campaign](/google-ads/api/reference/rpc/v21/Campaign) itself\n- Account-level [assets](/google-ads/api/reference/rpc/v21/Asset)\n- An [asset group](/google-ads/api/reference/rpc/v21/AssetGroup)\n- [Links](/google-ads/api/reference/rpc/v21/AssetGroupAsset) between the assets in your account and the asset group you'll be using for this campaign.\n\nThe campaign and budget are useful for creating all sorts of campaign types,\nwhile the asset-related operations will be specifically useful for creating\nPerformance Max campaigns.\n\nMake sure you're familiar with the\n[mutate strategy](/google-ads/scripts/docs/features/performance-max/mutate-strategy),\nas this guide will only provide the JavaScript objects to be used in the\nmutates.\n\nBudget\n------\n\nThe budget must not be shared, and must have a unique name in your account. Use\na [`CampaignBudgetOperation`](/google-ads/api/reference/rpc/v21/CampaignBudgetOperation). \n\n const budgetOperation = {\n \"campaignBudgetOperation\": {\n \"create\": {\n \"resourceName\": `customers/${customerId}/campaignBudgets/${getNextTempId()}`,\n \"name\": \"Performance Max campaign budget\",\n \"amountMicros\": \"50000000\",\n \"deliveryMethod\": \"STANDARD\",\n \"explicitlyShared\": false\n }\n }\n }\n operations.push(budgetOperation);\n\nCampaign\n--------\n\nThe campaign must reference the previously created budget, so in addition to\nspecifying its own resource name with a temp ID, you will need the exact\nresource name you set in the previous step in order to create the campaign, so\nthat you can uniquely identify the budget previously created in this request.\nUse a [`CampaignOperation`](/google-ads/api/reference/rpc/v21/CampaignOperation). \n\n const campaignOperation = {\n \"campaignOperation\": {\n \"create\": {\n \"resourceName\": `customers/${customerId}/campaigns/${getNextTempId()}`,\n \"name\": \"Performance Max campaign\",\n \"status\": \"PAUSED\",\n \"advertisingChannelType\": \"PERFORMANCE_MAX\",\n \"campaignBudget\": budgetOperation.campaignBudgetOperation.create.resourceName,\n \"biddingStrategyType\": \"MAXIMIZE_CONVERSION_VALUE\",\n \"startDate\": \"20240314\",\n \"endDate\": \"20250313\",\n \"urlExpansionOptOut\": false,\n \"maximizeConversionValue\": {\n \"targetRoas\": 3.5\n }\n }\n }\n }\n operations.push(campaignOperation);\n\nAsset group\n-----------\n\nThe asset group for this campaign requires a reference to the campaign, and\nwill need to be referenced later when you link assets to it. Use an\n[`AssetGroupOperation`](/google-ads/api/reference/rpc/v21/AssetGroupOperation). \n\n const assetGroupOperation = {\n \"assetGroupOperation\": {\n \"create\": {\n \"resourceName\": `customers/${customerId}/assetGroups/${getNextTempId()}`,\n \"campaign\": campaignOperation.campaignOperation.create.resourceName,\n \"name\": \"Performance Max asset group\",\n \"finalUrls\": [\n \"http://www.example.com\"\n ],\n \"finalMobileUrls\": [\n \"http://www.example.com\"\n ],\n \"status\": \"PAUSED\"\n }\n }\n }\n operations.push(assetGroupOperation);\n\nAsset group links\n-----------------\n\nNow that you have our asset groups and our assets (from the previous step), you\nneed to link them together so that the Performance Max campaign knows which\nassets you want to use. You *must* do this in the same request where you create\nthe asset group initially. To do this, use an\n[`AssetGroupAssetOperation`](/google-ads/api/reference/rpc/v21/AssetGroupAssetOperation).\n\nYou will need to provide the correct asset resource name, as well as modifying\nthe `fieldType` to the appropriate value for the asset you're linking. Check\nout the [complete list of valid field types](/google-ads/api/reference/rpc/v21/AssetFieldTypeEnum.AssetFieldType).\n\nYou will need multiple of these operations to meet the\n[minimum requirements](/google-ads/api/performance-max/asset-requirements)\nfor a Performance Max campaign. \n\n operations.push({\n \"assetGroupAssetOperation\": {\n \"create\": {\n \"assetGroup\": assetGroupOperation.assetGroupOperation.create.resourceName,\n // assetResourceName here is a placeholder; you will need to determine\n // the correct resource name to use depending on which asset you want\n // to add to the asset group.\n \"asset\": assetResourceName,\n \"fieldType\": \"HEADLINE\"\n }\n }\n });"]]