通过包含/排除多个 pagePaths 的 API 批量创建 AdWords 受众
Posted
技术标签:
【中文标题】通过包含/排除多个 pagePaths 的 API 批量创建 AdWords 受众【英文标题】:Bulk AdWords audience creation via API with including/expluding multiple pagePaths 【发布时间】:2017-04-25 10:30:53 【问题描述】:我的目标是使用 Google 电子表格中的数据作为参数,从 Google Analytics 统计数据中批量创建 AdWords 再营销受众。
我的代码基于这个article。
API 连接似乎工作正常。正在创建受众,但我在指定应根据 ga:pagePath 包含/排除受众的细分参数时遇到问题。
所以我的问题是:
我做错了什么? 谁能给点提示或建议如何让它发挥作用?电子表格表格
| Audience Name | URL include 1 | URL include 2 | URL include 3 | URL exclude 1 | URL exclude 2 | URL exclude 3 | Duration |
|---------------|---------------|---------------|---------------|---------------|---------------|---------------|----------|
| Test 1 | /test | /test2 | | | | | 540 |
|---------------|---------------|---------------|---------------|---------------|---------------|---------------|----------|
| Test 2 | /test3 | /test4 | | | | | 540 |
|---------------|---------------|---------------|---------------|---------------|---------------|---------------|----------|
电子表格宏脚本
function main()
var settings = 'linkedView':"XXXXXXXXX",
'linkedAccountId':"XXX-XXX-XXXX",
'accountId':'XXXXXXXX',
'propertyID':'UA-XXXXXXXX-X';
var spreadsheet = SpreadsheetApp.openByUrl('XXXXXX');
var sheet = spreadsheet.getSheetByName('test');
var range = sheet.getRange(2, 1, sheet.getLastRow(), 8);
var values = range.getValues();
for(var i = 0; i < values.length; i++)
var name = values[i][0];
var categoryUrl = values[i][1];
var duration = Math.floor(values[i][7]);
Logger.log(duration);
var inludeSegment = '';
var exludeSegment = '';
if(values[i][1])
inludeSegment += 'users::condition::ga:pagePath=@'+ values[i][1];
/*
if(values[i][2])
inludeSegment += ';ga:pagePath==' + values[i][2];
if(values[i][3])
inludeSegment += ';ga:pagePath==' + values[i][3];
if(values[i][4])
exludeSegment += 'sessions::condition::ga:pagePath==' + values[i][4];
if(values[i][5])
exludeSegment += ';ga:pagePath==' + values[i][5];
if(values[i][6])
exludeSegment += ';ga:pagePath==' + values[i][6];
*/
var newAudience = Analytics.Management.RemarketingAudience.insert(
'name': name,
'linkedViews': [settings.linkedView],
'linkedAdAccounts': [
'type': 'ADWORDS_LINKS',
'linkedAccountId': settings.linkedAccountId,
],
'description' : 'test',
'audienceType': 'SIMPLE',
'audienceDefinition':
'includeConditions':
'daysToLookBack': 14,
'segment': inludeSegment,
'membershipDurationDays': duration,
'isSmartList': false
,
settings.accountId,
settings.propertyID
);
Logger.log(newAudience);
Logger.log(i + ' Audience ' + name + ' has been created');
;
【问题讨论】:
【参考方案1】:我发现您对细分定义有疑问。
https://developers.google.com/analytics/devguides/reporting/core/v3/segments-feature-reference
这篇文章对你有帮助。
因为当你使用 ';'在 pagePathes 之间意味着会话必须同时包含两者。 users::condition::ga:pagePath=@/category1;ga:pagePath=@/category2
此段将收集所有访问2个类别的用户。
如果我们使用 ',' users::condition::ga:pagePath=@/category1**,**ga:pagePath=@/category2
此段将收集来自 1 和 2 类别的所有用户,即使用户只访问过一个。
你应该使用'!'从段中排除某些内容
sessions::condition::**!**ga:exitPagePath==/
希望对你有帮助!
【讨论】:
以上是关于通过包含/排除多个 pagePaths 的 API 批量创建 AdWords 受众的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 autoconf/automake 排除 boost 库/头文件包含问题?