我的目标是使用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');
  };
}

最佳答案

我看到您在细分定义方面遇到了问题。

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

本文对您有帮助。

因为当您使用';'在pagePathes之间,这意味着会话必须同时包含两者。
用户:: condition :: ga:pagePath = @ / category1; ga:pagePath = @ / category2

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

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

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

您应该使用'!'从细分中排除某些内容

会话:: condition :: **!** ga:exitPagePath == /

希望对您有帮助!

关于google-analytics - 通过API批量创建AdWords受众群体,包括/扩展多个pagePath,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43608209/

10-10 09:01