ניסויים הם ממשק לניהול קמפיינים ניסיוניים שקשורים לקמפיין בסיס. קמפיינים ניסיוניים הם קמפיינים מלאים שיכולים להציג מודעות ולצבור קליקים, עלויות ומדדים אחרים.
השלב הראשון בהפעלת ניסוי באמצעות 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.V21.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: GoogleAdsClient, customer_id: str ) -> str: """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: ExperimentOperation = client.get_type( "ExperimentOperation" ) experiment: 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: ExperimentServiceClient = client.get_service( "ExperimentService" ) response: MutateExperimentsResponse = experiment_service.mutate_experiments( customer_id=customer_id, operations=[experiment_operation] ) experiment_resource_name: str = 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::V21::Resources::Experiment->new({ # Name must be unique. name => "Example Experiment #" . uniqid(), type => SEARCH_CUSTOM, suffix => "[experiment]", status => SETUP }); my $operation = Google::Ads::GoogleAds::V21::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; }