W marcu 2022 roku opublikowaliśmy wersję 2 interfejsu Bid Manager API. Ze względu na wprowadzenie tej nowej wersji planujemy wkrótce ogłosić datę wycofania jej wersji 1.1. Zalecamy jak najszybsze rozpoczęcie migracji z wersji 1.1 do 2.
Migracja aplikacji
Migracja z wersji 1.1 do wersji 2 wymaga zaktualizowania adresów URL punktów końcowych tak, aby wywoływały wersję 2, oraz zaktualizowania aplikacji pod kątem zmian powodujących niezgodność.
Zaktualizuj wywołania interfejsu API z wersji 1.1 do wersji 2
Aby używać wersji 2 zamiast 1.1, musisz zaktualizować żądania, tak aby używały nowych punktów końcowych w wersji 2.
Określ równoważne metody
Aby zaktualizować wywołania interfejsu API z wersji 1.1 do wersji 2, musisz najpierw zidentyfikować metody odpowiadające wersji 1.1 w wersji 2.
Następujące nazwy wszystkich usług i metod nieco się zmieniły między wersjami 1.1 i 2:
- Usługi
Queries
iReports
w wersji 1.1 są znane jakoqueries
, a w wersji 2 –queries.reports
. - W wersji 2 nazwy metod zmieniły się w następujący sposób:
Nazwa metody w wersji 1.1 Odpowiednik metody w wersji 2 Queries.createquery
queries.create
Queries.deletequery
queries.delete
Queries.getquery
queries.get
Queries.listqueries
queries.list
Queries.runquery
queries.run
Reports.listreports
queries.reports.list
Zaktualizuj do nowych punktów końcowych
Po znalezieniu równoważnych metod musisz zaktualizować żądania. Aby na przykład wywołać metodę queries.getquery
w wersji 1.1, użyj tego adresu URL:
https://www.googleapis.com/doubleclickbidmanager/v1.1/query/queryId
Aby w wersji 2 wywołać równoważną metodę o nazwie queries.get
, zaktualizuj adres URL w ten sposób:
GET https://doubleclickbidmanager.googleapis.com/v2/queries/queryId
Jeśli do wysyłania żądań do interfejsu API używasz biblioteki klienta, użyj najnowszej wersji biblioteki klienta i zaktualizuj konfigurację tak, aby używała wersji 2.
Wprowadzanie wymaganych zmian
Wprowadzamy w wersji 2 pewne zmiany powodujące niezgodność. Zapoznaj się z instrukcjami poniżej i wprowadź wymagane zmiany w związku z dotychczasowym korzystaniem z interfejsu Bid Manager API.
Zaktualizuj połączenia z usługą queries
- Poniższe pola w zasobie
Query
, które pierwotnie były reprezentowane przez ogólne zagnieżdżone obiekty, zostały zmienione i będą korzystać z tych typów obiektów: - Te pola w zasobie
Query
, które pierwotnie były reprezentowane przez obiekty list ogólnych, zostały zmienione na listy tych nowych typów obiektów: - Poniższe pola w zasobie
Query
, pierwotnie reprezentowane przez ciągi, są reprezentowane przez typy wyliczeniowe w wersji 2 i zawierają te zmiany:- Odpowiednik w wersji 2 funkcji
metadata.dataRange
korzysta teraz z wyliczeniaRange
. Podczas konwersji na tę wyliczenie wartośćPREVIOUS_HALF_MONTH
została usunięta, a wartośćTYPE_NOT_SUPPORTED
zmieniona naRANGE_UNSPECIFIED
. metadata.format
używa teraz wyliczeniaFormat
. Podczas konwersji na tę wyliczenie wartośćEXCEL_CSV
została usunięta, a wartośćFORMAT_UNSPECIFIED
dodana.params.options.pathQueryOptions.channelGrouping.rules[].disjunctiveMatchStatements[].eventFilters[].dimensionFilter.match
aparams.options.pathQueryOptions.pathFilters[].eventFilters[].dimensionFilter.match
teraz użyj wartości enumMatch
.params.options.pathQueryOptions.pathFilters[].pathMatchPosition
używa teraz wyliczeniaPathMatchPosition
. Podczas konwersji na tę wyliczenie dodano wartośćPATH_MATCH_POSITION_UNSPECIFIED
.schedule.frequency
używa teraz wyliczeniaFrequency
. Podczas przeliczania na tę wyliczenie została dodana wartośćFREQUENCY_UNSPECIFIED
.params.type
używa teraz wyliczeniaReportType
. W wyniku konwersji tej wyliczenia wprowadzono te zmiany:- Te wartości zostały wycofane:
TYPE_ACTIVE_GRP
TYPE_AUDIENCE_PERFORMANCE
TYPE_CLIENT_SAFE
TYPE_COMSCORE_VCE
TYPE_CROSS_FEE
TYPE_CROSS_PARTNER
TYPE_CROSS_PARTNER_THIRD_PARTY_DATA_PROVIDER
TYPE_ESTIMATED_CONVERSION
TYPE_FEE
TYPE_KEYWORD
TYPE_LINEAR_TV_SEARCH_LIFT
TYPE_NIELSEN_AUDIENCE_PROFILE
TYPE_NIELSEN_DAILY_REACH_BUILD
TYPE_NIELSEN_ONLINE_GLOBAL_MARKET
TYPE_PAGE_CATEGORY
TYPE_PETRA_NIELSEN_DAILY_REACH_BUILD
TYPE_PETRA_NIELSEN_ONLINE_GLOBAL_MARKET
TYPE_PIXEL_LOAD
TYPE_THIRD_PARTY_DATA_PROVIDER
TYPE_TRUEVIEW_IAR
TYPE_VERIFICATION
TYPE_YOUTUBE_VERTICAL
- Pozostałe wartości zostały zaktualizowane, aby lepiej odzwierciedlały równoważne wartości w interfejsie:
Wartości w wersji 1.1 Odpowiednik wartości ReportType
TYPE_NOT_SUPPORTED
REPORT_TYPE_UNSPECIFIED
TYPE_GENERAL
STANDARD
TYPE_INVENTORY_AVAILABILITY
INVENTORY_AVAILABILITY
TYPE_AUDIENCE_COMPOSITION
AUDIENCE_COMPOSITION
TYPE_ORDER_ID
FLOODLIGHT
TYPE_TRUEVIEW
YOUTUBE
TYPE_NIELSEN_SITE
GRP
TYPE_PETRA_NIELSEN_AUDIENCE_PROFILE
YOUTUBE_PROGRAMMATIC_GUARANTEED
TYPE_REACH_AND_FREQUENCY
REACH
TYPE_REACH_AUDIENCE
UNIQUE_REACH_AUDIENCE
TYPE_PATH
FULL_PATH
TYPE_PATH_ATTRIBUTION
PATH_ATTRIBUTION
- Odpowiednik w wersji 2 funkcji
- Pola
metadata.dataRange
,reportDataStartTimeMs
ireportDataEndTimeMs
zostały zastąpione polamirange
,customStartDate
icustomEndDate
. Nowe pola dat używają obiektówDate
, a nie milisekund od początku epoki uniksowej. Te pola zastępcze zostały przeniesione do obiektuDataRange
przypisanego do poladataRange
w obiekcieQueryMetadata
. - Pola
schedule.startTimeMs
ischedule.endTimeMs
zostały zastąpione polamistartDate
iendDate
w obiekcieQuerySchedule
. Nowe pola dat używają obiektówDate
, a nie milisekund od początku epoki uniksowej. - Pola
metadata.running
,metadata.reportCount
,metadata.googleCloudStoragePathForLatestReport
,metadata.googleDrivePathForLatestReport
imetadata.latestReportRunTimeMs
zostały usunięte. Informacje o najnowszych raportach związanych z zapytaniem należy pobierać za pomocą metodyqueries.reports.list
z parametrem zapytaniaorderBy
o wartości „key.reportId desc”, aby zagwarantować, że w żądaniu na początku pojawią się najnowsze raporty. - Pola
kind
,timezoneCode
,metadata.locale
,params.includeInviteData
ischedule.nextRunMinuteOfDay
zostały usunięte. queries.create
nie uruchamia już automatycznie zapytań po utworzeniu, a parametr zapytaniaasynchronous
został usunięty. Wywołaj metodęqueries.run
poqueries.create
, aby wygenerować raporty dla nowych zapytań.- Metoda
queries.run
została zaktualizowana w ten sposób:- Parametr zapytania
asynchronous
został zastąpiony parametrem zapytaniasynchronous
. Nowy parametr zapytania działa z logiką odwrotną i jeśli nie jest określony, jest uznawany za fałszywy. Z tego względuqueries.run
domyślnie generuje raporty w wersji 2 asynchronicznie, a nie synchronicznie (w wersji 1.1). - Treść żądania została zaktualizowana w celu usunięcia pola
timezoneCode
i zastąpienia póldataRange
,reportDataStartTimeMs
ireportDataEndTimeMs
obiektemDataRange
przypisanym do poladataRange
. - Metoda zwraca wynikowy obiekt
Report
zamiast pustej treści odpowiedzi.
- Parametr zapytania
- Pole
kind
w treści odpowiedziqueries.list
zostało usunięte.
Zaktualizuj połączenia z usługą reports
- Poniższe pola w zasobie
Report
pierwotnie reprezentowane przez ogólne zagnieżdżone obiekty zostały zmienione i używają tych typów obiektów: - Te pola w zasobie
Report
, które pierwotnie były reprezentowane przez obiekty list ogólnych, zostały zmienione na listy tych nowych typów obiektów: - Te pola w zasobie
Report
, które pierwotnie były reprezentowane przez ciągi znaków, uległy zmianie, więc odpowiadające im pola w wersji 2 są reprezentowane przez nowe typy wyliczeniowe i zawierają zmiany akceptowanych wartości:metadata.status.format
używa teraz wyliczeniaFormat
. Podczas przeliczania na tę wyliczenie wartośćEXCEL_CSV
została usunięta i dodana do polaFORMAT_UNSPECIFIED
.metadata.status.state
używa teraz wyliczeniaState
. Podczas konwersji na tę wyliczenie zostały dodane wartościQUEUED
iSTATE_UNSPECIFIED
.params.options.pathQueryOptions.channelGrouping.rules[].disjunctiveMatchStatements[].eventFilters[].dimensionFilter.match
aparams.options.pathQueryOptions.pathFilters[].eventFilters[].dimensionFilter.match
teraz użyj wartości enumMatch
.params.options.pathQueryOptions.pathFilters[].pathMatchPosition
używa teraz wyliczeniaPathMatchPosition
. Podczas konwersji na tę wyliczenie dodano wartośćPATH_MATCH_POSITION_UNSPECIFIED
.params.type
używa teraz wyliczeniaReportType
. Podczas konwersji do tej wyliczenia wprowadzono wiele zmian. Szczegółowo opisano je w poprzedniej sekcji dotyczącej aktualizowania wywołań usługi zapytań.
- Pola
metadata.reportDataStartTimeMs
imetadata.reportDataEndTimeMs
zostały zastąpione polamireportDataStartDate
ireportDataEndDate
w obiekcieReportMetadata
. Od początku epoki uniksowej nowe pola używają obiektówDate
, a nie milisekund. - Zastąpienie
metadata.status.finishTimeMs
polemfinishTime
w obiekcieReportStatus
zostało zastąpione. To nowe pole czasu przedstawia datę i godzinę w formie sygnatury czasowej w formacie RFC3339 UTC „Zulu”, a nie w milisekundach od początku epoki uniksowej. - Pola
metadata.status.failure
iparams.includeInviteData
zostały usunięte. - Pole
kind
w treści odpowiedzireports.list
zostało usunięte.
Zaktualizuj logikę obsługi błędów
W wersji 2 zaktualizowano komunikaty o błędach interfejsu API. Te nowe komunikaty o błędach są bardziej szczegółowe, a w niektórych przypadkach zawierają informacje o wartościach w żądaniu do interfejsu API, które powodują zwrócenie błędu. Jeśli obecna logika obsługi błędów opiera się na określonym tekście komunikatu o błędzie, uogólnij swoją obsługę błędów przed migracją do wersji 2.