Эксперименты: метод update

Требуется авторизация

Обновляет существующий эксперимент. Пример.

Помимо стандартных параметров, этот метод поддерживает перечисленные в таблице ниже.

Запрос

HTTP-запрос

PUT https://www.googleapis.com/analytics/v3/management/accounts/accountId/webproperties/webPropertyId/profiles/profileId/experiments/experimentId

Параметры

Название параметра Значение Описание
Параметры пути
accountId string Идентификатор аккаунта для обновляемого эксперимента.
experimentId string Идентификатор обновляемого эксперимента.
profileId string Идентификатор представления (профиля) для обновляемого эксперимента.
webPropertyId string Идентификатор веб-ресурса для обновляемого эксперимента.

Авторизация

Для выполнения этого запроса требуется авторизация как минимум в одной из следующих областей доступа. Подробнее...

Область доступа
https://www.googleapis.com/auth/analytics
https://www.googleapis.com/auth/analytics.edit

Тело запроса

В теле запроса необходимо предоставить ресурс management.experiment со следующими свойствами:

Название свойства Значение Описание Примечания
Обязательные свойства
id string Идентификатор эксперимента. Обязательное поле для методов patch и update. Не используется в методе create.
name string Название эксперимента. Для завершенных экспериментов (статус ENDED) это поле доступно только для чтения. Обязательно при создании эксперимента. Можно редактировать
status string Статус эксперимента. Допустимые значения: DRAFT, READY_TO_RUN, RUNNING, ENDED. Создаваемому эксперименту можно присваивать первые три статуса. При создании эксперимента это поле является обязательным. Можно редактировать
variations[].name string Название варианта. При создании эксперимента это поле является обязательным. Для завершенных экспериментов (статус ENDED) это поле доступно только для чтения. Можно редактировать
Необязательные свойства
description string Описание эксперимента. Можно редактировать
editableInGaUi boolean Указывает, может ли конечный пользователь редактировать эксперимент через интерфейс Google Analytics (значение true). Можно редактировать
equalWeighting boolean Логическое значение, задающее равномерное распределение трафика между всеми вариантами. Если задано значение false, эксперименты со страницами будут происходить в соответствии с заданным по умолчанию поведением с динамической корректировкой трафика на основе эффективности вариантов. Необязательный параметр, по умолчанию равный false. Для завершенных экспериментов (статус ENDED) это поле доступно только для чтения. Можно редактировать
minimumExperimentLengthInDays integer Целое число в диапазоне [3, 90], которое определяет минимальную продолжительность эксперимента и может изменяться во время его проведения. Для завершенных экспериментов (статус ENDED) это поле доступно только для чтения. Можно редактировать
objectiveMetric string Показатель, который оптимизируется в рамках эксперимента. Допустимые значения: ga:goal(n)Completions, ga:adsenseAdsClicks, ga:adsenseAdsViewed, ga:adsenseRevenue, ga:bounces, ga:pageviews, ga:sessionDuration, ga:transactions, ga:transactionRevenue. Если эксперимент имеет статус RUNNING, а параметр servingFramework имеет значение REDIRECT или API, это поле является обязательным. Можно редактировать
optimizationType string Указывает, требуется ли добиться минимального или максимального значения параметра objectiveMetric. Допустимые значения: MAXIMUM, MINIMUM. Необязательный параметр, по умолчанию равный MAXIMUM. Задается только вместе с параметром objectiveMetric и не может изменяться для экспериментов со статусом RUNNING или ENDED. Можно редактировать
rewriteVariationUrlsAsOriginal boolean Логическое значение, позволяющее перезаписывать URL вариантов в соответствии с URL исходной страницы. Для завершенных экспериментов (статус ENDED) это поле доступно только для чтения. Можно редактировать
servingFramework string Платформа для показа и анализа вариантов эксперимента. Допустимые значения:
  • REDIRECT – Google Analytics переадресует трафик на различные варианты страниц, формирует отчеты по вариантам и анализирует полученные результаты.
  • API – Google Analytics выбирает вариант для показа, создает отчеты на его основе и анализирует результаты. Показ варианта осуществляет вызывающая сторона.
  • EXTERNAL – обработку вариантов осуществляет внешняя платформа, передающая сведения о них в Google Analytics. Показ выбранного варианта и анализ результатов осуществляет вызывающая сторона.
Можно редактировать
trafficCoverage double Число с плавающей запятой в диапазоне от 0 до 1. Определяет долю трафика, включаемую в эксперимент, и может изменяться во время его проведения. Для завершенных экспериментов (статус ENDED) это поле доступно только для чтения. Можно редактировать
variations[] list Массив вариантов. Первым элементом является исходная страница. После того, как эксперименту присвоен статус RUNNING, количество вариантов нельзя изменить. Статус RUNNING может получить только эксперимент с как минимум двумя вариантами. Можно редактировать
variations[].status string Статус варианта. Допустимые значения: ACTIVE (активный) и INACTIVE (не показывается). Для завершенных экспериментов (статус ENDED) это поле доступно только для чтения. Можно редактировать
variations[].url string URL варианта. Для выполняющихся (статус RUNNING) и завершенных (статус ENDED) экспериментов это поле доступно только для чтения. Можно редактировать
winnerConfidenceLevel double Число с плавающей запятой в диапазоне от 0 до 1. Задает уровень доверительной вероятности для определения победившего варианта. Для завершенных экспериментов (статус ENDED) это поле доступно только для чтения. Можно редактировать

Ответ

В случае успеха метод возвращает ресурс management.experiment в теле ответа.

Примеры

Примечание. Примеры кода для этого метода не охватывают все поддерживаемые языки программирования (их список опубликован на странице, посвященной клиентским библиотекам).

Java

Используется клиентская библиотека Java.

/*
 * Note: This code assumes you have an authorized Analytics service object.
 * See the Experiments Developer Guide for details.
 */

// This example updates an existing experiment with new variations.
Variations variationA = new Variations();
variationA.setName("Home Alpha");
variationA.setUrl("homeA.html");
Variations variationB = new Variations();
variationB.setName("Home Beta");
variationB.setUrl("homeB.html");
List<Variations> variations = Arrays.asList(variationA, variationB);

try {
  // First get an existing Experiment.
  Experiment body = analytics.management().experiments().get("123456",
      "UA-123456-1", "7654321", "122333444455555").execute();

  // Set the new variations.
  body.setVariations(variations);

  // Call Update with the updated experiment.
  analytics.management().experiments().update("123456", "UA-123456-1",
      "7654321", "122333444455555", body).execute();
} catch (GoogleJsonResponseException e) {
  System.err.println("There was a service error: "
      + e.getDetails().getCode() + " : "
      + e.getDetails().getMessage());
}

PHP

Используется клиентская библиотека PHP.

/**
 * Note: This code assumes you have an authorized Analytics service object.
 * See the Experiments Developer Guide for details.
 */

/**
 * This request updates an existing experiment.
 */

// Construct the first variation.
$variationA = new Google_Service_Analytics_ExperimentVariations();
$variationA->setName('VariationA');
$variationA->setUrl('index.html');

// Construct the second variation.
$variationB = new Google_Service_Analytics_ExperimentVariations();
$variationB->setName('VariationB');
$variationB->setUrl('indexB.html');

try {
  // Get an existing Experiment.
  $experiment = $analytics->management_experiments->get('123456',
      'UA-123456-1', '7654321', '122333444455555');

  // Set the new variations.
  $experiment->setVariations(array($variationA, $variationB));

  // Call the update method with the updated experiment.
  $analytics->management_experiments->update('123456', 'UA-123456-1',
      '7654321', '122333444455555', $experiment);
} catch (apiServiceException $e) {
  print 'There was an Analytics API service error '
      . $e->getCode() . ':' . $e->getMessage();

} catch (apiException $e) {
  print 'There was a general API error '
      . $e->getCode() . ':' . $e->getMessage();
}

Python

Используется клиентская библиотека Python.

# Note: This code assumes you have an authorized Analytics service object.
# See the Experiments Developer Guide for details.

# This request updates an existing experiment with a new name,
# and new variations.
try:
  analytics.management().experiments().update(
      accountId='123456',
      webPropertyId='UA-123456-1',
      profileId='7654321',
      experimentId='ABCDEFG123456abcdefg',
      body={
          'name': 'Updated Test Title',
          'status': 'DRAFT',
          'variations': [
              {
                  'name': 'Checkout Page',
                  'url': 'checkout.html'
              },
              {
                  'name': 'Proposed Checkout Page',
                  'url': 'newCheckout.html'
              }
          ]
      }
  ).execute()

except TypeError, error:
  # Handle errors in constructing a query.
  print 'There was an error in constructing your query : %s' % error

except HttpError, error:
  # Handle API errors.
  print ('There was an API error : %s : %s' %
         (error.resp.status, error.resp.reason))

JavaScript

Используется клиентская библиотека JavaScript.

/*
 * Note: This code assumes you have an authorized Analytics client object.
 * See the Experiments Developer Guide for details.
 */

/*
 * This request updates an existing experiment.
 */
function updateExperiment() {
  var request = gapi.client.analytics.management.experiments.update(
    {
      'accountId': '123456',
      'webPropertyId': 'UA-123456-1',
      'profileId': '7654321',
      'experimentId': '122333444455555',
      'resource': {
        'name': 'Landing Page Test',
        'status': 'DRAFT',
        'variations': [
          {
            'name': 'VariationA',
            'url': 'index.html'
          },
          {
            'name': 'VariationB',
            'url': 'indexB.html'
          }
        ]
      }
    });
  request.execute(function (response) { // Handle the response. });
}