4.4 캠페인 관리
소개
캠페인을 만든 후에 판매자가 캠페인을 변경할 수 있도록 하는 것이 중요합니다. 변경할 수 있어야 하는 가장 중요한 측면은 다음과 같습니다.
- 예산
- 상태 (일시중지, 사용, 삭제)
- 지역 타겟팅 (권장되지만 선택사항)
- 캠페인 생성 인터페이스에 포함한 기타 필드
UX 안내
캠페인 실적 보고의 일부로 개요 페이지와 별도의 페이지에 캠페인 목록을 표시합니다. 사용자가 캠페인을 일시중지, 삭제, 수정할 수 있습니다.
캠페인을 수정하면 판매자가 캠페인을 만드는 동안 입력한 것과 동일한 필드를 수정할 수 있습니다. 아래 예를 참고하세요.
기술 가이드
소매업체를 위한 실적 최대화 캠페인을 만든 후 다음과 같은 캠페인 설정을 변경할 수 있습니다.
- 캠페인 이름
- 캠페인 예산
- 캠페인 상태
- 캠페인 타겟팅 기준
개발자 가이드에서 리소스를 변경하는 방법에 관한 자세한 개요를 확인할 수 있습니다. 노출된 서비스 엔드포인트를 사용하여 특정 리소스를 변형하거나 (예: CampaignService.MutateCampaigns
) GoogleAdsService.Mutate
엔드포인트를 통해 사용 가능한 일괄 변형 기능을 사용하여 여러 리소스 간에 변형할 수 있습니다.
가능하면 일괄 변형을 통해 캠페인을 업데이트하는 데 필요한 작업 수를 줄이는 것이 좋습니다. 이 점을 염두에 두고 개별 리소스 엔드포인트 대신 GoogleAdsService.Mutate
엔드포인트를 사용하도록 아키텍처를 설계해야 합니다. 이렇게 하면 향후 기능을 더 쉽게 확장할 수도 있습니다.
이후 예에서는 로컬 데이터베이스에 관련 ID가 이미 저장되어 있다고 가정합니다.
캠페인 이름
캠페인의 이름을 업데이트하려면 Campaign.name
필드를 변경해야 합니다.
null (코드 포인트 0x0
), NL 라인 피드 (코드 포인트 0xA
) 또는 캐리지 리턴 (코드 포인트 0xD
) 문자를 포함해서는 안 됩니다.
캠페인 예산
기존 예산을 새 예산으로 대체하는 대신 업데이트하는 것이 좋습니다. 이렇게 하면 캠페인이 예상대로 지출되고 초과 게재로 이어지지 않습니다.
예산 값만 업데이트하고 다른 필드를 변경하면 안 되며 일일 지출 값을 높여야 합니다.
Python
budget_resource_name = client.get_service(
"CampaignBudgetService"
).campaign_budget_path(customer_id, budget_id)
mutate_operation = client.get_type("MutateOperation")
campaign_budget = mutate_operation.campaign_budget_operation.update
campaign_budget.resource_name = budget_resource_name
# update the budget amount to the new value
campaign_budget.amount_micros = 50000000
client.copy_from(
mutate_operation.campaign_budget_operation.update_mask,
protobuf_helpers.field_mask(None, campaign_budget._pb),
)
return mutate_operation
캠페인 상태
캠페인의 상태 (사용 설정/일시중지/삭제)를 업데이트하려면 Campaign.status
필드를 변경하고 CampaignStatus
enum에서 관련 상태를 할당해야 합니다.
캠페인 업데이트의 샘플 코드에서 캠페인 상태 변경의 예를 확인할 수 있습니다.
캠페인 기준
캠페인 기준을 업데이트할 때는 사용자에게 노출되는 기준을 업데이트하는 기능만 제공하면 됩니다. 이는 최소한 지역 타겟팅과 잠재적인 언어 타겟팅입니다. 캠페인 기준 입찰가 조정 업데이트의 샘플 코드에서 캠페인 기준을 업데이트하는 예를 확인할 수 있습니다.
지역 타겟팅 기준을 업데이트하려면 CampaignCriterion.location
를 새 지역 타겟 상수 값으로 업데이트합니다.
Python
criterion_rname = client.get_service(
"CampaignCriterionService"
).campaign_criterion_path(
customer_id, campaign_id, criterion_id
)
mutate_operation = client.get_type("MutateOperation")
campaign_criterion = mutate_operation.campaign_criterion_operation.update
campaign_criterion.resource_name = criterion_rname
# Set the geo to the update geo targeting
campaign_criterion.location.geo_target_constant = (
geo_target_constant_service.geo_target_constant_path("1022762")
) # Brooklyn
client.copy_from(
mutate_operation.campaign_criterion_operation.update_mask,
protobuf_helpers.field_mask(None, campaign_criterion._pb),
)
return mutate_operation
언어 타겟팅 기준을 업데이트하려면 CampaignCriterion.language
값의 값을 새 언어 상수로 업데이트해야 합니다.
Python
campaign_criterion_service = client.get_service("CampaignCriterionService")
criterion_rname = campaign_criterion_service.campaign_criterion_path(
customer_id, campaign_id, criterion_id
)
mutate_operation = client.get_type("MutateOperation")
campaign_criterion = mutate_operation.campaign_criterion_operation.update
campaign_criterion.resource_name = criterion_rname
# Set the language to the updated language
# For a list of all language codes, see:
# https://developers.google.com/google-ads/api/data/codes-formats#languages
campaign_criterion.language.language_constant = (
googleads_service.language_constant_path("1000")
) # English
client.copy_from(
mutate_operation.campaign_criterion_operation.update_mask,
protobuf_helpers.field_mask(None, campaign_criterion._pb),
)
return mutate_operation