실적 최대화 캠페인에 필요한 구성요소
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
새 실적 최대화 캠페인을 처음부터 생성하려면 최소한 다음을 만들어야 합니다.
캠페인 및 예산은 모든 종류의 캠페인 유형을 만드는 데 유용하며, 확장 소재 관련 작업은 특히 실적 최대화 캠페인을 만드는 데 유용합니다.
이 가이드에서는 변이에 사용될 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"
}
}
});
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-08-27(UTC)
[null,null,["최종 업데이트: 2025-08-27(UTC)"],[[["\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 });"]]