Google Campaign Manager 操作符 (Operators)

Google Campaign Manager 操作符允许您插入、运行、获取或删除报告。有关 Campaign Manager 报告 API 的更多信息,请参阅官方文档

先决条件任务

要使用这些操作符,您必须完成以下几件事

删除报告

要删除 Campaign Manager 报告,您可以使用GoogleCampaignManagerDeleteReportOperator。它会根据报告的唯一 ID 删除报告。

tests/system/google/marketing_platform/example_campaign_manager.py

delete_report = GoogleCampaignManagerDeleteReportOperator(
    profile_id=USER_PROFILE_ID,
    report_name=REPORT_NAME,
    task_id="delete_report",
    trigger_rule=TriggerRule.ALL_DONE,
    gcp_conn_id=CONNECTION_ID,
)

您可以将Jinja 模板profile_idreport_idreport_nameapi_versiongcp_conn_idimpersonation_chain参数一起使用,以便动态确定值。

下载报告

GoogleCampaignManagerDownloadReportOperator 允许您将 Campaign Manager 报告下载到 Google Cloud Storage 存储桶。

tests/system/google/marketing_platform/example_campaign_manager.py

report_name = f"reports/report_{str(uuid.uuid1())}"
get_report = GoogleCampaignManagerDownloadReportOperator(
    task_id="get_report",
    profile_id=USER_PROFILE_ID,
    report_id=report_id,
    file_id=file_id,
    report_name=report_name,
    bucket_name=BUCKET_NAME,
    gcp_conn_id=CONNECTION_ID,
)

您可以将Jinja 模板profile_idreport_idfile_idbucket_namereport_namechunk_sizeapi_versiongcp_conn_idimpersonation_chain参数一起使用,以便动态确定值。

等待报告

报告是异步生成的。要等待报告准备好下载,您可以使用GoogleCampaignManagerReportSensor

tests/system/google/marketing_platform/example_campaign_manager.py

wait_for_report = GoogleCampaignManagerReportSensor(
    task_id="wait_for_report",
    profile_id=USER_PROFILE_ID,
    report_id=report_id,
    file_id=file_id,
    gcp_conn_id=CONNECTION_ID,
)

您可以将Jinja 模板profile_idreport_idfile_idimpersonation_chain参数一起使用,以便动态确定值。

插入新报告

要插入 Campaign Manager 报告,您可以使用GoogleCampaignManagerInsertReportOperator。运行此操作符会创建一个新报告。

tests/system/google/marketing_platform/example_campaign_manager.py

create_report = GoogleCampaignManagerInsertReportOperator(
    profile_id=USER_PROFILE_ID,
    report=REPORT,
    task_id="create_report",
    gcp_conn_id=CONNECTION_ID,
)
report_id = cast("str", XComArg(create_report, key="report_id"))

您可以将Jinja 模板profile_idreportapi_versiongcp_conn_idimpersonation_chain参数一起使用,以便动态确定值。由于此操作符支持此模板扩展,您可以使用 .json 文件提供报告定义。结果会保存到 XCom,以便其他操作符使用。

运行报告

要运行 Campaign Manager 报告,您可以使用GoogleCampaignManagerRunReportOperator

tests/system/google/marketing_platform/example_campaign_manager.py

run_report = GoogleCampaignManagerRunReportOperator(
    profile_id=USER_PROFILE_ID,
    report_id=report_id,
    task_id="run_report",
    gcp_conn_id=CONNECTION_ID,
)
file_id = cast("str", XComArg(run_report, key="file_id"))

您可以将Jinja 模板profile_idreport_idsynchronousapi_versiongcp_conn_idimpersonation_chain参数一起使用,以便动态确定值。结果会保存到 XCom,以便其他操作符使用。

插入转化次数

要插入 Campaign Manager 转化次数,您可以使用GoogleCampaignManagerBatchInsertConversionsOperator

tests/system/google/marketing_platform/example_campaign_manager.py

insert_conversion = GoogleCampaignManagerBatchInsertConversionsOperator(
    task_id="insert_conversion",
    profile_id=USER_PROFILE_ID,
    conversions=[CONVERSION],
    encryption_source="AD_SERVING",
    encryption_entity_type="DCM_ADVERTISER",
    encryption_entity_id=ENCRYPTION_ENTITY_ID,  # type: ignore[arg-type]
    gcp_conn_id=CONNECTION_ID,
)

您可以将Jinja 模板profile_idconversionsencryption_entity_typeencryption_entity_idencryption_sourceimpersonation_chain参数一起使用,以便动态确定值。结果会保存到 XCom,以便其他操作符使用。

更新转化次数

要更新 Campaign Manager 转化次数,您可以使用GoogleCampaignManagerBatchUpdateConversionsOperator

tests/system/google/marketing_platform/example_campaign_manager.py

update_conversion = GoogleCampaignManagerBatchUpdateConversionsOperator(
    task_id="update_conversion",
    profile_id=USER_PROFILE_ID,
    conversions=[CONVERSION_UPDATE],
    encryption_source="AD_SERVING",
    encryption_entity_type="DCM_ADVERTISER",
    encryption_entity_id=ENCRYPTION_ENTITY_ID,  # type: ignore[arg-type]
    max_failed_updates=1,
    gcp_conn_id=CONNECTION_ID,
)

您可以将Jinja 模板profile_idconversionsencryption_entity_typeencryption_entity_idencryption_sourceimpersonation_chain参数一起使用,以便动态确定值。结果会保存到 XCom,以便其他操作符使用。

此条目是否有帮助?