Wersje robocze i eksperymenty kampanii

Scenariusze Google Ads obsługują wersje robocze i eksperymenty kampanii, które służą do przygotowywania i testowania zmian w kampaniach w sieci wyszukiwania i kampaniach w sieci reklamowej.

Wersja robocza to kopia dotychczasowej kampanii, która nie będzie wyświetlać własnych reklam, ale może służyć do wprowadzania zmian bez modyfikowania pierwotnej kampanii. Zmiany etapowe możesz następnie zastosować w kampanii podstawowej.

Eksperyment prowadzi kampanię z możliwością dostosowania równolegle do pierwotnej kampanii i wyświetla reklamy określonemu odsetkowi ruchu. Na podstawie wyników eksperymentu możesz zastosować zmiany w pierwotnej kampanii, wyodrębnić eksperyment w nowej kampanii lub zrezygnować z eksperymentu.

Ten przewodnik zawiera podstawowe informacje o procesie pracy z wersjami roboczymi i eksperymentami w skrypcie.

Wersje robocze

Utworzenie wersji roboczej

Projekt jest tworzony na podstawie istniejącej kampanii podstawowej za pomocą pliku DraftBuilderi unikalnej nazwy. Kampania podstawowa musi być kampanią w sieci wyszukiwania, kampanią w sieci wyszukiwania z rozszerzeniem na sieć reklamową lub kampanią w sieci reklamowej (z wyjątkiem kampanii promującej aplikację mobilną w sieci reklamowej) i nie może korzystać z budżetu wspólnego.

const campaign = AdsApp.campaigns()
    .withCondition(`campaign.name = "${campaignName}"`)
    .get()
    .next();

const draftBuilder = campaign.newDraftBuilder()
    .withName("INSERT_DRAFT_NAME_HERE")
    .build();

const draft = draftBuilder.getResult();

DraftBuilder.build() zwraca DraftOperation, typową operację w Skryptach. Więcej informacji znajdziesz w przewodniku po kreatorach.

draft można jednoznacznie zidentyfikować na podstawie kombinacji identyfikatora kampanii podstawowej i identyfikatora wersji roboczej. Więcej informacji znajdziesz w sekcji DraftSelector.withIds().

Tworzenie roboczej wersji kampanii

Obiekt draft wiąże kampanię podstawową i roboczą wersję kampanii. Aby wprowadzić aktualizacje w kampanii podstawowej, musisz je rozpowszechnić w wersji roboczej.

Kampania w wersji roboczej, podobnie jak każda inna kampania, ma metody służące do pobierania i ustawiania różnych atrybutów, np. kryteriów, grup reklam, stawek i reklam.

const draftCampaign = draft.getDraftCampaign();

draftCampaign.setAdRotationType("CONVERSION_OPTIMIZE");
draftCampaign.createNegativeKeyword("shoes");

Pamiętaj, że w przypadku kampanii w wersji roboczej sprawdzanie zgodności z zasadami dotyczącymi reklam odbywa się tak samo jak w przypadku kampanii podstawowej. Nie możesz przeprowadzić eksperymentu w wersji roboczej kampanii, która zawiera reklamy naruszające zasady.

Wykonaj wersję roboczą.

Po utworzeniu wersji roboczej kampanii możesz wykonać jedną z tych czynności:

  1. Jeśli nie chcesz używać zmian, możesz po prostu usunąć projekt. Usunięcie wersji roboczej jest nieodwracalne, ale nadal można ją wyświetlić na karcie „Wszystkie wersje robocze” w sekcji wersji roboczych w interfejsie Google Ads.

    draft.remove();
    
  2. Jeśli zdecydujesz się zachować zmiany wprowadzone w wersji roboczej, możesz je zastosować:

    draft.startApplying();
    

    Ta metoda uruchamia proces stosowania zmian do kampanii podstawowej, więc w interfejsie Google Ads stan szkicu będzie oznaczony jako Zmienianie…. Ta metoda nie powiadomi Cię, gdy proces się zakończy.

  3. Jeśli chcesz najpierw przetestować zmiany, możesz użyć wersji roboczej do utworzenia eksperymentu.

Eksperymenty

Utworzenie eksperymentu

experiment przypomina wersję roboczą i także jest tworzona na podstawie kampanii podstawowej. Utworzono experiment z: ExperimentBuilder. Dzięki temu automatycznie zostanie utworzony eksperyment z 2 grupami, które reprezentują różne części eksperymentu. Jedna grupa (nazywana grupą kontrolną) będzie zawierać kampanię podstawową, a druga (nazywana grupą eksperymentalną) będzie zawierać nową kampanię w wersji roboczej, którą spersonalizujesz zgodnie z podanymi powyżej instrukcjami dotyczącymi wersji roboczej przed zaplanowaniem eksperymentu.

Podczas tworzenia eksperymentu w kreatorze ustaw te opcje:

withCampaign
Kampania, na której podstawie ma być przeprowadzany eksperyment.
withTrafficSplitPercent
Ile ruchu trafi do grupy eksperymentalnej. W przypadku 50% wpisz 50.
withStartDatewithEndDate
Określa datę rozpoczęcia i zakończenia kampanii. Określ format YYYYMMdd.
withType
Może to być SEARCH_CUSTOM lub DISPLAY_CUSTOM, w zależności od używanej sieci.
withSuffix
Określa sufiks, który zostanie dodany do nazwy kampanii eksperymentalnej podczas jej tworzenia.
withGoals
Określa cele tego eksperymentu. Przypominamy Ci, jakie były Twoje cele, gdy go tworzysz. Dobrą wartością domyślną jest [{metric: 'CLICKS', direction: 'INCREASE'}].

Procent podziału ruchu określa, jaka część ruchu będą wyświetlane reklamy z kampanii eksperymentalnej, a nie z kampanii podstawowej. Z tego powodu każda kampania podstawowa może mieć w danym momencie tylko jeden aktywny eksperyment.

const experiment = AdsApp.newExperimentBuilder()
  .withCampaign(campaign)
  .withTrafficSplitPercent(50)
  .withStartDate("20230501")
  .withEndDate("20230601")
  .withType("SEARCH_CUSTOM")
  .withSuffix("experiment")
  .withGoals([{metric: 'CLICKS', direction: 'INCREASE'}])
  .build();

// The experimentCampaign represents the customizeable draft.
const experimentCampaign = experiment.getExperimentCampaign();

W przeciwieństwie do wersji roboczych eksperymenty są identyfikowane za pomocą unikalnego identyfikatora. Więcej informacji znajdziesz w sekcji ExperimentSelector.withIds().

Tworzenie kampanii z eksperymentem

Podobnie jak w przypadku draft, experiment samo w sobie nie jest kampanią. Odpowiada on kampanii podstawowej, wersji roboczej i kampanii eksperymentalnej. Pola kampanii eksperymentalnej można modyfikować, z tymi wyjątkami:

  • nazwa
  • status
  • data rozpoczęcia
  • data zakończenia
  • budżet
const experimentCampaign = experiment.getExperimentCampaign();

// Will succeed.
experimentCampaign.setAdRotationType("ROTATE_FOREVER");
experimentCampaign.createNegativeKeyword("sneakers");

// Will fail.
experimentCampaign.setName("INSERT_EXPERIMENT_NAME_HERE");

W eksperymencie możesz zmienić nazwę, datę rozpoczęcia i datę zakończenia, a następnie te zmiany zostaną przeniesione do kampanii z eksperymentem.

// Will succeed.
experiment.setName("INSERT_EXPERIMENT_NAME_HERE");

// Will succeed if date is acceptable.
const date = "20220601";
experiment.setStartDate(date);

Aby rozpocząć eksperyment, zadzwoń pod numer experiment.startScheduling(). Jest to proces asynchroniczny, ponieważ musi skopiować wszystkie ustawienia z kampanii podstawowej.

Po zakończeniu eksperymentu

Po zakończeniu eksperymentu masz kilka opcji do wyboru. Zalecamy, aby eksperyment zakończył się całkowicie, co spowoduje, że przestanie on wyświetlać reklamy, ale nadal będzie można z nim pracować. Eksperyment zakończony można usunąć, zastosować lub zakończyć, a statystyki skuteczności kampanii są nadal dostępne.

experiment.finish();
const stats = experimentCampaign.getStatsFor("INSERT_TIME_PERIOD_HERE");
  • Jeśli na podstawie statystyk nie jesteś zadowolony z eksperymentu, możesz go usunąć. W ten sposób usuniesz też eksperymentalną kampanię. Usunięcie eksperymentu jest nieodwracalne, ale nadal można go wyświetlić na karcie Eksperymenty w interfejsie Google Ads w sekcji Wszystkie eksperymenty.

    experiment.remove();
    
  • Jeśli wyniki eksperymentu są zadowalające, masz 2 opcje:

    1. Możesz zacząć stosować zmiany i tak jak w przypadku wersji roboczych, nie otrzymasz powiadomienia o zakończeniu procesu.

      experiment.startApplying();
      
    2. Kampanię eksperymentalną możesz utworzyć jako niezależną, w pełni działającą kampanię, która nie będzie wpływać na kampanię podstawową. Ten proces, nazywany awansem, jest wykonywany natychmiast i wymaga ustawienia nowego budżetu.

      const budget = AdsApp.budgets()
          .withCondition(`campaign_budget.id = ${budgetId}`)
          .get()
          .next();
      
      experiment.graduate(budget);
      

      Nowa kampania nie może już korzystać z budżetu kampanii podstawowej, dlatego musi mieć nowy budżet. Kampanie z awansem są takie same jak zwykłe kampanie, ponieważ wszystkie ich pola można modyfikować, a także mogą służyć jako kampanie podstawowe w przypadku kolejnych wersji roboczych i eksperymentów.

Inne uwagi

Encje podstawowe

Wprowadzenie wersji roboczych i eksperymentów do skryptów Google Ads wiąże się też z wprowadzeniem pojęcia elementów podstawowych. Kampanie robocze i eksperymentalne oraz znajdujące się w nich grupy reklam różnią się od oryginalnych kampanii podstawowych, dlatego kampanie Campaign i AdGroup mają teraz różne metody dostępu do kampanii podstawowej i grupy reklam: getBaseCampaign() i getBaseAdGroup().

Te metody zwracają element wywołujący, jeśli został wywołany przez kampanię podstawową lub grupę reklam. Metody są stosowane do elementów kampanii i grup reklam, takich jak słowa kluczowe i reklamy.

Aby ułatwić śledzenie elementów podstawowych, kampanie otrzymały metody isBaseCampaign(), isDraftCampaign() i isExperimentCampaign().

Nowe metody Campaign.draftCampaigns() i Campaign.experimentCampaigns() umożliwiają dostęp do wszystkich wersji roboczych i eksperymentów kampanii, które mają jako kampanię podstawową kampanię wywołującą. Nie możesz jednak wybierać wersji roboczych kampanii z CampaignSelector.withCondition(). Zamiast tego użyj opcji AdsApp.drafts().

Obsługa błędów

Poniższe metody dotyczące wersji roboczych i eksperymentów działają podczas wykonywania skryptu, ale mogą zakończyć się niepowodzeniem w niesynchronizowany sposób:

  • Draft.startApplying()
  • Experiment.startApplying()
  • Experiment.startScheduling()

Poczekaj, aż operacje się zakończą. W interfejsie Google Ads po pomyślnym ukończeniu operacji startApplying() i startScheduling() stan Zastosowany lub Aktywny będzie widoczny. W przypadku niepowodzenia wyświetla się komunikat Nie udało się zastosować lub Nie udało się utworzyć, a po kliknięciu można zobaczyć błędy.

Możliwe też, że niektóre metody nie działają na etapie podglądu, ale działają po wykonaniu, np. po utworzeniu wersji roboczej:

const draftCampaign = draft.getDraftCampaign();
draftCampaign.createNegativeKeyword("shoes"); // Will fail in preview.

Nie uda się to w trybie podglądu, ponieważ nie można od razu uzyskać dostępu do wersji roboczej kampanii.

Podobnie tworzenie eksperymentu i natychmiastowe próby pobrania jego wersji roboczej kampanii nie powiedzie się w trybie podglądu, ponieważ wersja robocza nie została jeszcze utworzona.

Dlatego po uruchomieniu skryptów sprawdź dzienniki poniżej ich listy i użyj skryptu, który nie zadziałał w podglądzie, tylko wtedy, gdy uważasz, że przyczyną były ograniczenia w tym trybie.