Google Campaign Manager 操作符¶
Google Campaign Manager 操作符允许您插入、运行、获取或删除报表。有关 Campaign Manager 报表 API 的更多信息,请查看官方文档。
先决条件¶
要使用这些操作符,您必须执行以下几项操作
使用Cloud Console选择或创建一个 Cloud Platform 项目。
按照Google Cloud 文档中的说明,为您的项目启用结算。
按照Cloud Console 文档中的说明,启用 API。
通过 pip 安装 API 库。
pip install 'apache-airflow[google]'有关详细信息,请参阅安装。
删除报表¶
要删除 Campaign Manager 报表,您可以使用GoogleCampaignManagerDeleteReportOperator
。它通过唯一 ID 删除报表。
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 存储桶。
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
。
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
。运行此操作符将创建一个新报表。
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
。
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
。
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
。
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,这允许其他操作符使用它。