Migracja

Nowa infrastruktura skryptów Google Ads opiera się na interfejsie Google Ads API. Ze względu na różną architekturę tego interfejsu API konieczna może być aktualizacja istniejących skryptów. Dołożyliśmy wszelkich starań, aby zapewnić jak największą zgodność wsteczną, więc zmiany nie powinny być niewielkie.

Raporty

Wiele raportów AWQL będzie nadal działać. Podczas korzystania z nowej infrastruktury skrypty konwertują zapytania AWQL na GAQL (nowy język zapytań interfejsu Google Ads API), uruchamiają je w nowym backendzie, a następnie przekonwertują wyniki z powrotem do formatu używanego pierwotnie w raportach AWQL. Zapytania z GAQL będą przesyłane bez zmian.

Z tego powodu zalecamy, aby w miarę możliwości przejrzeć skrypty i zaktualizować zapytania AWQL do GAQL. Możesz użyć narzędzia do migracji zapytań, które korzysta z tej samej logiki co skrypty, aby określić zapytanie GAQL dla danego zapytania AWQL, lub interaktywnego kreatora zapytań, który ułatwia tworzenie zapytań.

Oto kilka ograniczeń automatycznego tłumaczenia AWQL na GAQL:

  • Nie wszystkie zapytania AWQL są prawidłowo tłumaczone na zapytania GAQL. W takich przypadkach logowany jest komunikat o błędzie z informacjami o tym, co poszło nie tak. Ułatwia to ręczne naprawienie błędu.
  • Nie wszystkie typy raportów z AWQL są obsługiwane w GAQL.
  • GAQL nie obsługuje „zerowych wierszy wyświetleń”. Określenie, że raport nie powinien uwzględniać żadnych wyświetleń, spowoduje błąd.
  • Niektórych pól niejednoznacznych nie można używać w filtrach. Na przykład „Nagłówek” może odnosić się do dowolnej liczby różnych pól reklamy.
  • Niektóre pola mogą zwracać wyniki w innym formacie, np. dzieląc wynik na kilka kolumn.

Organizuję selektory

Podczas pobierania zasobów za pomocą skryptów często używa się wywołań withCondition i orderBy, aby ograniczyć lub uporządkować wyniki w iteratorze. Pola w tych wywołaniach używają teraz nowych nazw interfejsu Google Ads API. Aby np. filtrować dane według nazwy kampanii, wcześniej trzeba było użyć:

.withCondition('CampaignName = "SOME_CAMPAIGN_NAME"')

Teraz gdy tylko jest to możliwe, używaj nowych nazw pól dla tych warunków:

.withCondition('campaign.name = "SOME_CAMPAIGN_NAME"')

Dołożyliśmy wszelkich starań, aby włączyć mapowanie starych nazw na nowe, więc jeśli Twój skrypt nadal używa CampaignName, w czasie działania zostanie on automatycznie zastąpiony campaign.name, aby mieć pewność, że skrypt nadal będzie działać. Jeśli napotkasz jakieś problemy ze starymi nazwami stylów, zaktualizuj skrypty tak, aby nowe nazwy stylów były używane jako pierwszy krok do ich rozwiązania.

Limity

Wiele limitów jest takich samych, jak w starej infrastrukturze, a wprowadzone tu zmiany zasadniczo poprawiają wydajność.

  • Limity czasu są takie same. Skrypt może działać przez 30 minut.
  • Pojedynczy iterator zwraca domyślnie 50 000 encji, ale można to zmienić. Wcześniej tego limitu nie można było dostosować.
  • Pojedynczy selektor może obsłużyć maksymalnie 10 tys. identyfikatorów (bez zmian).
  • Nowa infrastruktura nie ma limitu liczby encji, które można przetworzyć za pomocą jednego skryptu. Wcześniej limit ten wynosił 250 000.
  • Nowa infrastruktura nie podlega ograniczeniom liczby słów kluczowych i reklam, które można utworzyć podczas jednego wykonania. Wcześniej limit ten wynosił 250 000.
  • Dane wyjściowe logowania są skracane do 100 KB (bez zmian).
  • Limity dla usług Apps Script (arkusze kalkulacyjnych, MailApp itp.) pozostają bez zmian.
  • Limity w Google Ads będą egzekwowane w taki sam sposób, jak w przypadku korzystania z interfejsu API. Oznacza to, że Twój skrypt będzie podlegał limitom liczby żądań interfejsu API, ale zapewni Ci to większą elastyczność uzyskiwania dostępu do większej liczby raportów lub wprowadzania większej liczby zmian w trakcie każdego wykonania.

Inne zmiany

ExecutionInfo nie udostępnia już getRemainingCreateQuota() ani getRemainingGetQuota(), ponieważ w nowej wersji nie obowiązują już te limity.