التجارب هي واجهة لإدارة الحملات التجريبية المرتبطة بحملة أساسية. حملات التجارب هي حملات كاملة يمكنها عرض الإعلانات وتسجيل النقرات والتكلفة والمقاييس الأخرى.
تتمثّل الخطوة الأولى في إجراء تجربة باستخدام Google Ads API في إنشاء Experiment
. يحدّد هذا المرجع بعض المعلومات الأساسية حول التجربة التي تريد إجراؤها، مثل الاسم ونوع التجربة. لا تحدّد في هذه الخطوة أيًا من الحملات المشارِكة في التجربة.
في ما يلي نظرة عامة على بعض الحقول الرئيسية في Experiment
:
name
: يجب أن يكون لكل تجربة اسم فريد.-
description
: حقل اختياري يمكنك استخدامه كمرجع لاحقًا. ولا يؤثر ذلك في طريقة إجراء التجربة. -
suffix
: ستتم إضافة اللاحقة إلى نهاية أسماء الحملات التجريبية لتتمكّن من التمييز بينها وبين الحملة الضابطة. سيتم شرح هذه المفاهيم بشكل أكبر في صفحة مجموعات التجربة والعناصر الضابطة. -
type
: تحدّد نوع التجربة التي تريد تنفيذها. تتوفّر أنواع عديدة هنا، ولكن معظمها تجارب على مستوى النظام. بالنسبة إلى التجارب المخصّصة، عليك تحديدSEARCH_CUSTOM
أوDISPLAY_CUSTOM
. status
: عند إنشاء تجربة، اضبط هذا الحقل علىSETUP
. في وقت لاحق، بعد بدء التجربة، سيسمح لك هذا الحقل بالتحقّق من الإجراءات التي يتم تنفيذها حاليًا.start_date
وend_date
: حدِّد وقت بدء التجربة ووقت انتهائها.sync_enabled
: تكون هذه الميزة غير مفعّلة تلقائيًا. إذا تم ضبطها علىtrue
، سيتم تلقائيًا نسخ التغييرات التي تم إجراؤها على الحملة الأصلية أثناء تنفيذ تجربتك إلى حملة التجربة. مزيد من المعلومات
في ما يلي مثال على إنشاء تجربة:
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.V20.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; }
PHP
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::V20::Resources::Experiment->new({ # Name must be unique. name => "Example Experiment #" . uniqid(), type => SEARCH_CUSTOM, suffix => "[experiment]", status => SETUP }); my $operation = Google::Ads::GoogleAds::V20::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; }