Google Campaign Manager 运营商¶
Google Campaign Manager 运营商允许您插入、运行、获取或删除报告。有关 Campaign Manager 报告 API 的更多信息,请查看官方文档。
先决条件¶
若要使用这些运营商,您必须执行以下操作
使用Cloud 控制台选择或创建 Cloud Platform 项目。
为您的项目启用帐单,如Google Cloud 文档中所述。
启用 API,如Cloud 控制台文档中所述。
通过pip安装 API 库。
pip install 'apache-airflow[google]'有关详细信息,请参阅安装。
删除报告¶
若要删除 Campaign Manager 报告,您可以使用GoogleCampaignManagerDeleteReportOperator
。它通过其唯一 ID 删除报告。
delete_report = GoogleCampaignManagerDeleteReportOperator(
profile_id=PROFILE_ID,
report_name=REPORT_NAME,
task_id="delete_report",
trigger_rule=TriggerRule.ALL_DONE,
)
您可以将 Jinja 模板 与 profile_id
、report_id
、report_name
、api_version
、gcp_conn_id
、delegate_to
、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=PROFILE_ID,
report_id=report_id,
file_id=file_id,
report_name=report_name,
bucket_name=BUCKET_NAME,
)
您可以将 Jinja 模板 与 profile_id
、report_id
、file_id
、bucket_name
、report_name
、chunk_size
、api_version
、gcp_conn_id
、delegate_to
、impersonation_chain
参数结合使用,以便动态确定值。
等待报表¶
报表是异步生成的。若要等待报表准备好下载,您可以使用 GoogleCampaignManagerReportSensor
。
wait_for_report = GoogleCampaignManagerReportSensor(
task_id="wait_for_report",
profile_id=PROFILE_ID,
report_id=report_id,
file_id=file_id,
)
您可以将 Jinja 模板 与 profile_id
、report_id
、file_id
、impersonation_chain
参数结合使用,这些参数允许您动态确定值。
插入新报表¶
要插入 Campaign Manager 报表,您可以使用 GoogleCampaignManagerInsertReportOperator
。运行此运算符将创建一个新报表。
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_id
、report
、api_version
、gcp_conn_id
、delegate_to
、impersonation_chain
参数结合使用,这些参数允许您动态确定值。您可以使用 .json
文件提供报表定义,因为此运算符支持此模板扩展。结果将保存到 XCom,这样其他运算符就可以使用它。
运行报表¶
要运行 Campaign Manager 报表,您可以使用 GoogleCampaignManagerRunReportOperator
。
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_id
、report_id
、synchronous
、api_version
、gcp_conn_id
、delegate_to
、impersonation_chain
参数配合使用,以便动态确定值。结果将保存到 XCom,以便其他运算符使用它。
插入转化¶
要插入 Campaign Manager 转化,您可以使用 GoogleCampaignManagerBatchInsertConversionsOperator
。
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_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=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_id
、conversions
、encryption_entity_type
、encryption_entity_id
、encryption_source
、impersonation_chain
参数配合使用,以便动态确定值。结果将保存到 XCom,以便其他运算符使用它。