Wersje robocze i eksperymenty kampanii

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

Wersja robocza to kopia istniejącej kampanii, która nie wyświetla własnych reklam, ale można jej używać do wdrażania zmian bez modyfikowania oryginalnej kampanii. Zmiany etapowe można następnie zastosować w kampanii podstawowej.

Eksperyment uruchamia kampanię z możliwością dostosowania równolegle do pierwotnej kampanii i wyświetla reklamy określonemu odsetkowi ruchu. W zależności od wyników eksperymentu możesz zastosować zmiany w pierwotnej kampanii, przekształcić eksperyment w niezależną kampanię lub porzucić kampanię z eksperymentem.

W tym przewodniku opisano podstawowy przepływ pracy z wersjami roboczymi i eksperymentami za pomocą skryptu.

Wersje robocze

Utworzenie wersji roboczej

Wersja robocza powstaje na podstawie istniejącej kampanii podstawowej, używając parametru DraftBuilder i nadając mu niepowtarzalną nazwę. Kampania podstawowa musi być kampanią w sieci wyszukiwania, w sieci wyszukiwania z rozszerzeniem na sieć reklamową lub kampanią w sieci reklamowej (z wyłączeniem kampanii promujących aplikacje mobilne w sieci reklamowej) i nie może mieć 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 naszym przewodniku po konstrukcjach.

Element draft jest jednoznacznie identyfikowany na podstawie identyfikatora kampanii podstawowej i identyfikatora wersji roboczej. Więcej informacji znajdziesz w sekcji DraftSelector.withIds().

Udostępnij roboczą wersję kampanii

Obiekt draft jest powiązany z kampanią podstawową i roboczą wersją kampanii. Aby etapami wprowadzać zmiany w kampanii podstawowej, rozpowszechniasz zmiany w wersji roboczej kampanii.

Robocza wersja kampanii, podobnie jak każda inna kampania, oferuje metody uzyskiwania i ustawiania różnych atrybutów, takich jak kryteria, grupy reklam, stawki i reklamy.

const draftCampaign = draft.getDraftCampaign();

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

Pamiętaj, że sprawdzanie zgodności z zasadami reklamowymi w wersji roboczej kampanii jest przeprowadzane tak samo jak w przypadku kampanii podstawowej. Eksperymentu nie można przeprowadzić na podstawie roboczej wersji kampanii, która zawiera reklamy naruszające zasady.

Wykonaj wersję roboczą

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

  1. Jeśli nie chcesz korzystać ze zmian, możesz usunąć wersję roboczą. Usunięcia wersji roboczej nie można cofnąć, ale nadal możesz ją wyświetlić w sekcji Wszystkie wersje robocze na karcie Wersje robocze w interfejsie Google Ads.

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

    draft.startApplying();
    

    Rozpoczyna ona proces wprowadzania aktualizacji w kampanii podstawowej, dzięki czemu wersja robocza otrzymuje w interfejsie Google Ads stan Stosuję.... Ta metoda nie powiadomi Cię jednak o zakończeniu procesu.

  3. Jeśli chcesz najpierw przetestować zmiany, możesz utworzyć eksperyment za pomocą wersji roboczej.

Eksperymenty

Utworzenie eksperymentu

experiment jest podobny do wersji roboczej, ale także tworzony na podstawie kampanii podstawowej. Tworzysz experiment z konstrukcją ExperimentBuilder. Spowoduje to automatyczne utworzenie eksperymentu z 2 „grupami”, które reprezentują różne części eksperymentu. Jedna z grup (nazywanych grupą kontrolną) będzie zawierać kampanię podstawową, a druga (zwana grupą eksperymentalną) będzie zawierać nową roboczą wersję kampanii, którą będzie można dostosować zgodnie z instrukcjami w wersji roboczej przedstawionej powyżej przed zaplanowaniem eksperymentu.

Podczas tworzenia eksperymentu skonfiguruj w konstruktorze wszystkie te elementy:

withCampaign
Kampania, na której podstawie chcesz utworzyć eksperyment.
withTrafficSplitPercent
Jaka część ruchu zostanie przekazana do grupy eksperymentalnej. Jako 50% wpisz 50.
withStartDatewithEndDate
Określa datę rozpoczęcia i zakończenia kampanii. Określ w formacie YYYYMMdd.
withType
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, gdy zostanie ona utworzona.
withGoals
Określa cele tego eksperymentu. To tylko przypomnienie, jakie były Twoje cele, kiedy tworzysz ten film. Dobra wartość domyślna to [{metric: 'CLICKS', direction: 'INCREASE'}].

Procent podziału ruchu określa, jaka część ruchu będzie wyświetlać reklamy z kampanii eksperymentalnej, a nie z kampanii podstawowej. Z tego względu w każdej kampanii podstawowej może występować tylko jeden aktywny eksperyment naraz.

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 mają unikalny identyfikator. Więcej informacji znajdziesz w sekcji ExperimentSelector.withIds().

Utwórz kampanię z eksperymentem

experiment, podobnie jak draft, nie jest kampanią. Wskazuje raczej na to kampanię podstawową, wersję roboczą i kampanię z eksperymentem. 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");

Możesz zmienić nazwę, datę rozpoczęcia i datę zakończenia eksperymentu. Później zostaną one zastosowane w kampanii eksperymentalnej.

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

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

Aby rozpocząć eksperyment, wywołaj experiment.startScheduling(). Jest to proces asynchroniczny, ponieważ musi kopiować wszystkie ustawienia z kampanii podstawowej.

Po zakończeniu eksperymentu

Po zakończeniu eksperymentu masz kilka możliwości do wyboru. Zalecamy, aby eksperyment całkowicie się zakończył, bo wtedy reklamy przestaną się wyświetlać, ale nadal możesz z niego korzystać. Zakończony eksperyment nadal możesz usunąć, zastosować lub przekształcić, a statystyki skuteczności jego kampanii są nadal dostępne.

experiment.finish();
const stats = experimentCampaign.getStatsFor("INSERT_TIME_PERIOD_HERE");
  • Jeśli wyniki eksperymentu nie są zadowalające, możesz go usunąć, co spowoduje też usunięcie kampanii z eksperymentem. Usunięcie eksperymentu jest nieodwracalne, ale nadal możesz go wyświetlić w sekcji Wszystkie eksperymenty na karcie eksperymentów w interfejsie Google Ads.

    experiment.remove();
    
  • Jeśli wyniki eksperymentu są satysfakcjonujące, masz 2 możliwości:

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

      experiment.startApplying();
      
    2. Kampanię z eksperymentem możesz ustawić jako niezależną, w pełni działającą kampanię bez wpływu na kampanię podstawową. Ten proces, nazywany ocenianiem, kończy się 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ż współdzielić budżetu z kampanią podstawową, co wymaga nowego budżetu. Kampanie stopniowe są jak zwykłe kampanie, ponieważ można w nich modyfikować wszystkie pola i mogą służyć jako kampania podstawowa dla większej liczby wersji roboczych i eksperymentów.

Inne uwagi

Encje podstawowe

Wprowadzenie do skryptów Google Ads wersji roboczych i eksperymentów spowodowało również wprowadzenie pojęcia elementów podstawowych. Kampanie robocze i eksperymentalne oraz zawarte w nich grupy reklam różnią się od oryginalnych kampanii podstawowych, dlatego kampanie Campaign i AdGroup mają teraz metody dostępu do kampanii podstawowej i grupy reklam: getBaseCampaign() i getBaseAdGroup().

Te metody zwracają element wywołujący, jeśli zostanie wywołany przez kampanię lub grupę reklam podstawową. Metody te są stosowane również w przypadku elementów w kampaniach i grupach reklam, takich jak słowa kluczowe i reklamy.

Aby ułatwić śledzenie jednostek 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 kampanii z eksperymentem, w przypadku których jako kampania podstawowa jest używana kampania wywołująca. Nie możesz jednak wybierać roboczych wersji kampanii za pomocą właściwości CampaignSelector.withCondition(). Użyj zamiast niej AdsApp.drafts().

Obsługa błędów

Poniższe metody obejmujące wersje robocze i eksperymenty są wykonywane podczas uruchamiania skryptu, ale mogą zakończyć się asynchronicznie:

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

Zaczekaj, aby sprawdzić, czy te operacje się powiodła. Interfejs Google Ads pokazuje stan Stosowany lub Aktywny po pomyślnym ukończeniu instrukcji startApplying() i startScheduling(). W przypadku niepowodzenia wyświetla się też komunikat Nie można zastosować lub Nie można utworzyć, dzięki czemu możesz kliknąć, aby zobaczyć błędy.

Może się też zdarzyć, że niektóre metody na etapie podglądu zakończą się niepowodzeniem, ale po ich uruchomieniu, np. po utworzeniu wersji roboczej:

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

W trybie podglądu nie uda się to zrobić, ponieważ nie będzie można uzyskać natychmiastowego dostępu do roboczej wersji kampanii.

Podobnie utworzenie eksperymentu i od razu próba pobrania wersji roboczej kampanii zakończy się niepowodzeniem w trybie podglądu, ponieważ w rzeczywistości nie jest ona tworzona.

Z tego powodu po uruchomieniu skryptu sprawdź logi pod listą skryptów i kontynuuj tworzenie skryptu w wersji testowej, tylko jeśli uważasz, że jego przyczyną są ograniczenia w trybie podglądu.