Google Campaign Manager 运营商

Google Campaign Manager 运营商允许您插入、运行、获取或删除报告。有关 Campaign Manager 报告 API 的更多信息,请查看官方文档

先决条件

若要使用这些运营商,您必须执行以下操作

删除报告

若要删除 Campaign Manager 报告,您可以使用GoogleCampaignManagerDeleteReportOperator。它通过其唯一 ID 删除报告。

tests/system/providers/google/marketing_platform/example_campaign_manager.py[源代码]

delete_report = GoogleCampaignManagerDeleteReportOperator(
    profile_id=PROFILE_ID,
    report_name=REPORT_NAME,
    task_id="delete_report",
    trigger_rule=TriggerRule.ALL_DONE,
)

您可以将 Jinja 模板profile_idreport_idreport_nameapi_versiongcp_conn_iddelegate_toimpersonation_chain 参数结合使用,以便动态确定值。

下载报表

GoogleCampaignManagerDownloadReportOperator。允许您将 Campaign Manager 下载到 Google Cloud Storage 存储分区。

tests/system/providers/google/marketing_platform/example_campaign_manager.py[源代码]

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

您可以将 Jinja 模板profile_idreport_idfile_idbucket_namereport_namechunk_sizeapi_versiongcp_conn_iddelegate_toimpersonation_chain 参数结合使用,以便动态确定值。

等待报表

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

tests/system/providers/google/marketing_platform/example_campaign_manager.py[源代码]

wait_for_report = GoogleCampaignManagerReportSensor(
    task_id="wait_for_report",
    profile_id=PROFILE_ID,
    report_id=report_id,
    file_id=file_id,
)

您可以将 Jinja 模板profile_idreport_idfile_idimpersonation_chain 参数结合使用,这些参数允许您动态确定值。

插入新报表

要插入 Campaign Manager 报表,您可以使用 GoogleCampaignManagerInsertReportOperator。运行此运算符将创建一个新报表。

tests/system/providers/google/marketing_platform/example_campaign_manager.py[源代码]

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

您可以将 Jinja 模板profile_idreportapi_versiongcp_conn_iddelegate_toimpersonation_chain 参数结合使用,这些参数允许您动态确定值。您可以使用 .json 文件提供报表定义,因为此运算符支持此模板扩展。结果将保存到 XCom,这样其他运算符就可以使用它。

运行报表

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

tests/system/providers/google/marketing_platform/example_campaign_manager.py[源代码]

run_report = GoogleCampaignManagerRunReportOperator(
    profile_id=PROFILE_ID, report_id=report_id, task_id="run_report"
)
file_id = cast(str, XComArg(run_report, key="file_id"))

您可以将 Jinja 模板profile_idreport_idsynchronousapi_versiongcp_conn_iddelegate_toimpersonation_chain 参数配合使用,以便动态确定值。结果将保存到 XCom,以便其他运算符使用它。

插入转化

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

tests/system/providers/google/marketing_platform/example_campaign_manager.py[源代码]

insert_conversion = GoogleCampaignManagerBatchInsertConversionsOperator(
    task_id="insert_conversion",
    profile_id=PROFILE_ID,
    conversions=[CONVERSION],
    encryption_source="AD_SERVING",
    encryption_entity_type="DCM_ADVERTISER",
    encryption_entity_id=ENCRYPTION_ENTITY_ID,
)

您可以将 Jinja 模板profile_idconversionsencryption_entity_typeencryption_entity_idencryption_sourceimpersonation_chain 参数配合使用,以便动态确定值。结果将保存到 XCom,以便其他运算符使用它。

更新转化

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

tests/system/providers/google/marketing_platform/example_campaign_manager.py[源代码]

update_conversion = GoogleCampaignManagerBatchUpdateConversionsOperator(
    task_id="update_conversion",
    profile_id=PROFILE_ID,
    conversions=[CONVERSION_UPDATE],
    encryption_source="AD_SERVING",
    encryption_entity_type="DCM_ADVERTISER",
    encryption_entity_id=ENCRYPTION_ENTITY_ID,
    max_failed_updates=1,
)

您可以将 Jinja 模板profile_idconversionsencryption_entity_typeencryption_entity_idencryption_sourceimpersonation_chain 参数配合使用,以便动态确定值。结果将保存到 XCom,以便其他运算符使用它。

此条目有帮助吗?