如何通过编程获取已转换为GA4的UA属性关联的GA4 ID?
解决方案
要批量获取UA属性对应的GA4 ID,你需要使用Google Analytics Admin API的properties.linkedAccounts.list端点——这个接口可以查询GA4属性关联的所有外部账户(包括UA属性),从而建立两者的映射关系。
关键说明
- 单个GA4 Property对象或UA WebProperty对象确实没有直接存储关联的对方ID,必须通过关联账户接口查询
- 该接口需要你拥有目标GA4/UA属性的管理员权限
实现步骤(Python示例)
- 安装依赖库:
pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib
- 使用服务账号调用API的代码:
from google.oauth2 import service_account from googleapiclient.discovery import build # 替换为你的服务账号密钥文件路径 SERVICE_ACCOUNT_KEY_PATH = "your-service-account-key.json" # 替换为你的Google Analytics账户ID(格式:accounts/123456789) PARENT_ACCOUNT = "accounts/[你的账户ID]" SCOPES = ["https://www.googleapis.com/auth/analytics.edit"] def fetch_ua_ga4_mapping(): # 初始化认证 creds = service_account.Credentials.from_service_account_file( SERVICE_ACCOUNT_KEY_PATH, scopes=SCOPES ) admin_api = build("analyticsadmin", "v1", credentials=creds) ua_to_ga4 = {} # 获取当前账户下所有GA4属性 ga4_properties = admin_api.properties().list(parent=PARENT_ACCOUNT).execute() for prop in ga4_properties.get("properties", []): ga4_id = prop["propertyId"] # 查询该GA4属性关联的所有账户 linked_accounts = admin_api.properties().linkedAccounts().list( parent=f"properties/{ga4_id}" ).execute() # 筛选出UA类型的关联账户 for linked in linked_accounts.get("linkedAccounts", []): if linked["type"] == "UNIVERSAL_ANALYTICS": ua_id = linked["universalAnalyticsDetails"]["webPropertyId"] ua_to_ga4[ua_id] = ga4_id return ua_to_ga4 # 执行并输出映射结果 mapping_result = fetch_ua_ga4_mapping() for ua_property_id, ga4_property_id in mapping_result.items(): print(f"UA {ua_property_id} → GA4 {ga4_property_id}")
注意事项
- 确保服务账号被添加为目标Google Analytics账户的管理员角色
- 如果你的UA属性分布在多个GA账户下,需要遍历所有账户或调整
PARENT_ACCOUNT参数 - 接口返回的UA ID格式为
UA-XXXXXXXXX-X,与你手中的UA属性列表格式一致
内容的提问来源于stack exchange,提问作者Ilya Krasny
相关产品推荐
相关产品推荐

