Thử nghiệm là một giao diện để quản lý các chiến dịch thử nghiệm liên quan đến chiến dịch cơ sở. Chiến dịch thử nghiệm là chiến dịch hoàn chỉnh, có thể phân phát quảng cáo và tích luỹ số lượt nhấp, chi phí và các chỉ số khác.
Bước đầu tiên để chạy thử nghiệm bằng API Google Ads là tạo
Experiment
. Tài nguyên này xác định một số thông tin chính về thử nghiệm mà bạn muốn chạy, chẳng hạn như tên và loại thử nghiệm. Bạn chưa chỉ định bất kỳ chiến dịch nào tham gia vào thử nghiệm ở bước này.
Dưới đây là thông tin tổng quan về một số trường chính của Experiment
:
name
: Mỗi thử nghiệm phải có một tên riêng biệt.description
: Trường không bắt buộc mà bạn có thể sử dụng để tham chiếu sau này. Việc này không ảnh hưởng đến cách thử nghiệm chạy.suffix
: Hậu tố này sẽ được thêm vào cuối tên của các chiến dịch thử nghiệm để bạn có thể phân biệt chúng với chiến dịch đối chứng. Chúng tôi sẽ giải thích thêm về các khái niệm này trong trang nhóm thử nghiệm.type
: Loại thử nghiệm cần chạy. Có nhiều loại ở đây, nhưng hầu hết trong số đó là thử nghiệm hệ thống. Đối với thử nghiệm tuỳ chỉnh, bạn cần chỉ địnhSEARCH_CUSTOM
hoặcDISPLAY_CUSTOM
.status
: Khi tạo thử nghiệm, hãy đặt trường này thànhSETUP
. Sau này, khi bạn bắt đầu thử nghiệm, trường này sẽ cho phép bạn kiểm tra hoạt động hiện tạistart_date
vàend_date
: Chỉ định thời điểm thử nghiệm bắt đầu và kết thúc.sync_enabled
: Tắt theo mặc định. Nếu bạn đặt thànhtrue
, các thay đổi được thực hiện đối với chiến dịch gốc trong khi thử nghiệm đang chạy sẽ tự động được sao chép vào chiến dịch thử nghiệm. Tìm hiểu thêm.
Dưới đây là ví dụ về cách tạo một thử nghiệm:
Java
private String createExperimentResource(GoogleAdsClient googleAdsClient, long customerId) { ExperimentOperation operation = ExperimentOperation.newBuilder() .setCreate( Experiment.newBuilder() // Name must be unique. .setName("Example Experiment #" + getPrintableDateTime()) .setType(ExperimentType.SEARCH_CUSTOM) .setSuffix("[experiment]") .setStatus(ExperimentStatus.SETUP) .build()) .build(); try (ExperimentServiceClient experimentServiceClient = googleAdsClient.getLatestVersion().createExperimentServiceClient()) { MutateExperimentsResponse response = experimentServiceClient.mutateExperiments( Long.toString(customerId), ImmutableList.of(operation)); String experiment = response.getResults(0).getResourceName(); System.out.printf("Created experiment with resource name '%s'%n", experiment); return experiment; } }
C#
/// <summary> /// Creates the experiment. /// </summary> /// <param name="client">The Google Ads client.</param> /// <param name="customerId">The customer ID for which the call is made.</param> /// <returns>The resource name of the newly created experiment.</returns> private static string CreateAnExperiment(GoogleAdsClient client, long customerId) { // Get the ExperimentService. ExperimentServiceClient experimentService = client.GetService( Services.V16.ExperimentService); // Creates the experiment. Experiment experiment = new Experiment() { // Name must be unique. Name = $"Example Experiment #{ExampleUtilities.GetRandomString()}", Type = ExperimentType.SearchCustom, Suffix = "[experiment]", Status = ExperimentStatus.Setup }; // Creates the operation. ExperimentOperation operation = new ExperimentOperation() { Create = experiment }; // Makes the API call. MutateExperimentsResponse response = experimentService.MutateExperiments( customerId.ToString(), new[] { operation }); // Displays the result. string experimentResourceName = response.Results.First().ResourceName; Console.WriteLine($"Created experiment with resource name " + $"'{experimentResourceName}'."); return experimentResourceName; }
1.199
private static function createExperimentResource( ExperimentServiceClient $experimentServiceClient, int $customerId ): string { // Creates an experiment and its operation. $experiment = new Experiment([ // Name must be unique. 'name' => 'Example Experiment #' . Helper::getPrintableDatetime(), 'type' => ExperimentType::SEARCH_CUSTOM, 'suffix' => '[experiment]', 'status' => ExperimentStatus::SETUP ]); $experimentOperation = new ExperimentOperation(['create' => $experiment]); // Issues a request to create the experiment. $response = $experimentServiceClient->mutateExperiments( MutateExperimentsRequest::build($customerId, [$experimentOperation]) ); $experimentResourceName = $response->getResults()[0]->getResourceName(); print "Created experiment with resource name '$experimentResourceName'" . PHP_EOL; return $experimentResourceName; }
Python
def create_experiment_resource(client, customer_id): """Creates a new experiment resource. Args: client: an initialized GoogleAdsClient instance. customer_id: a client customer ID. Returns: the resource name for the new experiment. """ experiment_operation = client.get_type("ExperimentOperation") experiment = experiment_operation.create experiment.name = f"Example Experiment #{uuid.uuid4()}" experiment.type_ = client.enums.ExperimentTypeEnum.SEARCH_CUSTOM experiment.suffix = "[experiment]" experiment.status = client.enums.ExperimentStatusEnum.SETUP experiment_service = client.get_service("ExperimentService") response = experiment_service.mutate_experiments( customer_id=customer_id, operations=[experiment_operation] ) experiment_resource_name = response.results[0].resource_name print(f"Created experiment with resource name {experiment_resource_name}") return experiment_resource_name
Ruby
def create_experiment_resource(client, customer_id) operation = client.operation.create_resource.experiment do |e| # Name must be unique. e.name = "Example Experiment #{(Time.new.to_f * 1000).to_i}" e.type = :SEARCH_CUSTOM e.suffix = '[experiment]' e.status = :SETUP end response = client.service.experiment.mutate_experiments( customer_id: customer_id, operations: [operation], ) experiment = response.results.first.resource_name puts "Created experiment with resource name #{experiment}." experiment end
Perl
sub create_experiment_resource { my ($api_client, $customer_id) = @_; my $experiment = Google::Ads::GoogleAds::V16::Resources::Experiment->new({ # Name must be unique. name => "Example Experiment #" . uniqid(), type => SEARCH_CUSTOM, suffix => "[experiment]", status => SETUP }); my $operation = Google::Ads::GoogleAds::V16::Services::ExperimentService::ExperimentOperation ->new({ create => $experiment }); my $response = $api_client->ExperimentService()->mutate({ customerId => $customer_id, operations => [$operation]}); my $resource_name = $response->{results}[0]{resourceName}; printf "Created experiment with resource name '%s'.\n", $resource_name; return $resource_name; }