Google Campaign Manager 操作符 (Operators)¶
Google Campaign Manager 操作符允许您插入、运行、获取或删除报告。有关 Campaign Manager 报告 API 的更多信息,请参阅官方文档。
先决条件任务¶
要使用这些操作符,您必须完成以下几件事
使用Cloud Console选择或创建 Cloud Platform 项目。
为您的项目启用结算功能,详见Google Cloud 文档。
启用 API,详见Cloud Console 文档。
通过 pip 安装 API 库。
pip install 'apache-airflow[google]'有关安装的详细信息。
删除报告¶
要删除 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_id
、report_id
、report_name
、api_version
、gcp_conn_id
、impersonation_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_id
、report_id
、file_id
、bucket_name
、report_name
、chunk_size
、api_version
、gcp_conn_id
、impersonation_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_id
、report_id
、file_id
、impersonation_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_id
、report
、api_version
、gcp_conn_id
、impersonation_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_id
、report_id
、synchronous
、api_version
、gcp_conn_id
、impersonation_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_id
、conversions
、encryption_entity_type
、encryption_entity_id
、encryption_source
、impersonation_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_id
、conversions
、encryption_entity_type
、encryption_entity_id
、encryption_source
、impersonation_chain
参数一起使用,以便动态确定值。结果会保存到 XCom,以便其他操作符使用。