通过API批量创建AdWords受众群体,包括/展示多个pagePath

问题描述 投票:1回答:1

我的目标是使用Google Spreadsheets中的数据作为从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');
  };
}
google-analytics google-analytics-api google-adwords
1个回答
0
投票

我发现你有段定义的问题。

https://developers.google.com/analytics/devguides/reporting/core/v3/segments-feature-reference

这篇文章可以帮到你。

因为当你使用';'时在PagePathes之间,这意味着会话必须包括两者。用户::条件:: GA:PAGEPATH = @ /类别1; GA:PAGEPATH = @ /类别2

此细分受众群将收集访问2个类别的所有用户。

如果我们使用','users :: condition :: ga:pagePath = @ / category1 **,** ga:pagePath = @ / category2

此细分受众群将收集1个和2个类别的所有用户,即使用户只访问过一个。

你应该使用'!'从段中排除某些内容

会议::状态:: ** GA:exitPagePath == /

希望它能帮到你!

© www.soinside.com 2019 - 2024. All rights reserved.